/
dmuruz
/
Course_Service
Обзор
Документация
Войти
/
dmuruz
/
Course_Service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
src/test/java/org/example/controller/UserProgressControllerTest.java
61 строка
2 KB
Danil Muruz
MVP
24 апр 2025, 09:39
24 апр 2025, 09:39
16b1c45
Код
Авторство
О чём код?
package org.example.controller; import org.example.config.DisableSecurityConfig; import org.example.manager.UserProgressManager; import org.example.model.LessonStatus; import org.example.model.UserLesson; 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.context.annotation.Import; import org.springframework.test.web.servlet.MockMvc; import org.junit.jupiter.api.Test; import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @WebMvcTest(UserProgressController.class) @Import(DisableSecurityConfig.class) class UserProgressControllerTest { @Autowired private MockMvc mvc; @MockBean private UserProgressManager userProgressManager; @Test void resumeCourse() throws Exception { UserLesson ul = new UserLesson(); ul.setId(20L); when(userProgressManager.resumeCourse(1L,1L)).thenReturn(ul); mvc.perform(post("/user-progress/resume?userId=1&courseId=1")) .andExpect(status().isOk()) .andExpect(jsonPath("$.id").value(20)); } @Test void updateUserLesson() throws Exception { // Подготовка: возвращаем UserLesson с id = 30 UserLesson updated = new UserLesson(); updated.setId(30L); // Мокаем вызов менеджера с новыми параметрами: userId = 1, lessonId = 2 when(userProgressManager.updateUserLessonStatus( eq(1L), eq(2L), eq(LessonStatus.IN_PROGRESS), eq(5) )).thenReturn(updated); // Выполняем PUT-запрос на /user-progress с нужными параметрами mvc.perform(put("/user-progress") .param("userId", "1") .param("lessonId", "2") .param("status", "IN_PROGRESS") .param("completedSteps", "5") ) .andExpect(status().isOk()) .andExpect(jsonPath("$.id").value(30)); } }