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..a73f19ad1 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 Employee getDetails(Employee employee) { + return employee; + } } diff --git a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/EmployeeManager.java b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/EmployeeManager.java index 4ac9edc41..37f1c4cd7 100644 --- a/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/EmployeeManager.java +++ b/lesson_15/tdd/tdd_app/src/main/java/com/codedifferently/lesson15/EmployeeManager.java @@ -34,7 +34,7 @@ private void assertEmployeeInCollection(int id) { if (this.employees.containsKey(id)) { return; } - throw new IllegalArgumentException("Employee does not in collection with id " + id); + throw new IllegalArgumentException("Employee does not exist in collection with Id " + id); } public int getEmployeeCount() { 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..58555a6df --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java @@ -0,0 +1,82 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class EmployeeManagerTest { + + private EmployeeManager employeeManager; + private Employee employee; + + @BeforeEach + void setUp() { + employeeManager = new EmployeeManager(); + employee = new Employee(1, "Edgar Allen Poe", "Publications", 0.0); + employeeManager.addEmployee(employee); + } + + @Test + void testAddEmployee() { + // Arrange + Employee newEmployee = new Employee(2, "Sheet Ghost", "Administration", 0.0); + // Act + employeeManager.addEmployee(newEmployee); + // Assert + assertThat(employeeManager.getEmployee(2)).isEqualTo(newEmployee); + } + + @Test + void testGetEmployee() { + // Act + Employee actualEmployee = employeeManager.getEmployee(1); + // Assert + assertThat(actualEmployee).isEqualTo(employee); + } + + @Test + void testUpdateEmployee() { + // Arrange + Employee updatedEmployee = new Employee(1, "Frankenstein", "Development", 0.0); + // Act + employeeManager.updateEmployee(updatedEmployee); + Employee actualEmployee = employeeManager.getEmployee(1); + // Assert + assertThat(actualEmployee).isEqualTo(updatedEmployee); + } + + @Test + void testRemoveEmployee() { + // Arrange + employeeManager.addEmployee(new Employee(1, "Frankenstein", "Development", 0.0)); + // Act + employeeManager.removeEmployee(1); + Employee removedEmployee = employeeManager.getEmployee(1); + // Assert + assertEquals(0, employeeManager.getEmployeeCount(), "Employee count should be 0"); + assertNull(removedEmployee, "Employee should be removed from directory."); + } + + @Test + void testAssertEmployeeInCollection() { + // Arrange & Act & Assert + assertThatThrownBy(() -> employeeManager.getEmployee(52)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Employee does not exist in collection with Id 52"); + } + + @Test + void testGetEmployeeCount() { + // Arrange + Employee addNew1 = new Employee(2, "Dracula", "Medical", 0.0); + Employee addNew2 = new Employee(3, "Blade", "Security", 0.0); + // Act + employeeManager.addEmployee(addNew1); + employeeManager.addEmployee(addNew2); + // Assert + assertEquals(3, employeeManager.getEmployeeCount()); + } +} 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..ce4d39185 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java @@ -0,0 +1,19 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +public class EmployeeTest { + private Employee employee; + + @Test + void testGetDetails() { + // Arrange + employee = new Employee(1, "Jet Li", "Specialist", 110.00); + // Act + Employee actualDetails = employee.getDetails(employee); + // Assert + assertThat(actualDetails).isEqualTo(employee); + } +}