public void get_all_products_from_not_empty_storage_returns_list_of_products()
        {
            var products = new ProductDataFactory()
                .CreateManyProducts();

            sut.Save(products);

            sut.GetAll()
                .ShouldAllBeEquivalentTo(products, o => o.Excluding(x => x.Id));
        }
        public void get_all_products_returns_list_of_all_stored_products()
        {
            var products = new ProductDataFactory()
                .CreateManyProducts();

            repository.GetAll()
                .Returns(products);

            sut.GetAllProducts()
                .ShouldAllBeEquivalentTo(products);
        }
        public void get_products_count_returns_number_of_all_stored_products(
            int productsCount)
        {
            var products = new ProductDataFactory()
                            .CreateProductsList(productsCount);

            sut.Save(products);

            sut.GetProductsCount()
                .Should()
                .Be(productsCount);
        }
        public void get_by_id_returns_corresponding_product()
        {
            var products = new ProductDataFactory()
                .CreateProductsList(3);

            sut.Save(products);

            var expected = products[1];

            sut.GetById(products[1].Id.Value)
                .ShouldBeEquivalentTo(expected);
        }
        public void get_returns_list_of_all_stored_products(
            [Frozen] IProductService service,
            ProductController sut)
        {
            var products = new ProductDataFactory()
                .CreateManyProducts();

            service.GetAllProducts()
                .Returns(products);

            sut.Get()
                .ShouldAllBeEquivalentTo(products);
        }
        public void get_page_products_returns_list_of_10_products(
            [Frozen] IProductService service,
            ProductController sut)
        {
            var products = new ProductDataFactory()
                .CreateProductsList(10);

            service.GetProductsForPage(1)
                .Returns(products);

            sut.GetPageProducts(1)
                .ShouldAllBeEquivalentTo(products);
        }
        public void get_10_products_from_not_empty_storage_returns_proper_list()
        {
            var products = new ProductDataFactory()
                            .CreateProductsList(20);

            sut.Save(products);

            var expected = products.GetRange(0, 10);

            sut.GetTenProducts(0)
                .Count
                .Should().Be(10);
            sut.GetTenProducts(0)
                .ShouldAllBeEquivalentTo(expected, o => o.Excluding(x => x.Id));
        }
        public void get_ten_products_for_too_big_page_number_should_return_last_available_products()
        {
            var products = new ProductDataFactory()
                .CreateProductsList(9);

            var count = products.Count;

            repository.GetTenProducts(0)
                .Returns(products);
            repository.GetProductsCount()
                .Returns(count);

            sut.GetProductsForPage(2)
                .ShouldAllBeEquivalentTo(products);
        }
Ejemplo n.º 9
0
        public void order_factory_should_order_with_proper_user_and_order_items(
            OrderFactory sut,
            User user,
            string address,
            string city,
            string zip)
        {
            var products = new ProductDataFactory()
                .CreateSavedProductsList(5);

            var cart = new CartDataBuilder()
                .WithSomeId()
                .WithProducts(products)
                .Build();

            var actual = sut.CreateOrder(user,
                                         cart,
                                         address,
                                         city,
                                         zip);

            actual
                .Should()
                .NotBeNull();

            actual
                .Should()
                .BeOfType<ShopOrder>();

            actual.User
                .ShouldBeEquivalentTo(user);
            actual.OrderItems
                .ShouldAllBeEquivalentTo(cart.Items);

            actual.Address
                .Should().Be(address);
            actual.City
                .Should().Be(city);
            actual.Zip
               .Should().Be(zip);
        }
        public void add_product_to_existing_cart_returns_cart_containing_product()
        {
            var products = new ProductDataFactory()
                .CreateProductsList(2);

            productRepository.Save(products);

            var sut = kernel.Get<ICartService>();

            var cart = sut.AddProductToCart(null, products[0].Id.Value);

            var actual = sut.AddProductToCart(cart.Id, products[1].Id.Value);

            actual.Id
                .Should()
                .Be(cart.Id);
            actual
                .Items
                .Should()
                .Contain(item => item.Product.Id == products[1].Id);
        }
        public void sucessful_scenario_of_order_creation(
            OrderData data)
        {
            // Arrange
            var products = new ProductDataFactory()
                .CreateSavedProductsList(3);
            productRepository.Save(products);

            var cart = new CartDataBuilder()
                .WithProducts(products)
                .Build();
            cartRepository.Save(cart);

            var user = new UserDataBuilder()
                .WithId(data.UserId)
                .Build();
            userRepository.CreateUser(user);

            data.CartId = cart.Id.Value;
            data.UserId = user.Id;

            //Act
            var actual = sut.CreateOrder(data);

            //Assert
            actual.User
                .ShouldBeEquivalentTo(user);
            //actual.OrderItems
            //    .ShouldAllBeEquivalentTo(cart.Items);

            actual.Address
                .Should().Be(data.Address);
            actual.City
                .Should().Be(data.City);
            actual.Zip
               .Should().Be(data.Zip);
        }
Ejemplo n.º 12
0
        public void get_subtotal_for_not_empty_cart_returns_sum_of_products_prices(
            Guid cartId)
        {
            var products = new ProductDataFactory()
                .CreateSavedProductsList(3);

            var cart = new CartDataBuilder()
                .WithId(cartId)
                .WithProducts(products)
                .Build();

            cartRepository.GetCartById(cartId)
                      .Returns(cart);

            var expected = products.Sum(p => p.Price);

            sut.GetSubtotal(cartId)
                .Should()
                .Be(expected);
        }
        public void get_ten_products_returns_proper_list_of_10_stored_products()
        {
            var dataFactory = new ProductDataFactory();
            var productsFrom0To10 = dataFactory
                                    .CreateProductsList(10);
            var productsFrom10To20 = dataFactory
                                    .CreateProductsList(10);

            repository.GetTenProducts(0)
                .Returns(productsFrom0To10);
            repository.GetTenProducts(10)
                .Returns(productsFrom10To20);
            repository.GetProductsCount()
                .Returns(20);

            sut.GetProductsForPage(1)
                .ShouldAllBeEquivalentTo(productsFrom0To10);
            sut.GetProductsForPage(2)
                .ShouldAllBeEquivalentTo(productsFrom10To20);
        }
        public void get_total_for_not_empty_cart_returns_correct_summary()
        {
            var products = new ProductDataFactory()
                .CreateProductsListWithFixedPrice(3, 50);

            productRepository.Save(products);

            var sut = kernel.Get<ICartService>();

            var cart = sut.AddProductToCart(null, products[0].Id.Value);
            foreach (var product in products)
            {
                sut.AddProductToCart(cart.Id, product.Id.Value);
            }

            var expected = new TotalSummary
            {
               VATRate = 0.2,
               VAT = 40,
               TotalExcludingVAT = 200,
               TotalIncludingVAT = 240
            };

            sut.GetTotal(cart.Id.Value)
                .ShouldBeEquivalentTo(expected);
        }