Sha256: 816eba85021dddb74d4485b442ea74005da3893b51fd3070d74d7a971cf88443
Contents?: true
Size: 1.9 KB
Versions: 1
Compression:
Stored size: 1.9 KB
Contents
require 'spec_helper' module SandthornDriverEventStore describe EventAccess do before do prepare_for_test end let(:db) { Sequel.connect(event_store_url)} let(:aggregate_id) { SecureRandom.uuid } let(:aggregate) do aggregate_access.register_aggregate(aggregate_id, "foo") end let(:storage) { return event_store_driver.execute { |db| return db; } } let(:access) { EventAccess.new(storage) } let(:events) do [ { aggregate_version: 1, aggregate_id: aggregate_id, aggregate_type: "Foo", event_name: "new", event_args: {test: "new_data"} },{ aggregate_version: 2, aggregate_id: aggregate_id, aggregate_type: "Foo", event_name: "foo", event_args: {test: "foo_data"} } ] end describe "#store_events" do it "handles both arrays and single events" do access.store_events(events[0]) events = access.find_events_by_aggregate_id(aggregate_id) expect(events.length).to eq(1) end context "when the aggregate version of an event is incorrect" do it "throws an error" do event = { aggregate_version: 100, aggregate_id: aggregate_id, aggregate_type: "Foo", event_name: "new", event_data: "noop" } expect { access.store_events([event])}.to raise_error end end end describe "#find_events_by_aggregate_id" do context "when there are events" do it "returns correct events" do access.store_events(events) stored_events = access.find_events_by_aggregate_id(aggregate_id) expect(stored_events.size).to eq(events.size) expect(stored_events).to all(respond_to(:merge)) stored_events.each { |event| expect(event[:aggregate_id]).to eql aggregate_id } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sandthorn_driver_event_store-0.0.1 | spec/event_access_spec.rb |