public void ApplyingTaxThatValueEqualsZeroShouldResultInFinalPriceThatIsEqualToPreferredPriceOfProductAfterThatCalculateFinalPriceIsCalled() { var productWithPreferredPrice = Product() .WithCategoryId((int)ProductCategoryEnum.Clothing).WithPreferredPrice(PreferredPrice) .Build(); void StandardCalculateFinalPriceCall() => Algorithm.CalculateFinalPrice(productWithPreferredPrice, _state, 1); Assert.That(StandardCalculateFinalPriceCall, DoesNotThrow.An <ArgumentOutOfRangeException>()); var finalPrice = productWithPreferredPrice.FinalPrice; Assert.That(finalPrice, Is.EqualTo(PreferredPrice)); }
public void CalculateFinalPriceShouldUpdateProperlyFinalPriceOfProduct() { var state = State().AddTax().OfCategoryId((int)ProductCategoryEnum.Clothing).OfTaxRate(10).ConfirmTax().Build(); var product = Product().WithCategoryId((int)ProductCategoryEnum.Clothing).WithPurchasePrice(20) .WithPreferredPrice(PreferredPriceOf40).Build(); void StandardCalculateFinalPriceCall() => Algorithm.CalculateFinalPrice(product, state, 1); Assert.That(StandardCalculateFinalPriceCall, DoesNotThrow.An <ArgumentOutOfRangeException>()); var finalPrice = product.FinalPrice; Assert.That(finalPrice, Is.EqualTo(FinalPriceOf36)); }