I met a problem with testing a method(displayEmployees), which returns a List of objects.
public class Task {
static List<Employee> employeeList;
public static void main(String[] args) {
Employee employee1 = new Employee("Dobrobaba", "Irina", "Ivanovna",
"Moskva", 1900, 6);
Employee employee2 = new Employee("Shmal", "Anna", "Nikolaevna",
"Krasnodar", 2017, 8);
Employee employee3 = new Employee("Kerimova", "Niseimhalum", "Magomedmirzaevna",
"New-York", 2017, 3);
Employee employee4 = new Employee("Dobryden", "Yuri", "Viktorovich",
"Auckland", 2014, 11);
Employee employee5 = new Employee("Lopata", "Leonid", "Nikolaevich",
"Beijing", 2014, 11);
employeeList = new ArrayList<>(Arrays.asList(employee1, employee2, employee3, employee4, employee5));
}
/**
* Prints employees' information, which have worked more than 'n' year(s) for now.
*
* @param n years quantity
*/
public static List<Object> displayEmployees(int n) {
List<Employee> requiredList = new ArrayList<>();
employeeList.forEach(employee -> {
if (Year.now().getValue() - employee.getEmploymentYear() >= n) {
requiredList.add(employee);
}
});
return Collections.singletonList(requiredList);
}
}
This is how I'm trying to make a test, comparing 2 Lists one with another:
public class TaskTest {
public static void main(String[] args) {
displayEmployeesTest();
}
public static void assertEquals(String testName, List<Object> expected, List<Object> actual) {
if (expected.equals(actual)) {
System.out.println(testName + " passed");
} else {
System.out.println(testName + " failed: expected " + expected + ", actual " + actual);
}
}
private static void displayEmployeesTest() {
List<Object> expectedList;
Employee employee1 = new Employee("Dobrobaba", "Irina", "Ivanovna",
"Moskva", 1900, 6);
Employee employee2 = new Employee("Shmal", "Anna", "Nikolaevna",
"Krasnodar", 2017, 8);
Employee employee3 = new Employee("Kerimova", "Niseimhalum", "Magomedmirzaevna",
"New-York", 2017, 3);
Employee employee4 = new Employee("Dobryden", "Yuri", "Viktorovich",
"Auckland", 2014, 11);
Employee employee5 = new Employee("Lopata", "Leonid", "Nikolaevich",
"Beijing", 2014, 11);
expectedList = new ArrayList<>(Arrays.asList(employee1, employee4, employee5));
assertEquals("displayEmployeesTest", expectedList, displayEmployees(3));
}
}
Problem is - I get an error "java.lang.NullPointerException", running TaskTest.
What is the reason of that error occurrence? Thank you for your attention!