diff --git a/second-part/hw-03/user-service/src/test/java/com/example/UserServiceTest.java b/second-part/hw-03/user-service/src/test/java/com/example/UserServiceTest.java new file mode 100644 index 0000000..25fe427 --- /dev/null +++ b/second-part/hw-03/user-service/src/test/java/com/example/UserServiceTest.java @@ -0,0 +1,72 @@ +package com.example; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class UserServiceTest { + + @Mock private UserDao userDao; + + private UserService userService; + + @BeforeEach + void setUp() { + userService = new UserService(userDao); + } + + @Test + void createDelegatesToDao() { + User user = new User("User", "user@example.com", 30); + when(userDao.create(user)).thenReturn(user); + + User result = userService.create(user); + + assertSame(user, result); + verify(userDao).create(user); + verifyNoMoreInteractions(userDao); + } + + @Test + void findByIdDelegatesToDao() { + Long id = 1L; + User user = new User("User", "user@example.com", 30); + when(userDao.findById(id)).thenReturn(user); + + User result = userService.findById(id); + + assertSame(user, result); + verify(userDao).findById(id); + verifyNoMoreInteractions(userDao); + } + + @Test + void updateDelegatesToDao() { + User user = new User("User", "user@example.com", 30); + when(userDao.update(user)).thenReturn(user); + + User result = userService.update(user); + + assertSame(user, result); + verify(userDao).update(user); + verifyNoMoreInteractions(userDao); + } + + @Test + void deleteByIdDelegatesToDao() { + Long id = 1L; + + userService.deleteById(id); + + verify(userDao).deleteById(id); + verifyNoMoreInteractions(userDao); + } +}