public virtual bool Equals(IdentityNumber other) { if (null != other && other.GetType() == GetType()) { return other.Number.Equals(Number); } return false; }
public void A_client_must_have_an_identity_number_contact_number_and_name() { var idNumber = new IdentityNumber("7808035176089"); var telephoneNumber = new TelephoneNumber("0125552222"); var clientName = new PersonName("Adrian", "Freemantle"); var client = new Client(idNumber, clientName, telephoneNumber); client.Identity.Id.ShouldBe(idNumber.Number); client.PrimaryContactNumber.ShouldBe(telephoneNumber); client.ClientName.ShouldBe(clientName); }
public void A_clients_with_same_identity_number_are_the_same_client() { var idNumber = new IdentityNumber("7808035176089"); var telephoneNumber = new TelephoneNumber("0125552222"); var clientName = new PersonName("Adrian", "Freemantle"); var client = new Client(idNumber, clientName, telephoneNumber); var telephoneNumber2 = new TelephoneNumber("1111111111"); var clientName2 = new PersonName("Sally", "Smith"); var client2 = new Client(idNumber, clientName2, telephoneNumber2); client.ShouldBe(client2); }
public void Clients_over_60_with_three_or_more_insurance_products_qualify_for_pensioners_discount() { var idNumber = new IdentityNumber("5008035176089"); var telephoneNumber = new TelephoneNumber("0125552222"); var clientName = new PersonName("Adrian", "Freemantle"); var client = new Client(idNumber, clientName, telephoneNumber); client.Purchased(new InsuranceProduct()); client.Purchased(new InsuranceProduct()); client.Purchased(new InsuranceProduct()); client.QualifiesForPensionersDiscount().ShouldBe(true); }
public void Can_restore_from_snapshot() { var idNumber = new IdentityNumber("5008035176089"); var telephoneNumber = new TelephoneNumber("0125552222"); var clientName = new PersonName("Adrian", "Freemantle"); var client = new Client(idNumber, clientName, telephoneNumber); client.Purchased(new InsuranceProduct()); client.Purchased(new InsuranceProduct()); client.Purchased(new InsuranceProduct()); var snapshot = (client as IEntity).GetSnapshot(); var restored = EntityFactory.Build<Client>(snapshot); }
public void A_new_client_can_be_registered_Observer() { // here we use the observer pattern to register an action (the subscriber) to // handle an event of type ClientRegistered which will be raised by the entity (the publisher) var eventHelper = new EventHandlerStub(); DomainEvent.Current.Subscribe<ClientRegistered>(eventHelper.Handle); var idNumber = new IdentityNumber("5008035176089"); var telephoneNumber = new TelephoneNumber("0125552222"); var clientName = new PersonName("Adrian", "Freemantle"); new Client(idNumber, clientName, telephoneNumber); eventHelper.RaisedEvents.Count.ShouldBe(1); eventHelper.RaisedEvents.First().ShouldBeTypeOf<ClientRegistered>(); ((ClientRegistered)eventHelper.RaisedEvents.First()).ClientId.ShouldBe(idNumber.Number); ((ClientRegistered)eventHelper.RaisedEvents.First()).FirstName.ShouldBe(clientName.FirstName); ((ClientRegistered)eventHelper.RaisedEvents.First()).Surname.ShouldBe(clientName.Surname); ((ClientRegistered)eventHelper.RaisedEvents.First()).TelephoneNumber.ShouldBe(telephoneNumber.Number); }
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); }
private static Client CreateGenericClient() { var idNumber = new IdentityNumber("5008035176089"); var telephoneNumber = new TelephoneNumber("0125552222"); var clientName = new PersonName("Adrian", "Freemantle"); return new Client(idNumber, clientName, telephoneNumber); }