Esempio n. 1
0
        public async Task UpdateStore_ReturnsViewModel()
        {
            //Arrange
            var mockLogger      = new Mock <ILogger <CustomerService> >();
            var mockCustomerApi = new Mock <customerApi.ICustomerApiClient>();

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

            var mockSalesPersonApi   = new Mock <salesPersonApi.ISalesPersonApiClient>();
            var mockReferenceDataApi = new Mock <referenceDataApi.IReferenceDataApiClient>();

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

            //Act
            var viewModel = new StoreCustomerViewModel {
                AccountNumber = "AW00000001"
            };
            await svc.UpdateStore(viewModel);

            //Assert
            mockCustomerApi.Verify(x => x.UpdateCustomerAsync(
                                       It.IsAny <string>(),
                                       It.IsAny <customerApi.Models.UpdateCustomer.Customer>())
                                   );
        }
        public async Task UpdateStore(StoreCustomerViewModel viewModel)
        {
            logger.LogInformation("UpdateStore called with view model {@ViewModel}", viewModel);
            Guard.Against.Null(viewModel, nameof(viewModel));

            logger.LogInformation("Mapping CustomerViewModel to UpdateCustomerRequest");
            var storeCustomer = mapper.Map <ApiClients.CustomerApi.Models.UpdateCustomer.StoreCustomer>(viewModel);

            logger.LogInformation("Calling Customer API to update customer");
            await customerApiClient.UpdateCustomerAsync(viewModel.AccountNumber, storeCustomer);

            logger.LogInformation("Customer successfully updated");
        }
Esempio n. 3
0
        public async Task UpdateStore(StoreCustomerViewModel viewModel)
        {
            logger.LogInformation("UpdateStore called with view model {@ViewModel}", viewModel);
            Guard.Against.Null(viewModel, nameof(viewModel));

            logger.LogInformation("Mapping CustomerViewModel to UpdateCustomerRequest");
            var storeCustomer = await customerApiClient.GetCustomerAsync <Web.Infrastructure.ApiClients.CustomerApi.Models.GetCustomer.StoreCustomer>(
                viewModel.AccountNumber
                );

            var storeCustomerToUpdate = mapper.Map <Web.Infrastructure.ApiClients.CustomerApi.Models.UpdateCustomer.StoreCustomer>(storeCustomer);

            storeCustomerToUpdate.Name        = viewModel.Name;
            storeCustomerToUpdate.Territory   = viewModel.Territory;
            storeCustomerToUpdate.SalesPerson = viewModel.SalesPerson;

            logger.LogInformation("Calling Customer API to update customer");
            await customerApiClient.UpdateCustomerAsync(viewModel.AccountNumber, storeCustomerToUpdate);

            logger.LogInformation("Customer successfully updated");
        }