From 712d28f8698d326a938ac44ce2f99836bd1b8b80 Mon Sep 17 00:00:00 2001 From: rayankonecny Date: Fri, 12 Dec 2025 23:22:14 +0000 Subject: [PATCH] add test to find by id with sucesses user service --- .../wrapper/plugins/dependencies.gradle | 4 ++ .../service/UserServiceTest.java | 54 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 user-service-api/src/test/java/br/com/rayankonecny/userserviceapi/service/UserServiceTest.java diff --git a/user-service-api/gradle/wrapper/plugins/dependencies.gradle b/user-service-api/gradle/wrapper/plugins/dependencies.gradle index 1dbf34e..52b15fc 100644 --- a/user-service-api/gradle/wrapper/plugins/dependencies.gradle +++ b/user-service-api/gradle/wrapper/plugins/dependencies.gradle @@ -36,6 +36,10 @@ dependencies { // Testing dependencies testImplementation 'org.springframework.boot:spring-boot-starter-test' + + // Mockito for mocking in tests + testImplementation 'org.mockito:mockito-core:5.12.0' + } dependencyManagement { diff --git a/user-service-api/src/test/java/br/com/rayankonecny/userserviceapi/service/UserServiceTest.java b/user-service-api/src/test/java/br/com/rayankonecny/userserviceapi/service/UserServiceTest.java new file mode 100644 index 0000000..8b13a53 --- /dev/null +++ b/user-service-api/src/test/java/br/com/rayankonecny/userserviceapi/service/UserServiceTest.java @@ -0,0 +1,54 @@ +package br.com.rayankonecny.userserviceapi.service; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Optional; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import br.com.rayankonecny.userserviceapi.entity.User; +import br.com.rayankonecny.userserviceapi.mapper.UserMapper; +import br.com.rayankonecny.userserviceapi.repository.UserRepository; +import models.responses.UserResponse; + +import static org.mockito.Mockito.when; +import static org.mockito.Mockito.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.times; + +@SpringBootTest +public class UserServiceTest { + + @InjectMocks + private UserService service; + + @Mock + private UserRepository repository; + + @Mock + private UserMapper mapper; + + @Mock + private BCryptPasswordEncoder encoder; + + @Test + public void whenCallFindByIdWithValidIdTheReturnUserResponse() { + when(repository.findById(anyString())).thenReturn(Optional.of(new User())); + when(mapper.fromEntity(any(User.class))).thenReturn(mock(UserResponse.class)); + + final var response = service.findById("1"); + + Assertions.assertNotNull(response); + assertEquals(UserResponse.class, response.getClass()); + + verify(repository, times(1)).findById(anyString()); + verify(mapper, times(1)).fromEntity(any(User.class)); + } +}