Example #1
0
        public void ShouldCalculateTaxAndPerist()
        {
            var calculatedTaxEntity = new CalculatedTaxEntity("PostalCode", 5m);
            var calculatedTax       = fixture.Create <decimal>();

            mocktaxTypeCalculatorStrategy.Setup(x => x.Invoke(It.IsAny <string>())).Returns(mockTaxTypeCalculator.Object);
            mockTaxTypeCalculator.Setup(x => x.CalulateTax(It.IsAny <decimal>())).Returns(calculatedTax);
            mockCalculatedTaxRepostiory.Setup(x => x.Add(It.IsAny <CalculatedTaxEntity>())).Returns(calculatedTaxEntity);

            taxCalculationService = new TaxCalculationService(mocktaxTypeCalculatorStrategy.Object, mockCalculatedTaxRepostiory.Object);
            taxCalculationService.CalculateTax(calculatedTaxEntity);

            mockCalculatedTaxRepostiory.Verify(x => x.Add(It.Is <CalculatedTaxEntity>(y => y.CalculatedTaxAmount == calculatedTax)), Times.Once);
        }