junit4
junit4
@Test(expected = IllegalArgumentException.class)
public void testInvalidYearOfService() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
salaryCalculator.calculateSalary(-1, 50000, 4);
}
@Test(expected = IllegalArgumentException.class)
public void testNegativeBasicSalary() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
salaryCalculator.calculateSalary(5, -10000, 3);
}
@Test(expected = IllegalArgumentException.class)
public void testInvalidPerformanceRatingBelowZero() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
salaryCalculator.calculateSalary(5, 50000, -1);
}
@Test(expected = IllegalArgumentException.class)
public void testInvalidPerformanceRatingAboveFive() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
salaryCalculator.calculateSalary(5, 50000, 6);
}
@Test
public void testYearOfServiceGreaterThanTen() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(11, 50000, 4);
assertEquals(55000.0, result, 0.01); // 10% bonus, no deduction
}
@Test
public void testYearOfServiceBetweenSixAndTen() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(7, 50000, 4);
assertEquals(52500.0, result, 0.01); // 5% bonus, no deduction
}
@Test
public void testYearOfServiceLessThanOrEqualToFive() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(5, 50000, 4);
assertEquals(50000.0, result, 0.01); // No bonus, no deduction
}
@Test
public void testPerformanceRatingBelowThree() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(5, 50000, 2);
assertEquals(47500.0, result, 0.01); // 5% deduction
}
@Test
public void testValidInputsEdgeCases() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(10, 60000, 5);
assertEquals(60000.0, result, 0.01); // No bonus or deduction
}
@Test
public void testPerformanceRatingMaxBoundary() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(5, 50000, 5);
assertEquals(50000.0, result, 0.01); // No deduction
}
@Test
public void testYearOfServiceZero() {
EmployeeSalary salaryCalculator = new EmployeeSalary();
double result = salaryCalculator.calculateSalary(0, 50000, 4);
assertEquals(50000.0, result, 0.01); // No bonus, no deduction
}