Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }