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..54f978190 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,15 @@ public double getSalary() { public void setSalary(double salary) { this.salary = salary; } + + public String getDetails() { + return "Employee: " + + name + + ", Department: " + + department + + " , ID: " + + id + + " , Salary: " + + (int) 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..cd214b9a1 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeManagerTest.java @@ -0,0 +1,89 @@ +package com.codedifferently.lesson15; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class EmployeeManagerTest { + private EmployeeManager employeeManager; + + @BeforeEach + public void setUp() { + employeeManager = new EmployeeManager(); + } + + @Test + void testAddEmployee() { + // Arrange + Employee employee = new Employee(1, "John Doe", null, 0); + + // Act + employeeManager.addEmployee(employee); + + // Assert + assertEquals(1, employeeManager.getEmployeeCount()); + } + + @Test + void testUpdateEmployee() { + // Arrange + Employee employee = new Employee(1, "John Doe", null, 0); + Employee updatedEmployee = new Employee(1, "Jane Doe", null, 0); + + // Act + employeeManager.addEmployee(employee); + employeeManager.updateEmployee(updatedEmployee); + + // Assert + Employee retrievedEmployee = employeeManager.getEmployee(1); + assertEquals(updatedEmployee.getName(), retrievedEmployee.getName()); + } + + @Test + void testGetEmployee() { + // Arrange + Employee employee = new Employee(1, "John Doe", null, 0); + + // Act + employeeManager.addEmployee(employee); + Employee retrievedEmployee = employeeManager.getEmployee(1); + + // Assert + assertEquals(employee.getId(), retrievedEmployee.getId()); + assertEquals(employee.getName(), retrievedEmployee.getName()); + } + + @Test + void testRemoveEmployee() { + + Employee employee = new Employee(1, "John Doe", null, 0); + + employeeManager.addEmployee(employee); + assertEquals(1, employeeManager.getEmployeeCount()); + + employeeManager.removeEmployee(1); + assertEquals(0, employeeManager.getEmployeeCount()); + } + + @Test + void testGetEmployeeCount() { + + assertEquals(0, employeeManager.getEmployeeCount()); + + employeeManager.addEmployee(new Employee(1, "John Doe", null, 0)); + employeeManager.addEmployee(new Employee(2, "Jane Doe", null, 0)); + + assertEquals(2, employeeManager.getEmployeeCount()); + } + + @Test + void testGetEmployeeThrowsExceptionForNonExistentId() { + assertThrows( + IllegalArgumentException.class, + () -> { + employeeManager.getEmployee(999); + }); + } +} 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..569c5e9d0 --- /dev/null +++ b/lesson_15/tdd/tdd_app/src/test/java/com/codedifferently/lesson15/EmployeeTest.java @@ -0,0 +1,120 @@ +package com.codedifferently.lesson15; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +public class EmployeeTest { + @Test + void testGetDepartment() { + // Arrange + Employee employee = new Employee(12345, "John Doe", "Engineering", 75000); + + // Act + String actualDepartment = employee.getDepartment(); + + // Assert + String expectedDepartment = "Engineering"; + assertEquals(expectedDepartment, actualDepartment); + } + + @Test + void testGetDetails() { + // Arrange + Employee employee = new Employee(12345, "John Doe", "Engineering", 75000); + + // Act + String actualDetails = employee.getDetails(); + + // Assert + String expectedDetails = + "Employee: John Doe, Department: Engineering , ID: 12345 , Salary: 75000"; + assertEquals(expectedDetails, actualDetails); + } + + @Test + void testGetId() { + // Arrange + Employee employee = new Employee(12345, "John Doe", "Engineering", 75000); + + // Act + int actualEmployeeID = employee.getId(); + + // Assert + int expectedEmployeeID = 12345; + assertEquals(expectedEmployeeID, actualEmployeeID); + } + + @Test + void testGetName() { + // Arrange + Employee employee = new Employee(12345, "John Doe", "Engineering", 75000); + + // Act + employee.getName(); + + // Assert + assertEquals("John Doe", employee.getName()); + } + + @Test + void testGetSalary() { + // Arrange + Employee employee = new Employee(12345, "John Doe", "Engineering", 75000); + + // Act + double expectedSalary = employee.getSalary(); + + // Assert + double actualSalary = 75000; + assertEquals(expectedSalary, actualSalary); + } + + @Test + void testSetDepartment() { + // Arrange + Employee employee = new Employee(12345, "John Doe", "", 75000); + + // Act + employee.setDepartment("Engineering"); + + // Assert + assertEquals("Engineering", employee.getDepartment()); + } + + @Test + void testSetId() { + // Arrange + Employee employee = new Employee(0, "John Doe", "", 75000); + + // Act + employee.setId(12345); + + // Assert + assertEquals(12345, employee.getId()); + } + + @Test + void testSetName() { + // Arrange + Employee employee = new Employee(12345, "", "Engineering", 75000); + + // Act + employee.setName("Alice Johnson"); + + // Assert + assertEquals("Alice Johnson", employee.getName()); + } + + @Test + void testSetSalary() { + // Arrange + Employee employee = new Employee(12345, "", "Engineering", 0); + + // Act + employee.setSalary(75000); + + // Assert + assertEquals(75000, employee.getSalary()); + } +}