public async Task GetCustomer_ShouldReturnCustomer_GivenCustomer( [Frozen] Mock <IMediator> mockMediator, Core.Handlers.GetCustomer.StoreCustomerDto customer, [Greedy] CustomerController sut, GetCustomerQuery query ) { //Arrange mockMediator.Setup(x => x.Send( It.IsAny <GetCustomerQuery>(), It.IsAny <CancellationToken>() )) .ReturnsAsync(customer); //Act var actionResult = await sut.GetCustomer(query); //Assert var okObjectResult = actionResult as OkObjectResult; okObjectResult.Should().NotBeNull(); var result = okObjectResult.Value as Core.Models.GetCustomer.Customer; result.Should().NotBeNull(); }
public void Serialize_WithGetCustomersStore_ReturnsStoreCustomer( Core.Handlers.GetCustomer.StoreCustomerDto storeCustomer ) { //Arrange var serializeOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase, WriteIndented = true, Converters = { new JsonStringEnumConverter(), new CustomerConverter< Core.Models.GetCustomers.Customer, Core.Models.GetCustomers.StoreCustomer, Core.Models.GetCustomers.IndividualCustomer>() } }; //Act var jsonString = JsonSerializer.Serialize(storeCustomer, serializeOptions); var jsonDocument = JsonDocument.Parse(jsonString); var root = jsonDocument.RootElement; var contacts = root.GetProperty("contacts").EnumerateArray().ToList(); var addresses = root.GetProperty("addresses").EnumerateArray().ToList(); //Assert root.GetProperty("customerType").GetString().Should().Be(storeCustomer.CustomerType.ToString()); root.GetProperty("name").GetString().Should().Be(storeCustomer.Name); root.GetProperty("salesPerson").GetString().Should().Be(storeCustomer.SalesPerson); root.GetProperty("accountNumber").GetString().Should().Be(storeCustomer.AccountNumber); root.GetProperty("territory").GetString().Should().Be(storeCustomer.Territory); for (int i = 0; i < contacts.Count; i++) { var contact = contacts[i]; var contactPerson = contacts[i].GetProperty("contactPerson"); contact.GetProperty("contactType").GetString().Should().Be( storeCustomer.Contacts[i].ContactType); contactPerson.GetProperty("title").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.Title); contactPerson.GetProperty("name").GetProperty("firstName").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.Name.FirstName); contactPerson.GetProperty("name").GetProperty("middleName").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.Name.MiddleName); contactPerson.GetProperty("name").GetProperty("lastName").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.Name.LastName); contactPerson.GetProperty("suffix").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.Suffix); var emailAddresses = contactPerson.GetProperty("emailAddresses").EnumerateArray().ToList(); for (int j = 0; j < emailAddresses.Count; j++) { var emailAddress = emailAddresses[j]; emailAddress.GetProperty("emailAddress").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.EmailAddresses[j].EmailAddress); } var phoneNumbers = contactPerson.GetProperty("phoneNumbers").EnumerateArray().ToList(); for (int j = 0; j < phoneNumbers.Count; j++) { var phoneNumber = phoneNumbers[j]; phoneNumber.GetProperty("phoneNumberType").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.PhoneNumbers[j].PhoneNumberType); phoneNumber.GetProperty("phoneNumber").GetString().Should().Be( storeCustomer.Contacts[i].ContactPerson.PhoneNumbers[j].PhoneNumber); } } for (int i = 0; i < addresses.Count; i++) { var addressItem = addresses[i]; var address = addressItem.GetProperty("address"); addressItem.GetProperty("addressType").GetString().Should().Be( storeCustomer.Addresses[i].AddressType); address.GetProperty("addressLine1").GetString().Should().Be( storeCustomer.Addresses[i].Address.AddressLine1); address.GetProperty("addressLine2").GetString().Should().Be( storeCustomer.Addresses[i].Address.AddressLine2); address.GetProperty("postalCode").GetString().Should().Be( storeCustomer.Addresses[i].Address.PostalCode); address.GetProperty("city").GetString().Should().Be( storeCustomer.Addresses[i].Address.City); address.GetProperty("stateProvinceCode").GetString().Should().Be( storeCustomer.Addresses[i].Address.StateProvinceCode); address.GetProperty("countryRegionCode").GetString().Should().Be( storeCustomer.Addresses[i].Address.CountryRegionCode); } }