diff --git a/test/test_event_store.rb b/test/test_event_store.rb index dc06d0f..1b833b8 100644 --- a/test/test_event_store.rb +++ b/test/test_event_store.rb @@ -7,93 +7,98 @@ module En57 cover EventStore def test_append_event + event = Event.new(type: "CreditsToppedUp") + with_repository do |repository| repository.expect( :append, nil, - [[credit_topped_up]], + [[event]], fail_if: Query.all, after: nil, ) - EventStore.new(repository).append([credit_topped_up]) + EventStore.new(repository).append([event]) end end def test_read_returns_scope_for_query_all + event = Event.new(type: "CreditsToppedUp") + with_repository do |repository| - repository.expect(:read, [credit_topped_up], [Query.all]) + repository.expect(:read, [event], [Query.all]) result = EventStore.new(repository).read assert_instance_of(Scope, result) - assert_equal([credit_topped_up], result.each.to_a) + assert_equal([event], result.each.to_a) end end def test_return_self_from_append - repository = Class.new { def append(*, **) = nil }.new + event = Event.new(type: "CreditsToppedUp") - event_store = EventStore.new(repository) + with_repository do |repository| + repository.expect( + :append, + nil, + [[event]], + fail_if: Query.all, + after: nil, + ) - assert_equal(event_store, event_store.append([credit_topped_up])) + event_store = EventStore.new(repository) + + assert_equal(event_store, event_store.append([event])) + end end def test_append_forwards_options - repository = - Class - .new do - attr_reader :kwargs + event = Event.new(type: "CreditsToppedUp") - def append(*, **kwargs) - @kwargs = kwargs - end - end - .new - - EventStore.new(repository).append([credit_topped_up], after: 42) + with_repository do |repository| + repository.expect( + :append, + nil, + [[event]], + fail_if: Query.all, + after: 42, + ) - assert_equal({ fail_if: Query.all, after: 42 }, repository.kwargs) + EventStore.new(repository).append([event], after: 42) + end end def test_append_accepts_scope_for_fail_if - repository = - Class - .new do - attr_reader :kwargs - - def append(*, **kwargs) - @kwargs = kwargs - end - end - .new - event_store = EventStore.new(repository) - fail_if = event_store.read.with_tag("order_id:123") - - event_store.append([credit_topped_up], fail_if:) - - assert_equal({ fail_if: fail_if.to_query, after: nil }, repository.kwargs) + event = Event.new(type: "CreditsToppedUp") + + with_repository do |repository| + event_store = EventStore.new(repository) + fail_if = event_store.read.with_tag("order_id:123") + repository.expect( + :append, + nil, + [[event]], + fail_if: fail_if.to_query, + after: nil, + ) + + event_store.append([event], fail_if:) + end end def test_append_accepts_query_for_fail_if - repository = - Class - .new do - attr_reader :kwargs - - def append(*, **kwargs) - @kwargs = kwargs - end - end - .new - fail_if = - Query.new( - criteria: [Query::Criteria.new(types: ["OrderPlaced"], tags: [])], - ) + event = Event.new(type: "CreditsToppedUp") - EventStore.new(repository).append([credit_topped_up], fail_if:) + with_repository do |repository| + fail_if = + Query.new( + criteria: [Query::Criteria.new(types: ["OrderPlaced"], tags: [])], + ) + repository.expect(:append, nil, [[event]], fail_if:, after: nil) - assert_equal({ fail_if:, after: nil }, repository.kwargs) + EventStore.new(repository).append([event], fail_if:) + end end private @@ -103,9 +108,5 @@ module En57 yield repository repository.verify end - - def credit_topped_up - @credit_topped_up ||= Event.new(type: "CreditsToppedUp") - end end end