/
dmuruz
/
Course_Service
Обзор
Документация
Войти
/
dmuruz
/
Course_Service
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
src/test/java/org/example/manager/CourseManagerTest.java
105 строк
3 KB
Danil Muruz
MVP
24 апр 2025, 09:39
24 апр 2025, 09:39
16b1c45
Код
Авторство
О чём код?
package org.example.manager; import org.example.dao.CourseRepository; import org.example.dao.LessonRepository; import org.example.dto.CourseDTO; import org.example.model.Course; import org.example.model.Lesson; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; class CourseManagerTest { @Mock private CourseRepository courseRepository; @Mock private LessonRepository lessonRepository; @InjectMocks private CourseManager courseManager; private Course course; @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); course = new Course(); course.setId(1L); course.setName("Test Course"); course.setDescription("Desc"); course.setOrderNum(2); } @Test void createCourse_ShouldReturnSavedCourse() { CourseDTO dto = new CourseDTO(); dto.setName("Test"); dto.setDescription("Desc"); dto.setOrderNum(1); when(courseRepository.save(any(Course.class))).thenAnswer(i -> { Course c = i.getArgument(0); c.setId(5L); return c; }); Course saved = courseManager.createCourse(dto); assertNotNull(saved.getId()); assertEquals("Test", saved.getName()); verify(courseRepository).save(any(Course.class)); } @Test void getAllCourses_ShouldReturnList() { when(courseRepository.findAll()).thenReturn(List.of(course)); List<Course> list = courseManager.getAllCourses(); assertEquals(1, list.size()); assertEquals(course, list.get(0)); } @Test void getCourseById_Found() { when(courseRepository.findById(1L)).thenReturn(Optional.of(course)); Optional<Course> found = courseManager.getCourseById(1L); assertTrue(found.isPresent()); assertEquals(course, found.get()); } @Test void updateCourse_ShouldSaveUpdated() { CourseDTO dto = new CourseDTO(); dto.setName("New"); dto.setDescription("NewDesc"); dto.setOrderNum(3); when(courseRepository.findById(1L)).thenReturn(Optional.of(course)); when(courseRepository.save(course)).thenReturn(course); Course updated = courseManager.updateCourse(1L, dto); assertEquals("New", updated.getName()); assertEquals(3, updated.getOrderNum()); } @Test void deleteCourse_ShouldInvokeRepo() { doNothing().when(courseRepository).deleteById(1L); courseManager.deleteCourse(1L); verify(courseRepository).deleteById(1L); } @Test void getLessonsByCourseId_ShouldReturnLessons() { Lesson lesson = new Lesson(); when(courseRepository.findById(1L)).thenReturn(Optional.of(course)); when(lessonRepository.findByCourse(course)).thenReturn(List.of(lesson)); List<Lesson> lessons = courseManager.getLessonsByCourseId(1L); assertEquals(1, lessons.size()); assertEquals(lesson, lessons.get(0)); } }