diff --git a/src/test/kotlin/br/com/hexagonal/app/adapter/controller/UserControllerUnitUnitTest.kt b/src/test/kotlin/br/com/hexagonal/app/adapter/controller/UserControllerUnitUnitTest.kt index fd7dcfd..29b3f9b 100644 --- a/src/test/kotlin/br/com/hexagonal/app/adapter/controller/UserControllerUnitUnitTest.kt +++ b/src/test/kotlin/br/com/hexagonal/app/adapter/controller/UserControllerUnitUnitTest.kt @@ -6,12 +6,14 @@ import br.com.hexagonal.domain.ports.`interface`.UserServicePort import br.com.hexagonal.provider.UserDtoProviderTests import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.DisplayName import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.ArgumentsSource import org.mockito.Mockito.doNothing import org.mockito.Mockito.mock import org.mockito.Mockito.times import org.mockito.Mockito.verify +import org.mockito.kotlin.given import org.springframework.http.HttpStatus import org.springframework.mock.web.MockHttpServletRequest import org.springframework.web.context.request.RequestContextHolder @@ -27,6 +29,7 @@ class UserControllerUnitUnitTest : BaseUnitTest() { RequestContextHolder.setRequestAttributes(ServletRequestAttributes(request)) } + @DisplayName("Mocado - Deve salvar um usuario") @ParameterizedTest @ArgumentsSource(UserDtoProviderTests::class) fun shouldSave(userDto: UserDto) { @@ -39,9 +42,42 @@ class UserControllerUnitUnitTest : BaseUnitTest() { //THEN assertThat(HttpStatus.CREATED).isEqualTo(response.statusCode) assertThat(response.headers.location).isNotNull - assertThat("http://localhost/users/muriloalvesdev") + assertThat("http://localhost/users/$USERNAME") .isEqualTo(response.headers.location.toString()) - verify(this.userServicePort, times(1)) + verify(this.userServicePort, times(1)).save(userDto) + } + + @DisplayName("Mocado - Deve buscar um usuario") + @ParameterizedTest + @ArgumentsSource(UserDtoProviderTests::class) + fun shouldGetUser(userDto: UserDto) { + //GIVEN + given(this.userServicePort.find(USERNAME)) + .willReturn(userDto) + + //WHEN + val response = this.controller.find(USERNAME) + + //THEN + verify(this.userServicePort, times(1)).find(USERNAME) + + assertThat(userDto) + .usingRecursiveComparison() + .isEqualTo(response) + } + + @DisplayName("Mocado - Deve atualizar um usuario") + @ParameterizedTest + @ArgumentsSource(UserDtoProviderTests::class) + fun shouldUpdateUser(userDto: UserDto) { + //GIVEN + doNothing().`when`(this.userServicePort).update(userDto) + + //WHEN + this.controller.update(userDto) + + //THEN + verify(this.userServicePort, times(1)).update(userDto) } } \ No newline at end of file