Skip to content
Snippets Groups Projects
Commit 65c41f1b authored by Cédric Willekens's avatar Cédric Willekens
Browse files

Add tests for course service

parent 95d3b263
No related branches found
No related tags found
2 merge requests!249Version 1.5.0,!239Add query endpoints for courses
......@@ -20,6 +20,7 @@ package nl.tudelft.labracore.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -107,8 +108,8 @@ public class CourseService {
public long setupCourse(CourseWithManagerCreateDTO dto) {
courseRepository.findCourseByCode(dto.getCode()).ifPresentOrElse(c -> {
var managers = List.of(dto.getManager(), mapper.map(c.getManagers(),
PersonIdDTO.class));
var managers = Stream.concat(c.getManagers().stream().map(m -> new PersonIdDTO(m.getId())),
Stream.of(dto.getManager())).toList();
CoursePatchDTO patch = CoursePatchDTO.builder().managers(managers).build();
converter.apply(patch, cr.findByIdOrThrow(c.getId()));
}, () -> {
......
......
......@@ -19,16 +19,24 @@ package nl.tudelft.labracore.service;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.data.rest.webmvc.ResourceNotFoundException;
import org.springframework.transaction.annotation.Transactional;
import nl.tudelft.labracore.TestLabracoreApplication;
import nl.tudelft.labracore.dto.create.CourseWithManagerCreateDTO;
import nl.tudelft.labracore.dto.id.PersonIdDTO;
import nl.tudelft.labracore.dto.id.ProgramIdDTO;
import nl.tudelft.labracore.dto.view.structured.details.CourseDetailsDTO;
import nl.tudelft.labracore.dto.view.structured.summary.CourseSummaryDTO;
import nl.tudelft.labracore.model.Course;
import nl.tudelft.labracore.repository.CourseRepository;
import nl.tudelft.labracore.repository.ProgramRepository;
import nl.tudelft.labracore.test.TestDatabaseLoader;
......@@ -44,13 +52,13 @@ public class CourseServiceTest {
@Autowired
private CourseService cs;
@Autowired
@SpyBean
private CourseRepository cr;
@Autowired
private ProgramRepository pr;
@Autowired
@SpyBean
private DTOConverter converter;
@Test
......@@ -93,4 +101,30 @@ public class CourseServiceTest {
assertThrows(ResourceNotFoundException.class, () -> cs.getCoursesByManager(-1L));
}
@Test
public void getCourseByCourseCodeNotExisting() {
assertThrows(ResourceNotFoundException.class, () -> cs.getCourseByCourseCode("UNKOWN"));
}
@Test
public void getCourseByCourseCodeExisting() {
assertThat(cs.getCourseByCourseCode("WwT")).isExactlyInstanceOf(CourseSummaryDTO.class);
}
@Test
public void setupCourseNotExists() {
var dto = new CourseWithManagerCreateDTO("course", "CSE1", new ProgramIdDTO(1L),
new PersonIdDTO(1L));
cs.setupCourse(dto);
verify(cr, times(1)).save(any());
}
@Test
public void setupCourseExists() {
var dto = new CourseWithManagerCreateDTO("course", "WwT", new ProgramIdDTO(1L),
new PersonIdDTO(1L));
cs.setupCourse(dto);
verify(converter, times(1)).apply(any(), any());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment