From 059e1ba0215bc94babe65d9e7a123a450624ddd6 Mon Sep 17 00:00:00 2001 From: jinho jeong Date: Sun, 10 Jul 2022 15:42:13 +0900 Subject: [PATCH] login test code --- .../oneul/service/UserServiceTest.java | 52 +++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/src/test/java/com/example/oneul/service/UserServiceTest.java b/src/test/java/com/example/oneul/service/UserServiceTest.java index 00e653f..b9b599d 100644 --- a/src/test/java/com/example/oneul/service/UserServiceTest.java +++ b/src/test/java/com/example/oneul/service/UserServiceTest.java @@ -1,15 +1,16 @@ package com.example.oneul.service; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; import java.util.Optional; -import org.junit.Before; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.mock.web.MockHttpSession; @@ -20,33 +21,24 @@ import org.springframework.test.util.ReflectionTestUtils; import com.example.oneul.domain.user.dao.UserRepository; import com.example.oneul.domain.user.domain.UserEntity; import com.example.oneul.domain.user.dto.LoginDTO; +import com.example.oneul.domain.user.service.UserService; import com.example.oneul.domain.user.service.UserServiceImpl; @ActiveProfiles("test") @ExtendWith(MockitoExtension.class) public class UserServiceTest { - // private UserService userService; - @InjectMocks - private UserServiceImpl userService; + private UserService userService; @Mock private UserRepository userRepository; @Mock private PasswordEncoder passwordEncoder; protected MockHttpSession httpSession; - - // static { - // GenericContainer redis = new GenericContainer("redis:3-alpine") - // .withExposedPorts(6379); - // redis.start(); - - // System.setProperty("spring.redis.host", redis.getContainerIpAddress()); - // System.setProperty("spring.redis.port", redis.getFirstMappedPort() + ""); - // } - @Before - public void setUp() { + @BeforeEach + public void setUp() throws Exception { userService = new UserServiceImpl(userRepository, passwordEncoder); + httpSession = new MockHttpSession(); } @Test @@ -71,7 +63,35 @@ public class UserServiceTest { assertEquals(user.getUsername(),userFoundById.getUsername()); } + @Test + public void loginTest() throws Exception { + // given + LoginDTO loginDTO = createLoginDTO(); + UserEntity loginUser = loginDTO.toEntity(); + + // mocking + Long mockUserId = 1L; + UserEntity userEntity = mockUser(mockUserId); + given(userRepository.findByUsername(loginUser.getUsername())).willReturn(Optional.ofNullable(userEntity)); + given(passwordEncoder.matches(any(), eq(userEntity.getPassword()))).willReturn(true); + + // when + UserEntity user = userService.login(userEntity, httpSession); + + // then + assertNotEquals(httpSession.getAttribute("user"), null); + assertEquals((UserEntity)httpSession.getAttribute("user"), user); + } + + private LoginDTO createLoginDTO() { return new LoginDTO("zzzinho", "password"); } + + private UserEntity mockUser(Long id){ + return UserEntity.builder().id(id) + .username("zzzinho") + .password(passwordEncoder.encode("password")) + .build(); + } }