From 20a246899df620962968ee85d3d4b8520b554012 Mon Sep 17 00:00:00 2001 From: gungor Date: Tue, 4 May 2021 16:15:44 +0300 Subject: [PATCH] Cycle 6: RED, Service: save employee --- .../repository/EmployeeRepository.java | 9 ++++ .../service/EmployeeServiceTest.java | 42 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/main/java/tddexample/repository/EmployeeRepository.java create mode 100644 src/test/java/tddexample/service/EmployeeServiceTest.java diff --git a/src/main/java/tddexample/repository/EmployeeRepository.java b/src/main/java/tddexample/repository/EmployeeRepository.java new file mode 100644 index 0000000..e5eaa8b --- /dev/null +++ b/src/main/java/tddexample/repository/EmployeeRepository.java @@ -0,0 +1,9 @@ +package tddexample.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import tddexample.model.entity.Employee; + +public interface EmployeeRepository extends JpaRepository { + + +} diff --git a/src/test/java/tddexample/service/EmployeeServiceTest.java b/src/test/java/tddexample/service/EmployeeServiceTest.java new file mode 100644 index 0000000..b8d0be1 --- /dev/null +++ b/src/test/java/tddexample/service/EmployeeServiceTest.java @@ -0,0 +1,42 @@ +package tddexample.service; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import tddexample.model.entity.Employee; +import tddexample.model.rest.EmployeeSaveRequest; +import tddexample.repository.EmployeeRepository; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; + +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) +@ExtendWith(SpringExtension.class) +@SpringBootTest +public class EmployeeServiceTest { + + @Autowired + private EmployeeService employeeService; + + @MockBean + private EmployeeRepository employeeRepository; + + @Test + public void shouldSaveEmployee(){ + Employee employee = new Employee(20, "Frodo Baggins"); + when(employeeRepository.save(new Employee(null, "Frodo Baggins"))) + .thenReturn(employee); + + EmployeeSaveRequest request = new EmployeeSaveRequest("Frodo Baggins"); + Employee savedEmployee = employeeService.saveEmployee(request); + + verify(employeeRepository,times(1)).save(any(Employee.class)); + Assertions.assertEquals(employee,savedEmployee); + } + +}