/
klsfv
/
CalorieTracker
Обзор
Документация
Войти
/
klsfv
/
CalorieTracker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/src/test/java/com/calorietracker/controller/AuthControllerTest.java
114 строк
4 KB
klsfv
upload files
15 янв 2026, 03:19
15 янв 2026, 03:19
09dece5
Код
Авторство
О чём код?
package com.calorietracker.controller; import com.calorietracker.dto.AuthResponse; import com.calorietracker.dto.LoginRequest; import com.calorietracker.dto.RegisterRequest; import com.calorietracker.dto.UserDto; import com.calorietracker.service.AuthService; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import java.time.LocalDateTime; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @WebMvcTest(AuthController.class) class AuthControllerTest { @Autowired private MockMvc mockMvc; @MockBean private AuthService authService; @Autowired private ObjectMapper objectMapper; private RegisterRequest registerRequest; private LoginRequest loginRequest; private AuthResponse authResponse; private UserDto userDto; @BeforeEach void setUp() { userDto = new UserDto(); userDto.setId("user-123"); userDto.setEmail("test@example.com"); userDto.setName("Test User"); userDto.setCreatedAt(LocalDateTime.now()); authResponse = new AuthResponse(); authResponse.setToken("accessToken"); authResponse.setRefreshToken("refreshToken"); authResponse.setUser(userDto); registerRequest = new RegisterRequest(); registerRequest.setEmail("newuser@example.com"); registerRequest.setPassword("password123"); registerRequest.setName("New User"); loginRequest = new LoginRequest(); loginRequest.setEmail("test@example.com"); loginRequest.setPassword("password123"); } @Test void testRegister_Success() throws Exception { // Arrange when(authService.register(any(RegisterRequest.class))).thenReturn(authResponse); // Act & Assert mockMvc.perform(post("/api/v1/auth/register") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(registerRequest))) .andExpect(status().isCreated()) .andExpect(jsonPath("$.token").value("accessToken")) .andExpect(jsonPath("$.refreshToken").value("refreshToken")) .andExpect(jsonPath("$.user.email").value("test@example.com")); } @Test void testLogin_Success() throws Exception { // Arrange when(authService.login(any(LoginRequest.class))).thenReturn(authResponse); // Act & Assert mockMvc.perform(post("/api/v1/auth/login") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(loginRequest))) .andExpect(status().isOk()) .andExpect(jsonPath("$.token").value("accessToken")) .andExpect(jsonPath("$.refreshToken").value("refreshToken")) .andExpect(jsonPath("$.user.email").value("test@example.com")); } @Test void testRefreshToken_Success() throws Exception { // Arrange when(authService.refreshToken(anyString())).thenReturn(authResponse); // Act & Assert mockMvc.perform(post("/api/v1/auth/refresh") .contentType(MediaType.APPLICATION_JSON) .content("{\"refreshToken\":\"refreshToken\"}")) .andExpect(status().isOk()) .andExpect(jsonPath("$.token").value("accessToken")); } @Test void testLogout_Success() throws Exception { // Act & Assert mockMvc.perform(post("/api/v1/auth/logout")) .andExpect(status().isOk()); } }