login test code
This commit is contained in:
@@ -1,15 +1,16 @@
|
|||||||
package com.example.oneul.service;
|
package com.example.oneul.service;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
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.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.BDDMockito.given;
|
import static org.mockito.BDDMockito.given;
|
||||||
|
|
||||||
import java.util.Optional;
|
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.Test;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.mockito.InjectMocks;
|
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
import org.springframework.mock.web.MockHttpSession;
|
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.dao.UserRepository;
|
||||||
import com.example.oneul.domain.user.domain.UserEntity;
|
import com.example.oneul.domain.user.domain.UserEntity;
|
||||||
import com.example.oneul.domain.user.dto.LoginDTO;
|
import com.example.oneul.domain.user.dto.LoginDTO;
|
||||||
|
import com.example.oneul.domain.user.service.UserService;
|
||||||
import com.example.oneul.domain.user.service.UserServiceImpl;
|
import com.example.oneul.domain.user.service.UserServiceImpl;
|
||||||
|
|
||||||
@ActiveProfiles("test")
|
@ActiveProfiles("test")
|
||||||
@ExtendWith(MockitoExtension.class)
|
@ExtendWith(MockitoExtension.class)
|
||||||
public class UserServiceTest {
|
public class UserServiceTest {
|
||||||
// private UserService userService;
|
private UserService userService;
|
||||||
@InjectMocks
|
|
||||||
private UserServiceImpl userService;
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
@Mock
|
@Mock
|
||||||
private PasswordEncoder passwordEncoder;
|
private PasswordEncoder passwordEncoder;
|
||||||
|
|
||||||
protected MockHttpSession httpSession;
|
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
|
@BeforeEach
|
||||||
public void setUp() {
|
public void setUp() throws Exception {
|
||||||
userService = new UserServiceImpl(userRepository, passwordEncoder);
|
userService = new UserServiceImpl(userRepository, passwordEncoder);
|
||||||
|
httpSession = new MockHttpSession();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -71,7 +63,35 @@ public class UserServiceTest {
|
|||||||
assertEquals(user.getUsername(),userFoundById.getUsername());
|
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() {
|
private LoginDTO createLoginDTO() {
|
||||||
return new LoginDTO("zzzinho", "password");
|
return new LoginDTO("zzzinho", "password");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private UserEntity mockUser(Long id){
|
||||||
|
return UserEntity.builder().id(id)
|
||||||
|
.username("zzzinho")
|
||||||
|
.password(passwordEncoder.encode("password"))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user