public ProductCategoryDiscountQueryServiceTests()
        {
            var discountRepositoryMock         = new Mock <IProductCategoryDiscountRepository>();
            var productCategoryRepositoryMock  = new Mock <IProductCategoryRepository>();
            var discountCategoryRepositoryMock = new Mock <IDiscountCategoryRepository>();
            var mapperMock = new Mock <IMapper>();

            sut = new ProductCategoryDiscountQueryService(
                discountRepositoryMock.Object,
                productCategoryRepositoryMock.Object,
                discountCategoryRepositoryMock.Object,
                mapperMock.Object);
        }
Exemple #2
0
        public void ApplyDiscountsToProducts_ForEmptyDiscounts_NotReturnsNull()
        {
            // arrange
            var products = new List <Product>
            {
                new Product("", "", 35, "", "", true, "", "")
            };
            var discounts = new List <ProductCategoryDiscount>();
            var sut       = new ProductCategoryDiscountQueryService(categoryDiscountRepository.Object,
                                                                    productCategoryRepository.Object, discountCategoryRepository.Object, mapper.Object);

            // act
            var result = sut.ApplyDiscountsToProducts(products, discounts);

            // assert
            result.Should().NotBeNull();
        }
Exemple #3
0
        public void ApplyDiscountToProducts_ReturnProductsIfDifferentDiscount()
        {
            // arrange
            var data = PrepareProductsWithDiscounts();

            // product and discount are not joined
            var products  = data.Item1;
            var discounts = data.Item2;

            // act
            var sut = new ProductCategoryDiscountQueryService(categoryDiscountRepository.Object,
                                                              productCategoryRepository.Object, discountCategoryRepository.Object, mapper.Object);
            var result = sut.ApplyDiscountsToProducts(products, discounts);
            var productsWithoutDiscounts = result.Where(s => s.Item2 == null);

            // assert
            productsWithoutDiscounts.Count().Should().Be(1);
        }
Exemple #4
0
        public void ApplyDiscountToProducts_WhenAreDiscounts_ReturnValidPairs()
        {
            // arrange
            var(products, discounts) = PrepareProductsWithDiscounts();

            var expected = new List <(int, ProductCategoryDiscount)>
            {
                (products[0].Id, discounts[0]),
                (products[1].Id, discounts[0]),
                (products[2].Id, discounts[1]),
                (products[3].Id, null)
            };

            // act
            var sut = new ProductCategoryDiscountQueryService(categoryDiscountRepository.Object,
                                                              productCategoryRepository.Object, discountCategoryRepository.Object, mapper.Object);

            var result = sut.ApplyDiscountsToProducts(products, discounts);

            // assert
            result.Count.Should().Be(products.Count);
            result.Should().BeEquivalentTo(expected);
        }