Class: Sequent::Test::CommandHandlerHelpers::FakeEventStore
- Inherits:
-
Object
- Object
- Sequent::Test::CommandHandlerHelpers::FakeEventStore
- Extended by:
- Forwardable
- Defined in:
- lib/sequent/test/command_handler_helpers.rb
Instance Method Summary collapse
- #commit_events(_, streams_with_events) ⇒ Object
- #events_exists?(aggregate_id) ⇒ Boolean
- #find_event_stream(aggregate_id) ⇒ Object
- #given_events(events) ⇒ Object
-
#initialize ⇒ FakeEventStore
constructor
A new instance of FakeEventStore.
- #load_events(aggregate_id) ⇒ Object
- #load_events_for_aggregates(aggregate_ids) ⇒ Object
- #publish_events(events) ⇒ Object
- #stored_events ⇒ Object
- #stream_exists?(aggregate_id) ⇒ Boolean
Constructor Details
#initialize ⇒ FakeEventStore
Returns a new instance of FakeEventStore.
43 44 45 46 47 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 43 def initialize @event_streams = {} @all_events = {} @stored_events = [] end |
Instance Method Details
#commit_events(_, streams_with_events) ⇒ Object
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 71 def commit_events(_, streams_with_events) streams_with_events.each do |event_stream, events| serialized = serialize_events(events) @event_streams[event_stream.aggregate_id] = event_stream @all_events[event_stream.aggregate_id] ||= [] @all_events[event_stream.aggregate_id] += serialized @stored_events += serialized end publish_events(streams_with_events.flat_map { |_, events| events }) end |
#events_exists?(aggregate_id) ⇒ Boolean
95 96 97 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 95 def events_exists?(aggregate_id) @event_streams[aggregate_id].present? end |
#find_event_stream(aggregate_id) ⇒ Object
63 64 65 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 63 def find_event_stream(aggregate_id) @event_streams[aggregate_id] end |
#given_events(events) ⇒ Object
86 87 88 89 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 86 def given_events(events) commit_events(nil, to_event_streams(events)) @stored_events = [] end |
#load_events(aggregate_id) ⇒ Object
49 50 51 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 49 def load_events(aggregate_id) load_events_for_aggregates([aggregate_id])[0] end |
#load_events_for_aggregates(aggregate_ids) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 53 def load_events_for_aggregates(aggregate_ids) return [] if aggregate_ids.none? aggregate_ids.map do |aggregate_id| @event_streams[aggregate_id] end.compact.map do |event_stream| [event_stream, deserialize_events(@all_events[event_stream.aggregate_id])] end end |
#publish_events(events) ⇒ Object
82 83 84 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 82 def publish_events(events) Sequent.configuration.event_publisher.publish_events(events) end |
#stored_events ⇒ Object
67 68 69 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 67 def stored_events deserialize_events(@stored_events) end |
#stream_exists?(aggregate_id) ⇒ Boolean
91 92 93 |
# File 'lib/sequent/test/command_handler_helpers.rb', line 91 def stream_exists?(aggregate_id) @event_streams.has_key?(aggregate_id) end |