Skip to content
Open
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,4 @@
</plugins>
</build>

</project>
</project>
4 changes: 0 additions & 4 deletions src/main/java/org/unilab/uniplan/major/MajorMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import java.util.List;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingTarget;
import org.unilab.uniplan.course.CourseMapper;
import org.unilab.uniplan.major.dto.MajorCoursesDto;
import org.unilab.uniplan.major.dto.MajorCoursesResponseDto;
Expand All @@ -23,9 +22,6 @@ public interface MajorMapper {
@Mapping(source = "faculty.id", target = "facultyId")
MajorCoursesDto toFullDto(Major major);

@Mapping(source = "facultyId", target = "faculty.id")
void updateEntityFromDto(MajorDto majorDto, @MappingTarget Major major);

@Mapping(target = "id", ignore = true)
MajorDto toInnerDto(MajorRequestDto requestDto);

Expand Down
7 changes: 5 additions & 2 deletions src/main/java/org/unilab/uniplan/major/MajorService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.unilab.uniplan.major;

import org.unilab.uniplan.faculty.Faculty;
import org.unilab.uniplan.major.dto.MajorCoursesDto;

import static org.unilab.uniplan.utils.ErrorConstants.MAJOR_NOT_FOUND;

import jakarta.transaction.Transactional;
Expand Down Expand Up @@ -77,7 +77,10 @@ public void deleteMajor(final UUID id) {

private MajorDto updateEntityAndConvertToDto(final MajorDto dto,
final Major entity) {
majorMapper.updateEntityFromDto(dto, entity);
Faculty faculty = new Faculty();
faculty.setId(dto.facultyId());
entity.setFaculty(faculty);
entity.setMajorName(dto.majorName());
return saveEntityAndConvertToDto(entity);
}

Expand Down
15 changes: 13 additions & 2 deletions src/test/java/org/unilab/uniplan/major/MajorServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
Expand All @@ -20,6 +19,7 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.unilab.uniplan.exception.ResourceNotFoundException;
import org.unilab.uniplan.faculty.Faculty;
import org.unilab.uniplan.major.dto.MajorCoursesDto;
import org.unilab.uniplan.major.dto.MajorDto;

Expand All @@ -38,6 +38,7 @@ class MajorServiceTest {
private MajorCoursesDto majorCoursesDto;
private MajorDto majorDTO;
private Major major;
private Faculty faculty;
private UUID majorId;
private UUID facultyId;

Expand All @@ -48,6 +49,8 @@ void setUp() {
majorCoursesDto = new MajorCoursesDto(majorId, facultyId, "Informatics", List.of());
majorDTO = new MajorDto(majorId, facultyId, "Informatics");
major = new Major();
faculty = new Faculty();
faculty.setId(facultyId);
}

@Test
Expand Down Expand Up @@ -166,7 +169,6 @@ void findAllShouldReturnListOfMajorDTOs() {
@Test
void updateMajorShouldReturnUpdatedMajorDTOIfFound() {
when(majorRepository.findById(majorId)).thenReturn(Optional.of(major));
doNothing().when(majorMapper).updateEntityFromDto(majorDTO, major);
when(majorRepository.save(major)).thenReturn(major);
when(majorMapper.toDto(major)).thenReturn(majorDTO);

Expand All @@ -176,6 +178,15 @@ void updateMajorShouldReturnUpdatedMajorDTOIfFound() {
verify(majorRepository).save(major);
}

@Test
void updateMajorShouldThrowResourceNotFoundExceptionIfFacultyNotFound() {
when(majorRepository.findById(majorId)).thenReturn(Optional.empty());

assertThrows(ResourceNotFoundException.class, () -> majorService.updateMajor(majorId, majorDTO));

verify(majorRepository, never()).save(any());
}

@Test
void updateMajorShouldReturnEmptyIfNotFound() {
when(majorRepository.findById(majorId)).thenReturn(Optional.empty());
Expand Down
Loading