public void events_raised_whilst_handling_commands_should_be_emitted() { var eventEmitter = Substitute.For<EventEmitter>(); var eventStore = Substitute.For<EventStore>(); var key = "test"; using (var ts = new TransactionScope()) { var domain = new TestableDomain(eventEmitter, null, eventStore); var expected = new RegisterDog(key, null, null); domain.Apply(expected); ts.Complete(); } eventEmitter.Received().Emit(Arg.Is<RaisedEvent>(_ => ((DogRegistered) _.Event).Earbrand == key)); }
public void events_raised_whilst_handling_commands_should_be_recorded() { var eventStore = Substitute.For<EventStore>(); using ( new TransactionScope()) { var domain = new TestableDomain(null, null, eventStore); var key = "test"; domain.Apply(new RegisterDog(key, null, null)); var aggregateInfo = domain.AggregateTracker[typeof (Dog), key]; aggregateInfo.Lifestate.ShouldEqual(AggregateLifestate.Untracked); var recorded = domain.TransactionTracker[Transaction.Current].RecordedEvents; recorded.Count().ShouldEqual(1); recorded.First().Event.ShouldBeType<DogRegistered>(); } }