diff --git a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java index 49aaabbd7..05ef794d9 100644 --- a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java +++ b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/Employee.java @@ -45,4 +45,8 @@ public double getSalary() { public void setSalary(double salary) { this.salary = salary; } + + public String getDetails() { + return "ID: " + id + "\nName: " + name + "\nDepartment: " + department + "\nSalary: " + salary; + } } diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java new file mode 100644 index 000000000..d2991b22a --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java @@ -0,0 +1,72 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class EmployeeManagerTest { + EmployeeManager employeeManager; + private Map employees; + + @BeforeEach + void setUp() { + employees = new HashMap<>(); + employees.put(1, new Employee(1, "John", "Marketing", 20000.50)); + employees.put(2, new Employee(2, "Jane", "Accounting", 30000.70)); + employeeManager = new EmployeeManager(); + for (Map.Entry entry : employees.entrySet()) { + employeeManager.addEmployee(entry.getValue()); + } + } + + @Test + public void testGetEmployee() { + // Arange + var id = 1; + + // Act + Employee result = employeeManager.getEmployee(id); + + // Assert + assertThat(result).isNotNull(); + assertThat(result.getName()).isEqualTo("John"); + } + + @Test + public void testUpdateEmployee() { + // Arrange + var id = 2; + + // Act + Employee employee = employeeManager.getEmployee(id); // use this for set test + employee.setDepartment("Human Resources"); + employeeManager.updateEmployee(employee); + Employee updatedEmployee = employeeManager.getEmployee(id); + + // Assert + assertThat(updatedEmployee).isNotNull(); + } + + @Test + public void testGetEmployeeCount() { + // Assert + assertThat(employeeManager.getEmployeeCount()).isNotNull(); + } + + @Test + public void testRemoveEmployee() { + var id = 1; + + int count = employeeManager.getEmployeeCount(); + employeeManager.removeEmployee(id); + + assertThatThrownBy(() -> employeeManager.getEmployee(id)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Employee does not in collection with id " + id); + assertThat(employeeManager.getEmployeeCount()).isLessThan(count); + } +} diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java new file mode 100644 index 000000000..18879b875 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java @@ -0,0 +1,63 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class EmployeeTest { + EmployeeManager employeeManager; + private Map employees; + + @BeforeEach + void setUp() { + employees = new HashMap<>(); + employees.put(1, new Employee(1, "John", "Marketing", 20000.50)); + employees.put(2, new Employee(2, "Jane", "Accounting", 30000.70)); + employeeManager = new EmployeeManager(); + for (Map.Entry entry : employees.entrySet()) { + employeeManager.addEmployee(entry.getValue()); + } + } + + @Test + public void testGetSalary() { + // Arrange + var id = 1; + + // Act + Employee employee = employeeManager.getEmployee(id); + + // Assert + assertThat(employee.getSalary()).isNotNull(); + } + + @Test + public void testGetDepartment() { + // Arrange + var id = 1; + + // Act + Employee employee = employeeManager.getEmployee(id); + + // Assert + assertThat(employee.getDepartment()).isNotNull(); + } + + @Test + public void testGetDetails() { + // Arrange + var id = 1; + + // Act + Employee employee = employeeManager.getEmployee(id); + + // Assert + assertThat(employee.getDetails()).isNotNull(); + assertThat(employee.getName()).isEqualTo("John"); + assertThat(employee.getDepartment()).isEqualTo("Marketing"); + assertThat(employee.getSalary()).isEqualTo(20000.50); + } +}