public void events_emitted_should_be_collected() { var domain = Substitute.For<Domain>(null, null, null); var inProcessBus = new InProcessEventBus(); var expected = new DogRegistered("test", "wibble"); inProcessBus.Emit(new RaisedEvent(expected, DateTimeOffset.UtcNow)); inProcessBus.StartCollectingEvents(domain); inProcessBus.StopCollecting(() => domain.Received().Consume(Arg.Is<RaisedEvent>(_ => _.Event == expected))); }