public void CartService_AddToCart_WorkCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>()
            };

            var product_data_mock = new Mock <IProductService>();

            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);

            const int expected_id = 5;

            cart_service.AddToCart(expected_id);

            Assert.Equal(1, cart.ItemsCount);
            Assert.Single(cart.Items);
            Assert.Equal(expected_id, cart.Items[0].ProductId);
        }
        public void CartService_AddToCart_WorksCorrect()
        {
            const int expected_product_id = 5;

            //корзина
            var cart = new Cart {
                Items = new List <CartItem>()
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            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);

            cart_service.AddToCart(expected_product_id);

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(1, result_count);
            Assert.Equal(1, cart.ItemsCount);
            Assert.Equal(expected_product_id, cart.Items.First().ProductId);
        }
        public void CarItemService_AdToCartCorrect()
        {
            var cart = new Cart
            {
                Items = new List <CartItem>()
            };
            var productdatamock = new Mock <IProductData>();
            var cartstoremock   = new Mock <ICartStore>();

            cartstoremock.Setup(c => c.Cart)
            .Returns(cart);
            var       cartservidse = new CookieCartService(productdatamock.Object, cartstoremock.Object);
            const int expressionId = 5;

            cartservidse.AddToCart(expressionId);
            Assert.Equal(1, cart.ItemsCount);
            Assert.Single(cart.Items);
            Assert.Equal(expressionId, cart.Items[0].ProductId);
        }
        public void CartService_AddToCart_Increment_Quantity()
        {
            const int expected_product_id = 5;
            const int expected_quantity   = 10;

            //корзина c одним элементом
            var cart = new Cart
            {
                Items = new List <CartItem>
                {
                    new CartItem {
                        ProductId = expected_product_id, Quantity = expected_quantity - 1
                    }
                }
            };

            //сервис - заглушка
            var product_data_mock = new Mock <IProductData>();

            //сервис хранения корзины
            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);

            cart_service.AddToCart(expected_product_id);

            //сравниваем кол-во товаров
            var result_count = cart.Items.Count;

            Assert.Equal(1, result_count);
            Assert.Equal(expected_quantity, cart.ItemsCount);
            Assert.Equal(expected_product_id, cart.Items.First().ProductId);
            Assert.Equal(expected_quantity, cart.Items.First().Quantity);
        }