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