Exemplo n.º 1
0
            public async Task GetStoreCustomerForEdit_ReturnsViewModel(
                [Frozen] Mock <customerApi.ICustomerApiClient> mockCustomerApiClient,
                [Frozen] Mock <referenceDataApi.IReferenceDataApiClient> mockReferenceDataApiClient,
                [Frozen] Mock <salesPersonApi.ISalesPersonApiClient> mockSalesPersonApiClient,
                CustomerService sut,
                customerApi.Models.GetCustomer.StoreCustomer customer,
                List <Territory> territories,
                List <salesPersonApi.Models.SalesPerson> salesPersons
                )
            {
                //Arrange
                mockCustomerApiClient.Setup(x => x
                                            .GetCustomerAsync <customerApi.Models.GetCustomer.StoreCustomer>(
                                                It.IsAny <string>()
                                                ))
                .ReturnsAsync(customer);

                mockReferenceDataApiClient.Setup(x => x.GetTerritoriesAsync())
                .ReturnsAsync(territories);

                mockSalesPersonApiClient.Setup(_ => _.GetSalesPersonsAsync(It.IsAny <string>()))
                .ReturnsAsync(salesPersons);

                //Act
                var viewModel = await sut.GetStoreCustomerForEdit(customer.AccountNumber);

                //Assert
                viewModel.Customer.AccountNumber.Should().Be(customer.AccountNumber);
                viewModel.Territories.ToList().Count.Should().Be(4);
                viewModel.Territories.ToList()[0].Text.Should().Be("--Select--");
                viewModel.SalesPersons.ToList().Count.Should().Be(4);
                viewModel.SalesPersons.ToList()[0].Text.Should().Be("All");
            }
            public async Task GetCustomer_CustomerFound_ReturnCustomer(
                [Frozen] MockHttpMessageHandler handler,
                [Frozen] HttpClient httpClient,
                Uri uri,
                models.GetCustomer.StoreCustomer customer,
                CustomerApiClient sut
                )
            {
                //Arrange
                customer.CustomerType  = CustomerType.Store;
                httpClient.BaseAddress = uri;

                handler.When(HttpMethod.Get, $"{uri}*")
                .Respond(HttpStatusCode.OK,
                         new StringContent(
                             JsonSerializer.Serialize(customer, new JsonSerializerOptions
                {
                    Converters =
                    {
                        new JsonStringEnumConverter(),
                        new CustomerConverter <
                            models.GetCustomer.Customer,
                            models.GetCustomer.StoreCustomer,
                            models.GetCustomer.IndividualCustomer>()
                    },
                    IgnoreReadOnlyProperties = true,
                    PropertyNamingPolicy     = JsonNamingPolicy.CamelCase
                }),
                             Encoding.UTF8,
                             "application/json"
                             )
                         );

                //Act
                var response = await sut.GetCustomerAsync(customer.AccountNumber);

                //Assert
                response.Should().BeEquivalentTo(customer);
            }