Пример #1
0
        public void SalaryCalculatorShouldReturnCorrectValue()
        {
            var salaryString    = "3400";
            var grossSalary     = 3400m;
            var taxesCalculator = TaxCalculatorServiceMock.New;

            taxesCalculator
            .Setup(x => x.ShouldApplyTax(grossSalary))
            .Returns(true);
            taxesCalculator
            .Setup(x => x.IncomeTax(grossSalary))
            .Returns(240);
            taxesCalculator
            .Setup(x => x.SocialTax(grossSalary))
            .Returns(300);
            var salaryValidation = SalaryValidationServiceMock.New;

            salaryValidation
            .Setup(x => x.IsValid(salaryString))
            .Returns(true);
            var salaryCalculator = new SalaryCalculator(taxesCalculator.Object, salaryValidation.Object);

            var result = salaryCalculator.CalculateNetSalary(salaryString);

            result
            .Should()
            .Be(2860);
        }
Пример #2
0
        public void SalaryCalculatorShouldReturnInvalidCodeWhenSalaryIsNotValid()
        {
            var salaryString     = "-1";
            var salaryValidation = SalaryValidationServiceMock.New;

            salaryValidation
            .Setup(x => x.IsValid(salaryString))
            .Returns(false);
            var salaryCalculator = new SalaryCalculator(null, salaryValidation.Object);

            var result = salaryCalculator.CalculateNetSalary(salaryString);

            result
            .Should()
            .Be(SalaryConstants.INVALID_SALARY_CODE);
        }
Пример #3
0
        public void SalaryCalculatorShouldNotReturnInvalidCodeWhenSalaryIsValid()
        {
            var salaryString    = "1";
            var grossSalary     = 1m;
            var taxesCalculator = TaxCalculatorServiceMock.New;

            taxesCalculator
            .Setup(x => x.ShouldApplyTax(grossSalary))
            .Returns(false);
            var salaryValidation = SalaryValidationServiceMock.New;

            salaryValidation
            .Setup(x => x.IsValid(salaryString))
            .Returns(true);
            var salaryCalculator = new SalaryCalculator(taxesCalculator.Object, salaryValidation.Object);

            var result = salaryCalculator.CalculateNetSalary(salaryString);

            result
            .Should()
            .NotBe(SalaryConstants.INVALID_SALARY_CODE);
        }