public void PRECISION_Report_Printed() { var transport = PriceDependencies.GetExpense("Transport", new PercentageCost(0.03M)); var currencyFormat = new NumberFormatInfo { CurrencySymbol = "USD", CurrencyPositivePattern = 3 }; priceModifiersBuilder = new ProductModifiersBuilder() .WithDiscount(universalDiscount) .WithTax(taxPercent21) .WithExpense(transport) .WithDiscount(specialDiscountSpecificForProduct) .WithMultiplicativeCalculation() .WithCurrencyFormat(currencyFormat); var priceResult = priceCalculator.GetPriceResultForProduct(product, priceModifiersBuilder); var expected = @"Cost = 20.25 USD " + "Tax = 4.25 USD " + "Discounts = 4.24 USD " + "Transport = 0.61 USD " + "TOTAL = 20.87 USD"; var actual = priceResult.ToString().CleanseString(); Assert.Equal(expected, actual); }
public void Product_Price_With_Additive_Discount_Calculation() { priceModifiersBuilder = new ProductModifiersBuilder() .WithDiscount(universalDiscount) .WithTax(taxPercent21) .WithDiscount(specialDiscountSpecificForProduct) .WithExpense(packaging) .WithExpense(transport) .WithAdditiveCalculation(); var priceResult = priceCalculator.GetPriceResultForProduct(product, priceModifiersBuilder); var expectedPrice = new Money(22.44M); var actual = priceResult.Total; Assert.Equal(expectedPrice, actual); }
public void Product_Price_With_Additional_Precision() { var transport = PriceDependencies.GetExpense("Transport", new PercentageCost(0.03M)); priceModifiersBuilder = new ProductModifiersBuilder() .WithDiscount(universalDiscount) .WithTax(taxPercent21) .WithExpense(transport) .WithDiscount(specialDiscountSpecificForProduct) .WithMultiplicativeCalculation(); var priceResult = priceCalculator.GetPriceResultForProduct(product, priceModifiersBuilder); var expectedPrice = new Money(20.87M); var actual = priceResult.Total; Assert.Equal(expectedPrice, actual); }
public void CURRENCY_Report_Printed() { var currencyFormatGbp = new NumberFormatInfo { CurrencySymbol = "GBP", CurrencyPositivePattern = 3 }; priceModifiersBuilder = new ProductModifiersBuilder() .WithTax(taxPercent20) .WithCurrencyFormat(currencyFormatGbp); var priceResult = priceCalculator.GetPriceResultForProduct(productGbp, priceModifiersBuilder); var expected = @"Cost = 17.76 GBP " + "Tax = 3.55 GBP " + "TOTAL = 21.31 GBP"; var actual = priceResult.ToString().CleanseString(); Assert.Equal(expected, actual); }
public void COMBINING_Report_Printed() { priceModifiersBuilder = new ProductModifiersBuilder() .WithTax(taxPercent21) .WithDiscount(universalDiscount) .WithDiscount(specialDiscountSpecificForProduct) .WithMultiplicativeCalculation() .WithExpense(packaging, transport); var priceResult = priceCalculator.GetPriceResultForProduct(product, priceModifiersBuilder); var expected = @"Cost = $20.25 " + "Tax = $4.25 " + "Discounts = $4.24 " + "Packaging = $0.20 " + "Transport = $2.2 " + "TOTAL = $22.66"; var actual = priceResult.ToString().CleanseString(); Assert.Equal(expected, actual); }