예제 #1
0
        static void CalculateUsingLondonStyle()
        {
            var priceHelper     = new LondonStyle.PriceHelper();
            var priceCalculator = new LondonStyle.PriceCalculator(priceHelper);
            var finalPrice      = priceCalculator.GetFinalPrice(100, 7.25m);

            Console.WriteLine($"LondonStyle -> Final price is: {finalPrice}");
        }
        public void ShouldCalculateFinalPrice()
        {
            const decimal originalPrice        = 99;
            const decimal stateTax             = 7.25m;
            const decimal priceTax             = 7.1775m;
            const decimal finalNonRoundedPrice = 106.1775m;
            const decimal finalPrice           = 106.18m;

            _priceHelper
            .Setup(x => x.CalculatePriceTax(originalPrice, stateTax))
            .Returns(priceTax);
            _priceHelper
            .Setup(x => x.CalculateFinalPrice(originalPrice, priceTax))
            .Returns(finalNonRoundedPrice);
            _priceHelper
            .Setup(x => x.RoundToTwoDecimals(finalNonRoundedPrice))
            .Returns(finalPrice);

            var price = _sut.GetFinalPrice(originalPrice, stateTax);

            Assert.That(price, Is.EqualTo(finalPrice));
        }