public void SpainCalculateSalary_MustReturn_ValidModel(double HoursWorked, double HourlyRate, double netSalary) { var service = new SpainPayrollCalculator(); var salary = service.CalculateSalary(HoursWorked, HourlyRate); Assert.AreEqual(netSalary, salary.NetSalary); }
public void SpainCalculatePensionContribution4Percent_GivenSalary_Returns_IncomeTaxContributionValue() { // Arrange var spainSaleryCalculator = new SpainPayrollCalculator(); //Act var actual = spainSaleryCalculator.CalculatePensionContribution(400); // Assert var expected = 16; actual.Should().Be(expected); }
public void SpainCalculateTotalTaxDeductions_GivenSalary_Returns_TotalTaxDeductionsValue() { // Arrange var calculator = new SpainPayrollCalculator(); //Act var actual = calculator.CalculateTotalTaxDeductions(750); // Assert var expected = 390; // TODO: actual.Should().Be(expected); }
public void SpainCalculateIncomeTax40Percent_GivenSalary_Returns_CalculateIncomeTaxValue() { // Arrange var spainSaleryCalculator = new SpainPayrollCalculator(); //Act var actual = spainSaleryCalculator.CalculateIncomeTax(750); // Assert var expected = 300; actual.Should().Be(expected); }
public void SpainCalculateIncomeTax_GivenSalaryLessThanZero_Returns_InvalidInputException() { // Arrange var SpainSaleryCalculator = new SpainPayrollCalculator(); //Act Action calculatePensionContribution = () => SpainSaleryCalculator.CalculatePensionContribution(-100); Action calculateIncomeTax = () => SpainSaleryCalculator.CalculateIncomeTax(-300); Action calculateTotalTaxDeductions = () => SpainSaleryCalculator.CalculateTotalTaxDeductions(-200); // Assert string expectedMessage = "Given salary should be greater than zero, received value:"; calculatePensionContribution.Should().Throw <InvalidInputException>().Where(e => e.Message.StartsWith(expectedMessage)); calculateIncomeTax.Should().Throw <InvalidInputException>().Where(e => e.Message.StartsWith(expectedMessage)); calculateTotalTaxDeductions.Should().Throw <InvalidInputException>().Where(e => e.Message.StartsWith(expectedMessage)); }