public void EmployeeSalaryCannotBeMoreThanWageBudget(BonusPoolTestData testData) { var calculator = new BonusPoolCalculator(testData.WageBudget, testData.BonusPoolValue); Action calculate = () => calculator.CalculateBonusAllocation(testData.EmployeeSalary); Assert.ThrowsException <ArgumentOutOfRangeException>(calculate, "Employee salary cannot be greater than the wage budget"); }
public void BonusIsGivenToTwoDecimalPlaces(BonusPoolTestData testData) { var calculator = new BonusPoolCalculator(testData.WageBudget, testData.BonusPoolValue); decimal bonus = calculator.CalculateBonusAllocation(testData.EmployeeSalary); decimal bonusRounded = Decimal.Round(bonus, 2); Assert.AreEqual(bonusRounded, bonus); }
public void BonusPercentageOfPoolEqualsSalaryPercentageOfWageBudget(BonusPoolTestData testData) { var calculator = new BonusPoolCalculator(testData.WageBudget, testData.BonusPoolValue); decimal basePercentage = testData.WageBudget != 0 ? testData.EmployeeSalary / testData.WageBudget : 0; decimal expectedBonus = Math.Floor(basePercentage * testData.BonusPoolValue * 100) / 100; decimal bonus = calculator.CalculateBonusAllocation(testData.EmployeeSalary); Assert.AreEqual(expectedBonus, bonus); }