Example #1
0
        public void Products_ReturnsProductsList_Ok()
        {
            // arrange
            var mock = new Mock <EFProductRepository>();
            var productCategoryMock = new Mock <ProductCategory>();
            var productsDTO         = new ProductApiDTO[] {
                new ProductApiDTO {
                    ProductId = 1, Name = "N1", Description = "D1", Price = 10, ProductCategoryName = "C1", ProductCategoryId = 1
                },
                new ProductApiDTO {
                    ProductId = 2, Name = "N2", Description = "D2", Price = 11, ProductCategoryName = "C1", ProductCategoryId = 1
                },
                new ProductApiDTO {
                    ProductId = 3, Name = "N3", Description = "D3", Price = 12, ProductCategoryName = "C1", ProductCategoryId = 1
                },
                new ProductApiDTO {
                    ProductId = 4, Name = "N4", Description = "D4", Price = 13, ProductCategoryName = "C1", ProductCategoryId = 1
                },
                new ProductApiDTO {
                    ProductId = 5, Name = "N5", Description = "D5", Price = 14, ProductCategoryName = "C1", ProductCategoryId = 1
                },
            };
            var products = new Product[] {
                new Product {
                    ProductId = 1, Name = "N1", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                },
                new Product {
                    ProductId = 2, Name = "N2", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                },
                new Product {
                    ProductId = 3, Name = "N3", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                },
                new Product {
                    ProductId = 4, Name = "N4", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                },
                new Product {
                    ProductId = 5, Name = "N5", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                }
            };

            mock.Setup(repo => repo.GetProducts()).Returns(products.AsQueryable <Product>());
            productCategoryMock.Setup(repo => repo.Name).Returns("C1");
            productCategoryMock.Setup(repo => repo.ProductCategoryId).Returns(1);
            var controller = new ProductApiController(mock.Object);

            // act
            var result = controller.Products();

            // assert
            mock.Verify();
            Assert.Equal(productsDTO[0].ProductId, result.Value[0].ProductId);
            Assert.Equal(productsDTO[0].Description, result.Value[0].Description);
            Assert.Equal(productsDTO[0].ProductCategoryName, result.Value[0].ProductCategoryName);
        }
Example #2
0
        public void ProductItem_ReturnsProductsItemById_Ok()
        {
            // arrange
            var mock = new Mock <EFProductRepository>();
            var productCategoryMock = new Mock <ProductCategory>();

            var products = new Product[] {
                new Product {
                    ProductId = 1, Name = "N1", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                },
                new Product {
                    ProductId = 2, Name = "N2", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 2
                },
                new Product {
                    ProductId = 3, Name = "N3", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 3
                },
                new Product {
                    ProductId = 4, Name = "N4", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 4
                },
                new Product {
                    ProductId = 5, Name = "N5", Description = "D1", Price = 10, ProductCategory = productCategoryMock.Object, ProductCategoryId = 1
                }
            };

            var productDTO = new ProductApiDTO()
            {
                ProductId           = 1,
                Name                = "N1",
                Description         = "D1",
                Price               = 10,
                ProductCategoryName = "C1",
                ProductCategoryId   = 1
            };

            mock.Setup(repo => repo.GetProducts()).Returns(products.AsQueryable <Product>());
            productCategoryMock.Setup(repo => repo.Name).Returns("C1");
            productCategoryMock.Setup(repo => repo.ProductCategoryId).Returns(1);

            var controller = new ProductApiController(mock.Object);

            // act
            var result = controller.ProductItem(1);

            // assert
            Assert.IsType <ActionResult <ProductApiDTO> >(result);
            Assert.Equal(productDTO.ProductCategoryId, result.Value.ProductCategoryId);
            Assert.Equal(productDTO.ProductCategoryName, result.Value.ProductCategoryName);
            Assert.Equal(productDTO.ProductId, result.Value.ProductId);
        }