Sha256: 4c7f32580929f0e7261e2ce92f58ec62f32ebe902b64bcdfce2d44f5f01cf016
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
require 'spec_helper' class TestAgg include Eventus::AggregateRoot attr_accessor :loaded def bake_cake apply_change :cake_baked, :flavor => 'strawberry' end apply :dino do |e| @loaded = true end end describe Eventus::AggregateRoot do let(:events) { [] } let(:persistence) { stub.as_null_object } before do TestAgg.stub(:persistence).and_return(persistence) end it "should load a new aggregate from find" do result = TestAgg.find('abc') result.should_not be_nil end describe "when events exist" do before do persistence.should_receive(:load).with('abc').and_return(events) events << {:name => 'dino', :body => {}} end it "should apply the event" do result = TestAgg.find('abc') result.loaded.should == true end end describe "when applying a new change" do let(:aggregate) { TestAgg.new } let(:stream) { stub(:stream, :committed_events => []) } before do aggregate.populate(stream) end it "should be added to the stream" do stream.should_receive(:add) aggregate.bake_cake end end describe "when saving" do let(:aggregate) { TestAgg.new } let(:stream) { stub(:stream, :committed_events => []) } before do aggregate.populate(stream) end it "should commit stream" do stream.should_receive(:commit) aggregate.save end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eventus-0.3.0 | spec/aggregate_root_spec.rb |
eventus-0.2.0 | spec/aggregate_root_spec.rb |