Skip to content

Commit 0582188

Browse files
Merge pull request #110 from RailsEventStore/apply_returns_events
apply returns applied events
2 parents 65e8007 + fc60b7c commit 0582188

File tree

2 files changed

+25
-4
lines changed

2 files changed

+25
-4
lines changed

aggregate_root/lib/aggregate_root.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
require 'aggregate_root/default_apply_strategy'
55

66
module AggregateRoot
7-
def apply(event)
8-
apply_strategy.(self, event)
9-
unpublished_events << event
7+
def apply(*events)
8+
events.each do |event|
9+
apply_strategy.(self, event)
10+
unpublished_events << event
11+
end
1012
end
1113

1214
def load(stream_name, event_store: default_event_store)

aggregate_root/spec/aggregate_root_spec.rb

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,4 +133,23 @@
133133
order.apply(order_created)
134134
expect(order.status).to eq :created
135135
end
136-
end
136+
137+
it "should return applied events" do
138+
order = Order.new
139+
created = Orders::Events::OrderCreated.new
140+
expired = Orders::Events::OrderExpired.new
141+
142+
applied = order.apply(created, expired)
143+
expect(applied).to eq([created, expired])
144+
end
145+
146+
it "should return only applied events" do
147+
order = Order.new
148+
created = Orders::Events::OrderCreated.new
149+
order.apply(created)
150+
151+
expired = Orders::Events::OrderExpired.new
152+
applied = order.apply(expired)
153+
expect(applied).to eq([expired])
154+
end
155+
end

0 commit comments

Comments
 (0)