public void CartService_TransformCart_WorkCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = 1, Quantity = 1
                    },
                    new CartItem {
                        ProductId = 2, Quantity = 5
                    }
                }
            };
            int expected_count_item = 10;
            var products            = new PagedProductDTO
            {
                Products = Enumerable.Range(0, expected_count_item)
                           .Select(i => new ProductDTO
                {
                    Id       = i,
                    Name     = $"Product {i}",
                    Price    = 100m,
                    Order    = 0,
                    ImageUrl = $"Product{i}.png",
                    Brand    = new BrandDTO {
                        Id = 1, Name = "BrandName"
                    },
                    Category = new CategoryDTO {
                        Id = 1, Name = "CategoryName"
                    }
                }),
                TotalCount = expected_count_item
            };


            var product_data_mock = new Mock <IProductService>();

            product_data_mock
            .Setup(c => c.GetProducts(It.IsAny <ProductFilter>()))
            .Returns(products);

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock
            .Setup(c => c.Cart)
            .Returns(cart);

            var cart_service = new CookieCartService(product_data_mock.Object, cart_store_mock.Object);

            var result = cart_service.TransformCart();

            Assert.Equal(6, result.ItemsCount);
            Assert.Equal(100m, result.Items.First().Key.Price);
        }
示例#2
0
        public void TransformCart_Works_Correctly()
        {
            var cart = new Cart
            {
                Items = new List <CartItem> {
                    new CartItem {
                        ProductId = 1, Quantity = 4
                    }
                }
            };

            var products = new List <ProductDTO>
            {
                new ProductDTO
                {
                    Id       = 1,
                    ImageUrl = "image1.jpg",
                    Name     = "Test",
                    Order    = 0,
                    Price    = 1.11m
                }
            };

            var model = new PagedProductDTO
            {
                Products = products
            };
            var product_data_mock = new Mock <IProductData>();

            product_data_mock
            .Setup(c => c.GetProducts(It.IsAny <ProductFilter>())).Returns(model);

            var cart_store_mock = new Mock <ICartStore>();

            cart_store_mock.Setup(c => c.Cart).Returns(cart);

            var cart_service = new CartService(product_data_mock.Object, cart_store_mock.Object);

            var result = cart_service.TransformCart();

            Assert.Equal(4, result.ItemsCount);
            Assert.Equal(1.11m, result.Items.First().Key.Price);
        }
示例#3
0
        public void Products_Return_Correct_View()
        {
            var product = new[]
            {
                new ProductDTO
                {
                    Id       = 1,
                    Name     = "Item 1",
                    Price    = 10m,
                    ImageUrl = "image_id_1.png",
                    Order    = 0,
                    Brand    = new BrandDTO
                    {
                        Id   = 1,
                        Name = "Brand of item 1"
                    }
                },
                new ProductDTO
                {
                    Id       = 2,
                    Name     = "Item 2",
                    Price    = 12m,
                    ImageUrl = "image_id_2.png",
                    Order    = 0,
                    Brand    = new BrandDTO
                    {
                        Id   = 2,
                        Name = "Brand of item 2"
                    }
                }
            };

            var pageProduct = new PagedProductDTO
            {
                Products   = product,
                TotalCount = product.Length
            };

            var product_service_mock = new Mock <IProductService>();

            product_service_mock
            .Setup(p => p.GetProducts(It.IsAny <ProductFilter>()))
            .Returns <ProductFilter>(filter => new PagedProductDTO
            {
                Products   = product,
                TotalCount = product.Length
            });

            var configuration_mock = new Mock <IConfiguration>();

            configuration_mock
            .Setup(c => c[It.IsAny <string>()])
            .Returns("3");

            var controller = new CatalogController(product_service_mock.Object, configuration_mock.Object);

            const int expected_category_id = 1;
            const int expected_brand_id    = 5;

            var result = controller.Products(expected_category_id, expected_brand_id);

            var view_result = Assert.IsType <ViewResult>(result);
            var model       = Assert.IsAssignableFrom <CatalogViewModel>(view_result.ViewData.Model);

            Assert.Equal(2, model.Products.Count());
            Assert.Equal(expected_brand_id, model.BrandId);
            Assert.Equal(expected_category_id, model.CategoryId);

            Assert.Equal("Brand of item 1", model.Products.First().BrandName);
        }