Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.smart.notes.smart_notes;
- import com.smart.notes.smart_notes.configuration.security.TokenBuilder;
- import com.smart.notes.smart_notes.entity.user.UserDTO;
- import com.smart.notes.smart_notes.entity.user.UserModel;
- import com.smart.notes.smart_notes.entity.user.properities.EmailDTO;
- import com.smart.notes.smart_notes.service.user.UserServiceImpl;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
- import org.springframework.boot.test.context.SpringBootTest;
- import org.springframework.boot.test.mock.mockito.MockBean;
- import org.springframework.http.MediaType;
- import org.springframework.security.core.userdetails.UserDetails;
- import org.springframework.test.context.junit4.SpringRunner;
- import org.springframework.test.web.servlet.MockMvc;
- import java.util.Arrays;
- import java.util.List;
- import java.util.stream.Collectors;
- import static org.hamcrest.core.Is.is;
- import static org.mockito.Mockito.*;
- import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
- import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
- import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
- @RunWith(SpringRunner.class)
- @AutoConfigureMockMvc
- @SpringBootTest
- public class UserServiceTest {
- @Autowired
- private MockMvc mvc;
- @MockBean
- private UserServiceImpl userServiceImpl;
- private final String TOKEN = TokenBuilder.createToken("mahumba", 10000);
- @Test
- public void testFindUserByIdAndExpectOk() throws Exception {
- UserDTO userDTO = UserDTO.convertUserModelToUserDTO(getUsersList().get(0));
- when(userServiceImpl.findUserById("id")).thenReturn(userDTO);
- mvc.perform(get("/users/{id}", "id").header("Authorization", TOKEN))
- .andExpect(status().isOk())
- .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
- .andExpect(jsonPath("$.email", is(userDTO.getEmail())));
- verify(userServiceImpl, times(1)).findUserById("id");
- verifyNoMoreInteractions(userServiceImpl);
- }
- @Test
- public void testFindAllUsers() throws Exception {
- when(userServiceImpl.findAllUsers())
- .thenReturn(getUsersList()
- .stream()
- .map(userModel -> UserDTO.convertUserModelToUserDTO(userModel))
- .collect(Collectors.toList()));
- mvc.perform(get("/users").header("Authorization", TOKEN))
- .andExpect(status().isOk())
- .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE));
- verify(userServiceImpl, times(1)).findAllUsers();
- verifyNoMoreInteractions(userServiceImpl);
- }
- @Test
- public void testFindUserIdByEmail() throws Exception {
- EmailDTO emailDTO = new EmailDTO();
- emailDTO.setEmail(getUsersList().get(0).getEmail());
- when(userServiceImpl.findUserIdByEmail(emailDTO)).thenReturn("id");
- mvc.perform(get("/users/id").header("Authorization", TOKEN))
- .andExpect(status().isOk());
- }
- @Test
- public void testAddUser() throws Exception {
- UserDTO userDTO = new UserDTO();
- userDTO.setEmail("test@mail.com");
- userDTO.setPassword("password");
- mvc.perform(post("/registration")
- .contentType(MediaType.APPLICATION_JSON_UTF8_VALUE).content(ConvertJavaObjectToJson.asJsonString(userDTO)))
- .andExpect(status().isOk());
- verify(userServiceImpl, times(1)).addUser(userDTO);
- verifyNoMoreInteractions(userServiceImpl);
- }
- public List<UserModel> getUsersList() {
- List<UserModel> userList = Arrays.asList(
- UserDTO.convertUserDTOToUser(new UserDTO("jankowalski@mail.com", "password")),
- UserDTO.convertUserDTOToUser(new UserDTO("jannowak@mail.com", "password"))
- );
- return userList;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement