コード例 #1
0
        public async Task When_updating_an_account()
        {
            using (var uow = new CardDetailsContext(_options))
            {
                //arrange
                var cardDetails = new AccountCardDetails(
                    accountId: Guid.NewGuid(),
                    name: "Jack Torrance",
                    cardNumber: "4104231121998973",
                    cardSecurityCode: "517",
                    firstLineOfAddress: "Overlook Hotel",
                    zipCode: "40125"
                    );

                var repository = new AccountCardDetailsRepositoryAsync(new EFUnitOfWork(uow));

                await repository.AddAsync(cardDetails);

                var @event = new UpsertAccountEvent()
                {
                    AccountId = cardDetails.AccountId.ToString(),
                    Name      = new Name {
                        FirstName = "Charles", LastName = "Grady"
                    },
                    Addresses = new List <Address>
                    {
                        new Address
                        {
                            FistLineOfAddress = "Overlook Hotel",
                            AddressType       = "Billing",
                            State             = "CO",
                            ZipCode           = "80517"
                        }
                    },
                    ContactDetails = new ContactDetails
                    {
                        Email = "*****@*****.**", TelephoneNumber = "666-6666"
                    },
                    CardDetails = new CardDetails {
                        CardNumber = "4172097052597788", CardSecurityCode = "459"
                    },
                    Version = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }
                };

                var handler = new UpsertAccountEventHandler(_options);

                //act
                await handler.HandleAsync(@event);

                var accountCardDetails = await repository.GetAsync(Guid.Parse(@event.AccountId));

                //assert
                Assert.That(accountCardDetails.AccountId, Is.EqualTo(Guid.Parse(@event.AccountId)));
                Assert.That(accountCardDetails.Name, Is.EqualTo(@event.Name.FirstName + " " + @event.Name.LastName));
                var sourceAddress = @event.Addresses.First(addr => addr.AddressType == "Billing");
                Assert.That(accountCardDetails.FirstLineOfAddress, Is.EqualTo(sourceAddress.FistLineOfAddress));
                Assert.That(accountCardDetails.ZipCode, Is.EqualTo(sourceAddress.ZipCode));
            }
        }
コード例 #2
0
        public async Task When_adding_an_account()
        {
            using (var uow = new CardDetailsContext(_options))
            {
                //arrange
                var handler = new UpsertAccountEventHandler(_options);
                var @event  = new UpsertAccountEvent()
                {
                    AccountId = Guid.NewGuid().ToString(),
                    Name      = new Name {
                        FirstName = "Jack", LastName = "Torrance"
                    },
                    Addresses = new List <Address>
                    {
                        new Address
                        {
                            FistLineOfAddress = "Overlook Hotel",
                            AddressType       = "Billing",
                            State             = "CO",
                            ZipCode           = "80517"
                        },
                        new Address
                        {
                            FistLineOfAddress = "3 Kennebunkport Avenue",
                            AddressType       = "Home",
                            State             = "MN",
                            ZipCode           = "40125"
                        }
                    },
                    ContactDetails = new ContactDetails
                    {
                        Email = "*****@*****.**", TelephoneNumber = "666-6666"
                    },
                    CardDetails = new CardDetails {
                        CardNumber = "4104231121998973", CardSecurityCode = "517"
                    },
                    Version = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }
                };

                //act
                await handler.HandleAsync(@event);

                var repository         = new AccountCardDetailsRepositoryAsync(new EFUnitOfWork(uow));
                var accountCardDetails = await repository.GetAsync(Guid.Parse(@event.AccountId));

                //assert
                Assert.That(accountCardDetails.AccountId, Is.EqualTo(Guid.Parse(@event.AccountId)));
                Assert.That(accountCardDetails.Name, Is.EqualTo(@event.Name.FirstName + " " + @event.Name.LastName));
                var sourceAddress = @event.Addresses.First(addr => addr.AddressType == "Billing");
                Assert.That(accountCardDetails.FirstLineOfAddress, Is.EqualTo(sourceAddress.FistLineOfAddress));
                Assert.That(accountCardDetails.ZipCode, Is.EqualTo(sourceAddress.ZipCode));
            }
        }