diff --git a/patterns-modules/clean-architecture/src/test/java/com/baeldung/pattern/cleanarchitecture/usercreation/UserResponseFormatterUnitTest.java b/patterns-modules/clean-architecture/src/test/java/com/baeldung/pattern/cleanarchitecture/usercreation/UserResponseFormatterUnitTest.java index e394cbbf94..1c37766185 100644 --- a/patterns-modules/clean-architecture/src/test/java/com/baeldung/pattern/cleanarchitecture/usercreation/UserResponseFormatterUnitTest.java +++ b/patterns-modules/clean-architecture/src/test/java/com/baeldung/pattern/cleanarchitecture/usercreation/UserResponseFormatterUnitTest.java @@ -2,16 +2,25 @@ package com.baeldung.pattern.cleanarchitecture.usercreation; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; +import static org.mockito.Mockito.verify; + +import org.mockito.ArgumentCaptor; import org.junit.jupiter.api.Test; import org.springframework.web.server.ResponseStatusException; -import com.baeldung.pattern.cleanarchitecture.usercreation.UserResponseFormatter; -import com.baeldung.pattern.cleanarchitecture.usercreation.UserResponseModel; - class UserResponseFormatterUnitTest { UserResponseFormatter userResponseFormatter = new UserResponseFormatter(); + UserRegisterDsGateway userDsGateway = mock(UserRegisterDsGateway.class); + UserPresenter userPresenter = mock(UserPresenter.class); + UserFactory userFactory = mock(UserFactory.class); + UserInputBoundary userInputBoundary = new UserRegisterInteractor(userDsGateway, userPresenter, userFactory); + ArgumentCaptor userRequestModelArgumentCaptor = ArgumentCaptor.forClass(String.class); @Test void givenDateAnd3HourTime_whenPrepareSuccessView_thenReturnOnly3HourTime() { @@ -23,7 +32,19 @@ class UserResponseFormatterUnitTest { @Test void whenPrepareFailView_thenThrowHttpConflictException() { - assertThatThrownBy(() -> userResponseFormatter.prepareFailView("Invalid password")) - .isInstanceOf(ResponseStatusException.class); + assertThatThrownBy(() -> userResponseFormatter.prepareFailView("Invalid password")).isInstanceOf(ResponseStatusException.class); } -} + + @Test + void whenCreateUser_thenSuccess() { + + UserRequestModel userRequestModel = new UserRequestModel("baeldung", "123456"); + when(userFactory.create(anyString(), anyString())).thenReturn(new CommonUser("baeldung", "123456")); + + userInputBoundary.create(userRequestModel); + + verify(userDsGateway).existsByName(userRequestModelArgumentCaptor.capture()); + String name = userRequestModel.getName(); + assertEquals("baeldung", name); + } +} \ No newline at end of file