Esempio n. 1
0
        public virtual bool Equals(IdentityNumber other)
        {
            if (null != other && other.GetType() == GetType())
            {
                return other.Number.Equals(Number);
            }

            return false;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }