public void Product_MapFromProductInformationContractToDbEntity_Succeeds() { // Arrange const string productName = "Xbox One X"; const string productDescription = "Microsoft's latest gaming console"; const double productPrice = 599; string productId = Guid.NewGuid().ToString(); var productContract = new ProductInformationContract { Id = productId, Name = productName, Description = productDescription, Price = productPrice }; // Act var product = Mapper.Map <Product>(productContract); // Assert Assert.NotNull(product); Assert.AreEqual(productId, product.ExternalId); Assert.AreEqual(productName, product.Name); Assert.AreEqual(productDescription, product.Description); Assert.AreEqual(productPrice, product.Price); }
public List <string> Run(ProductInformationContract product, Product persistedProduct) { var validationMessages = new List <string>(); if (product == null) { validationMessages.Add(ValidationMessages.Product_IsRequired); } else { if (product.Name != persistedProduct.Name) { validationMessages.Add(ValidationMessages.Product_NameIsNotCorrect); } if (product.Description != persistedProduct.Description) { validationMessages.Add(ValidationMessages.Product_DescriptionIsNotCorrect); } if (product.Price != persistedProduct.Price) { validationMessages.Add(ValidationMessages.Product_PriceIsNotCorrect); } } return(validationMessages); }
private void TrackNewProductAddedEvent(ProductInformationContract productInformation) { var eventContext = new Dictionary <string, string> { { "Name", productInformation.Name }, { "Id", productInformation.Id }, { "Description", productInformation.Description }, { "Price", productInformation.Price.ToString("C") } }; _telemetry.TrackEvent(ProductAddedEvent, eventContext); }
public void Order_MapFromContractToDbEntity_Succeeds() { // Arrange const string customerFirstName = "John"; const string customerLastName = "Doe"; const string customerEmailAddress = "*****@*****.**"; const string productName = "Xbox One X"; const string productDescription = "Microsoft's latest gaming console"; const double productPrice = 599; string productId = Guid.NewGuid().ToString(); var customerContract = new CustomerContract { FirstName = customerFirstName, LastName = customerLastName, EmailAddress = customerEmailAddress }; var product = new ProductInformationContract { Id = productId, Name = productName, Description = productDescription, Price = productPrice }; var orderContract = new OrderContract { Customer = customerContract, Product = product }; // Act var order = Mapper.Map <Order>(orderContract); // Assert Assert.NotNull(order); Assert.NotNull(order.Customer); Assert.AreEqual(customerFirstName, order.Customer.FirstName); Assert.AreEqual(customerLastName, order.Customer.LastName); Assert.AreEqual(customerEmailAddress, order.Customer.EmailAddress); Assert.NotNull(order.Product); Assert.AreEqual(productId, order.Product.ExternalId); Assert.AreEqual(productName, order.Product.Name); Assert.AreEqual(productPrice, order.Product.Price); Assert.AreEqual(productDescription, order.Product.Description); }
public async Task Orders_CreateForNotExistingProduct_ShouldReturnHttpNotFound() { // Arrange const string ordersUrl = "api/v1/order"; const string productId = "I-DO-NOT-EXIST"; const string productName = "Validation Product"; const string productDescription = "Product created by Integration Test, however it should never make it in"; const double productPrice = 100; const string customerFirstName = "Tom"; const string customerLastName = "Tom"; const string customerEmailAddress = "*****@*****.**"; var selloService = new SelloService(); var customer = new CustomerContract { FirstName = customerFirstName, LastName = customerLastName, EmailAddress = customerEmailAddress }; var product = new ProductInformationContract { Id = productId, Name = productName, Description = productDescription, Price = productPrice }; var order = new OrderContract { Customer = customer, Product = product }; // Act var response = await selloService.PostResponseAsync(ordersUrl, order); // Assert Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }