예제 #1
0
        public async Task AddAddress_OK()
        {
            //Arrange
            var mockLogger           = new Mock <ILogger <CustomerService> >();
            var mockCustomerApi      = new Mock <customerApi.ICustomerApiClient>();
            var mockReferenceDataApi = new Mock <referenceDataApi.IReferenceDataApiClient>();
            var mockSalesPersonApi   = new Mock <salesPersonApi.ISalesPersonApiClient>();

            mockCustomerApi.Setup(x => x.GetCustomerAsync(It.IsAny <string>()))
            .ReturnsAsync(
                new StoreCustomerBuilder()
                .WithTestValues()
                .Build()
                );

            var svc = new CustomerService(
                mockLogger.Object,
                Mapper.CreateMapper(),
                mockCustomerApi.Object,
                mockReferenceDataApi.Object,
                mockSalesPersonApi.Object
                );

            //Act
            var viewModel = new EditCustomerAddressViewModel
            {
                CustomerAddress = new CustomerAddressViewModel
                {
                    AddressType = "Main Office",
                    Address     = new AddressViewModel
                    {
                        AddressLine1      = "2251 Elliot Avenue",
                        PostalCode        = "98104",
                        City              = "Seattle",
                        StateProvinceCode = "WA",
                        CountryRegionCode = "US"
                    }
                }
            };
            await svc.AddAddress(viewModel);

            //Assert
            mockCustomerApi.Verify(x => x.UpdateCustomerAsync(
                                       It.IsAny <string>(),
                                       It.IsAny <customerApi.Models.UpdateCustomer.Customer>()));
        }
예제 #2
0
        protected override void Seed(ShopDbContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.
            ProductService  productService  = new ProductService();
            CustomerService customerService = new CustomerService();
            Product         p = new Product
            {
                Category      = Category.Camera,
                Name          = "Nikon",
                Price         = 50000,
                Description   = "Professional Camera",
                Specification = "23 MP",
            };

            Product p1 = new Product
            {
                Category      = Category.Computer,
                Name          = "Surface Pro 3",
                Description   = "Tablet / Laptop",
                Price         = 200000,
                Specification = "i5 16 GB ram",
            };

            Product p2 = new Product
            {
                Category      = Category.Computer,
                Name          = "Macbook pro 2015",
                Price         = 300000,
                Description   = "Laptop",
                Specification = "i5 16 GB ram",
            };

            Product p3 = new Product
            {
                Category      = Category.HeadphoneOrSpeaker,
                Name          = "Senheiser in ear earphones",
                Price         = 3000,
                Description   = "Dun Dun DUn",
                Specification = "Noize Cancellation",
            };

            Customer c = new Customer
            {
                Email     = "*****@*****.**",
                FirstName = "Jhonny",
                LastName  = "English",
                Password  = "******",
            };

            Customer c2 = new Customer
            {
                Email     = "*****@*****.**",
                FirstName = "Bob",
                LastName  = "Jordan",
                Password  = "******",
            };


            productService.Add(p);
            productService.Add(p1);
            productService.Add(p2);
            productService.Add(p3);
            customerService.Add(c);
            customerService.Add(c2);


            productService.AddReview(
                new Review
            {
                CustomerId = 1,
                ProductId  = 1,
                Stars      = 2,
                Text       = "It's a good camera",
            });

            customerService.AddAddress(new Address
            {
                LineOne    = "11G/1 ",
                LineTwo    = "Yokshire Road",
                City       = "London",
                Phone      = "07123123",
                Zip        = "6531",
                CustomerId = 1,
            });


            customerService.AddAddress(new Address
            {
                LineOne    = "12/3 ",
                LineTwo    = "Stafford Road",
                City       = "Colombo",
                Phone      = "012345643",
                Zip        = "1234",
                CustomerId = 1,
            });

            customerService.SetDefaultAddress(1, 1);

            customerService.AddPurchase(1, 1);
            customerService.AddPurchase(1, 2);
        }
예제 #3
0
        public void AddAddress_ReturnsViewModel()
        {
            //Arrange
            var mockLogger           = new Mock <ILogger <CustomerService> >();
            var mockCustomerApi      = new Mock <customerApi.ICustomerApiClient>();
            var mockSalesPersonApi   = new Mock <salesPersonApi.ISalesPersonApiClient>();
            var mockReferenceDataApi = new Mock <referenceDataApi.IReferenceDataApiClient>();

            mockReferenceDataApi.Setup(x => x.GetAddressTypesAsync())
            .ReturnsAsync(
                new string[] { "Main Office", "Home" }
                .Select(x => new referenceDataApi.Models.GetAddressTypes.AddressType
            {
                Name = x
            })
                .ToList()
                );

            mockReferenceDataApi.Setup(x => x.GetCountriesAsync())
            .ReturnsAsync(new List <referenceDataApi.Models.GetCountries.CountryRegion>()
            {
                new referenceDataApi.Models.GetCountries.CountryRegion
                {
                    CountryRegionCode = "US",
                    Name = "United States"
                },
                new referenceDataApi.Models.GetCountries.CountryRegion
                {
                    CountryRegionCode = "GB",
                    Name = "United Kingdom"
                }
            });

            mockReferenceDataApi.Setup(x => x.GetStatesProvincesAsync(
                                           It.IsAny <string>()
                                           ))
            .ReturnsAsync(new List <referenceDataApi.Models.GetStateProvinces.StateProvince>()
            {
                new referenceDataApi.Models.GetStateProvinces.StateProvince
                {
                    CountryRegionCode = "US",
                    Name = "Alaska"
                },
                new referenceDataApi.Models.GetStateProvinces.StateProvince
                {
                    CountryRegionCode = "US",
                    Name = "North Carolina"
                },
                new referenceDataApi.Models.GetStateProvinces.StateProvince
                {
                    CountryRegionCode = "CA",
                    Name = "Brunswick"
                }
            });

            var svc = new CustomerService(
                mockLogger.Object,
                Mapper.CreateMapper(),
                mockCustomerApi.Object,
                mockReferenceDataApi.Object,
                mockSalesPersonApi.Object
                );

            //Act
            var viewModel = svc.AddAddress("AW00000001", "A Bike Store");

            //Assert
            viewModel.IsNewAddress.Should().Be(true);
        }
예제 #4
0
 public bool PostAddress([FromBody] Address address)
 {
     return(customerService.AddAddress(address));
 }