public void ItalyCalculateSalary_MustReturn_ValidModel(double HoursWorked, double HourlyRate, double netSalary)
        {
            var service = new ItalyPayrollCalculator();

            var salary = service.CalculateSalary(HoursWorked, HourlyRate);

            Assert.AreEqual(netSalary, salary.NetSalary);
        }
Example #2
0
        public void ItalyCalculateTotalTaxDeductions_GivenSalary_Returns_TotalTaxDeductionsValue()
        {
            // Arrange
            var calculator = new ItalyPayrollCalculator();

            //Act
            var actual = calculator.CalculateTotalTaxDeductions(600);

            // Assert
            var expected = 265.14; // TODO:

            actual.Should().Be(expected);
        }
Example #3
0
        public void ItalyCalculateIncomeTax25Percent_GivenSalary_Returns_CalculateIncomeTaxValue()
        {
            // Arrange
            var ItalySaleryCalculator = new ItalyPayrollCalculator();

            //Act
            var actual = ItalySaleryCalculator.CalculateIncomeTax(500);

            // Assert
            var expected = 125;

            actual.Should().Be(expected);
        }
Example #4
0
        public void ItalyCalculateIncomeTax_GivenSalaryLessThanZero_Returns_InvalidInputException()
        {
            // Arrange
            var italySaleryCalculator = new ItalyPayrollCalculator();

            //Act
            Action calculateIncomeTax          = () => italySaleryCalculator.CalculateIncomeTax(-200);
            Action calculateTotalTaxDeductions = () => italySaleryCalculator.CalculateTotalTaxDeductions(-200);

            // Assert
            string expectedMessage = "Given salary should be greater than zero, received value:";

            calculateIncomeTax.Should().Throw <InvalidInputException>().Where(e => e.Message.StartsWith(expectedMessage));
            calculateTotalTaxDeductions.Should().Throw <InvalidInputException>().Where(e => e.Message.StartsWith(expectedMessage));
        }
Example #5
0
        public void As_a_payroll_user_I_should_see_an_income__tax_to_an_Italian_employee()
        {
            //Gross 4000
            //1000 25% of 4000
            // Gross - Tax = 3000

            var employee = new Employee()
            {
                HourRate = 40, TotalWorkedHours = 100, Location = Location.Italy
            };

            IPayroll italyPayrollCalculator = new ItalyPayrollCalculator();

            italyPayrollCalculator.Calculate(employee);

            var expected = 1000;

            Assert.Contains(expected.ToString(), italyPayrollCalculator.ShowPayrollSummary());
        }