public void A_new_client_can_be_registered_EventBus()
{
// here we register an event bus (publisher) which knows how to locate event
// handlers (subscribers) and publish the event to them.
var eventBusStub = new EventBusStub();
DomainEvent.Current.RegisterEventBus(eventBusStub);
var idNumber = new IdentityNumber("5008035176089");
var telephoneNumber = new TelephoneNumber("0125552222");
var clientName = new PersonName("Adrian", "Freemantle");
new Client(idNumber, clientName, telephoneNumber);
eventBusStub.RaisedEvents.Count().ShouldBe(1);
eventBusStub.RaisedEvents.First().ShouldBeTypeOf<ClientRegistered>();
((ClientRegistered)eventBusStub.RaisedEvents.First()).ClientId.ShouldBe(idNumber.Number);
((ClientRegistered)eventBusStub.RaisedEvents.First()).FirstName.ShouldBe(clientName.FirstName);
((ClientRegistered)eventBusStub.RaisedEvents.First()).Surname.ShouldBe(clientName.Surname);
((ClientRegistered)eventBusStub.RaisedEvents.First()).TelephoneNumber.ShouldBe(telephoneNumber.Number);
}