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..368139e7e 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,24 @@ public double getSalary() { public void setSalary(double salary) { this.salary = salary; } + + public boolean isEqualTo(int otherId) { + return this.id == otherId; + } + + public String getDetails() { + return "id: " + + this.getId() + + " name: " + + this.getName() + + " department: " + + this.getDepartment() + + " salary: " + + this.getSalary(); + } + + public void put(Employee employee) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'put'"); + } } 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..32c5a2ce0 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 @@ -5,39 +5,37 @@ public class EmployeeManager { - private final Map employees; + private Map employees = new HashMap<>(); - public EmployeeManager() { - employees = new HashMap<>(); + public void addEmployee(Employee employee) { + employees.put(employee.getId(), employee); } - public void addEmployee(Employee employee) { + public void removeEmployee(int id) { + employees.remove(id); + } + + public void updateEmployee(Employee employee) { employees.put(employee.getId(), employee); } public Employee getEmployee(int id) { - assertEmployeeInCollection(id); return employees.get(id); } - public void updateEmployee(Employee employee) { - assertEmployeeInCollection(employee.getId()); - employees.put(employee.getId(), employee); + public int getEmployeeCount() { + return employees.size(); } - public void removeEmployee(int id) { - assertEmployeeInCollection(id); - employees.remove(id); + public Map getEmployees() { + return employees; } - private void assertEmployeeInCollection(int id) { - if (this.employees.containsKey(id)) { - return; - } - throw new IllegalArgumentException("Employee does not in collection with id " + id); + public void setEmployees(Map employees) { + this.employees = employees; } - public int getEmployeeCount() { - return employees.size(); + public EmployeeManager() { + employees = new HashMap<>(); } } diff --git a/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Employee.Test.java b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Employee.Test.java new file mode 100644 index 000000000..025d64ce1 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/Employee.Test.java @@ -0,0 +1,80 @@ +package com.codedifferently.lesson15; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class EmployeeTest { + + Employee employee; + + // Set up + @BeforeEach + void setUp() { + employee = new Employee(7, "Nile", "SWE", 65000.00); + } + + @Test + public void testGetId() { + int actualId = employee.getId(); + int expectedId = 7; + assertEquals(expectedId, actualId); + } + + @Test + public void testSetID() { + int expectedSetId = 0; + employee.setId(expectedSetId); + assertEquals(expectedSetId, employee.getId()); + } + + @Test + public void testGetName() { + String expectedName = "Nile"; + String actualName = employee.getName(); + assertEquals(expectedName, actualName); + } + + @Test + public void testSetName() { + String expectedSetName = "Nile"; + employee.setName(expectedSetName); + assertEquals(expectedSetName, employee.getName()); + } + + @Test + public void testGetDepartment() { + String expectedDepartment = "SWE"; + String actualDepartment = employee.getDepartment(); + assertEquals(expectedDepartment, actualDepartment); + } + + @Test + public void testSetDepartment() { + String expectedSetDepartment = "Tech"; + employee.setDepartment(expectedSetDepartment); + assertEquals(expectedSetDepartment, employee.getDepartment()); + } + + @Test + public void testGetSalary() { + double expectedSalary = 65000.00; + double actualSalary = employee.getSalary(); + assertEquals(expectedSalary, actualSalary); + } + + @Test + public void testSetSalary() { + double expectedSetSalary = 100000.00; + employee.setSalary(expectedSetSalary); + assertEquals(expectedSetSalary, employee.getSalary()); + } + + @Test + public void testGetDetails() { + String actualDetails = employee.getDetails(); + String expectedDetails = "id: 7 name: Nile department: SWE salary: 65000.0"; + assertEquals(expectedDetails, actualDetails); + } +} 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..65344fb36 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java @@ -0,0 +1,79 @@ +package com.codedifferently.lesson15; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class EmployeeManagerTest { + private EmployeeManager employeeManager; + private Map employees; + private Employee employee1; + private Employee employee2; + + @BeforeEach + public void setup() { + employees = new HashMap<>(); + employee1 = new Employee(1, "Nile", "SWE", 65000.00); + employee2 = new Employee(2, "Chino", "Marketing", 70000.00); + + employeeManager = new EmployeeManager(); + employeeManager.setEmployees(employees); + employeeManager.addEmployee(employee1); + employeeManager.addEmployee(employee2); + } + + @Test + public void testEmployeeManagement() {} + + @Test + public void addEmployee() { + assertThat(employees).hasSize(2); + } + + @Test + public void getEmployee() { + Employee retrievedEmployee = employeeManager.getEmployee(2); + assertThat(retrievedEmployee.getName()).isEqualTo("Chino"); + } + + @Test + public void updateEmployee() { + employee1.setSalary(70000.00); + employeeManager.updateEmployee(employee1); + + Employee updatedEmployee = employeeManager.getEmployee(1); + assertThat(updatedEmployee.getSalary()).isEqualTo(70000.00); + } + + @Test + public void getEmployeeCount() { + int count = employeeManager.getEmployeeCount(); + assertEquals(2, count); + } + + @Test + public void getEmployees() { + Map employeeMap = employeeManager.getEmployees(); + assertThat(employeeMap.size()).isEqualTo(2); + } + + @Test + public void setEmployees() { + Map newEmployees = new HashMap<>(); + newEmployees.put(3, new Employee(3, "Charlie", "HR", 75000.00)); + employeeManager.setEmployees(newEmployees); + + assertThat(employeeManager.getEmployees().size()).isEqualTo(1); + } + + @Test + public void testGetDetails() { + String actualDetails = employee1.getDetails(); + String expectedDetails = "id: 1 name: Nile department: SWE salary: 65000.0"; + assertEquals(expectedDetails, actualDetails); + } +}