public void danish_tax_is_25_percent(double itemPrice, bool isConsumer) { // arrange var itemPriceAsDecimal = (decimal)itemPrice; var expected = new Price(new Amount(Currency.DKK, itemPriceAsDecimal * 4), new Amount(Currency.DKK, itemPriceAsDecimal)); var sut = new DanishTaxCalculationStrategy(); var calculator = new PriceCalculator(sut); var order = CreateOrder(calculator, itemPriceAsDecimal, isConsumer); // act var actual = order.CreateBill().Price; // assert Assert.Equal(expected, actual); }
public void add_tax_to_total() { // arrange var tax = new Amount(Currency.DKK, 25); var expected = new Price(total, tax); var fakeTaxStrategy = A.Fake<TaxCalculationStrategy>(); A.CallTo(fakeTaxStrategy).WithReturnType<Amount>().Returns(tax); var sut = new PriceCalculator(fakeTaxStrategy); var order = CreateOrder(sut, 25, isConsumer: true); // act var actual = order.CreateBill().Price; // assert Assert.Equal(expected, actual); }
public Order(IEnumerable<OrderLine> orderLines, PriceCalculator priceCalculator, Customer customer) { this.OrderLines = ImmutableList<OrderLine>.Empty.AddRange(orderLines); this.priceCalculator = priceCalculator; this.IsB2C = customer.IsConsumer; }
private Order CreateOrder(PriceCalculator priceCalculator, decimal itemPrice, bool isConsumer) { return new Order(Enumerable.Repeat<OrderLine>(new OrderLine(new Sku(), 2, new Amount(Currency.DKK, itemPrice)), 2), priceCalculator, new Customer { IsConsumer = isConsumer}); }