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);
        }
 protected bool Equals(Price other)
 {
     return Equals(BasePrice, other.BasePrice) && Equals(Tax, other.Tax);
 }
 private Bill CreateBill(Price finalPrice)
 {
     return new Bill { Price = finalPrice };
 }