From 663b546e8ecae8203455c4cb5a0bb94e8bf589f9 Mon Sep 17 00:00:00 2001 From: gattrCh Date: Tue, 25 Jun 2024 10:01:34 +0200 Subject: [PATCH] [Gepardec/mega#753] add tests for several mappers and rm unused imports --- .../mega/zep/mapper/AbsenceTimeMapper.java | 2 - .../mega/zep/mapper/ProjectEntryMapper.java | 1 - .../mega/zep/mapper/ProjectTimeMapper.java | 3 - .../mega/zep/rest/mapper/AbsenceMapper.java | 2 +- .../zep/rest/mapper/ProjectEntryMapper.java | 2 - .../mega/zep/rest/mapper/ProjectMapper.java | 2 +- .../mega/zep/rest/service/AbsenceService.java | 1 - .../service/mapper/EmployeeMapperTest.java | 3 +- .../zep/mapper/AbsenceTimeMapperTest.java | 5 ++ .../mega/zep/mapper/MapperUtilTest.java | 5 ++ .../zep/mapper/ProjectEntryMapperTest.java | 5 ++ .../zep/mapper/ProjectTimeMapperTest.java | 6 ++ .../zep/rest/mapper/AbsenceMapperTest.java | 40 +++++++++++- .../zep/rest/mapper/ActiveMapperTest.java | 33 +++++----- .../zep/rest/mapper/AttendanceMapperTest.java | 53 +++++++++++++++- .../zep/rest/mapper/EmployeeMapperTest.java | 19 +++++- .../mapper/ProjectEmployeesMapperTest.java | 63 +++++++++++++++++++ .../rest/mapper/ProjectEntryMapperTest.java | 17 +++++ .../zep/rest/mapper/ProjectMapperTest.java | 51 ++++++++++++++- .../RegularWorkingHoursMapMapperTest.java | 7 +++ 20 files changed, 286 insertions(+), 34 deletions(-) create mode 100644 src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEmployeesMapperTest.java diff --git a/src/main/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapper.java b/src/main/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapper.java index 429c9ca05..c50d3bd10 100644 --- a/src/main/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapper.java +++ b/src/main/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapper.java @@ -7,9 +7,7 @@ import java.time.LocalDate; import java.util.Comparator; import java.util.List; -import java.util.Map; import java.util.Objects; -import java.util.stream.Collectors; @ApplicationScoped public class AbsenceTimeMapper { diff --git a/src/main/java/com/gepardec/mega/zep/mapper/ProjectEntryMapper.java b/src/main/java/com/gepardec/mega/zep/mapper/ProjectEntryMapper.java index 71741dbf5..5d1c05398 100644 --- a/src/main/java/com/gepardec/mega/zep/mapper/ProjectEntryMapper.java +++ b/src/main/java/com/gepardec/mega/zep/mapper/ProjectEntryMapper.java @@ -15,7 +15,6 @@ import java.util.Comparator; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; import static com.gepardec.mega.domain.utils.DateUtils.parseDateTime; diff --git a/src/main/java/com/gepardec/mega/zep/mapper/ProjectTimeMapper.java b/src/main/java/com/gepardec/mega/zep/mapper/ProjectTimeMapper.java index 2d3d5110c..391aa3059 100644 --- a/src/main/java/com/gepardec/mega/zep/mapper/ProjectTimeMapper.java +++ b/src/main/java/com/gepardec/mega/zep/mapper/ProjectTimeMapper.java @@ -4,11 +4,8 @@ import de.provantis.zep.ProjektzeitType; import jakarta.enterprise.context.ApplicationScoped; -import java.time.LocalDate; import java.util.List; -import java.util.Map; import java.util.Objects; -import java.util.stream.Collectors; @ApplicationScoped public class ProjectTimeMapper { diff --git a/src/main/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapper.java b/src/main/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapper.java index bdb13a381..9b029917b 100644 --- a/src/main/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapper.java +++ b/src/main/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapper.java @@ -36,7 +36,7 @@ public AbsenceTime map(ZepAbsence zepAbsence) { logger.debug("Mapped ZepAbsence to AbsenceTime -- some values have been hardcoded and not fetched from the ZEP rest client"); return absenceTime; - }catch (Exception e){ + } catch (Exception e){ throw new ZepServiceException("While trying to map ZepAbsence to AbsenceTime, an error occurred", e); } diff --git a/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapper.java b/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapper.java index e746b2602..3d4dda0c7 100644 --- a/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapper.java +++ b/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapper.java @@ -6,14 +6,12 @@ import com.gepardec.mega.zep.rest.dto.ZepAttendanceDirectionOfTravel; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import java.time.LocalDateTime; import java.util.Comparator; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; @ApplicationScoped public class ProjectEntryMapper implements Mapper { diff --git a/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectMapper.java b/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectMapper.java index cffcb424e..cce6aff03 100644 --- a/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectMapper.java +++ b/src/main/java/com/gepardec/mega/zep/rest/mapper/ProjectMapper.java @@ -16,9 +16,9 @@ @ApplicationScoped public class ProjectMapper implements Mapper { - @Inject Logger logger; + public Project.Builder map(ZepProject zepProject) { if (zepProject == null) { logger.info("ZEP REST implementation -- While trying to map ZepProject to Project, ZepProject was null"); diff --git a/src/main/java/com/gepardec/mega/zep/rest/service/AbsenceService.java b/src/main/java/com/gepardec/mega/zep/rest/service/AbsenceService.java index 30a312e68..6f99f551b 100644 --- a/src/main/java/com/gepardec/mega/zep/rest/service/AbsenceService.java +++ b/src/main/java/com/gepardec/mega/zep/rest/service/AbsenceService.java @@ -12,7 +12,6 @@ import java.time.LocalDate; import java.util.List; -import java.util.stream.Collectors; @ApplicationScoped public class AbsenceService { diff --git a/src/test/java/com/gepardec/mega/service/mapper/EmployeeMapperTest.java b/src/test/java/com/gepardec/mega/service/mapper/EmployeeMapperTest.java index f8d5e88b3..defc6ed45 100644 --- a/src/test/java/com/gepardec/mega/service/mapper/EmployeeMapperTest.java +++ b/src/test/java/com/gepardec/mega/service/mapper/EmployeeMapperTest.java @@ -5,6 +5,7 @@ import de.provantis.zep.BeschaeftigungszeitListeType; import de.provantis.zep.BeschaeftigungszeitType; import de.provantis.zep.MitarbeiterType; +import io.quarkus.test.junit.QuarkusTest; import org.apache.commons.lang3.Range; import org.apache.commons.lang3.tuple.Pair; import org.junit.jupiter.api.BeforeEach; @@ -17,10 +18,10 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; +@QuarkusTest class EmployeeMapperTest { private EmployeeMapper mapper; diff --git a/src/test/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapperTest.java b/src/test/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapperTest.java index 7ffb011ae..9d420c3ce 100644 --- a/src/test/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/mapper/AbsenceTimeMapperTest.java @@ -17,6 +17,11 @@ void whenNull_thenReturnsNull() { assertThat(AbsenceTimeMapper.map(null)).isNull(); } + @Test + void mapList_whenNull_thenReturnsNull() { + assertThat(AbsenceTimeMapper.mapList(null)).isNull(); + } + @Test void withFullSettings_thenReturnsAbsenceTimeObject() { diff --git a/src/test/java/com/gepardec/mega/zep/mapper/MapperUtilTest.java b/src/test/java/com/gepardec/mega/zep/mapper/MapperUtilTest.java index ac16a4b5f..a8971656f 100644 --- a/src/test/java/com/gepardec/mega/zep/mapper/MapperUtilTest.java +++ b/src/test/java/com/gepardec/mega/zep/mapper/MapperUtilTest.java @@ -42,4 +42,9 @@ void whenAttributes_thenReturnsAttributesMap() { assertThat(attributesMap.get(attribute2.getName())).isEqualTo(attribute2.getValue()); } + + @Test + void whenNoAttributes_thenReturnsEmptyMap() { + assertThat(MapperUtil.convertAttributesToMap(null)).isEmpty(); + } } diff --git a/src/test/java/com/gepardec/mega/zep/mapper/ProjectEntryMapperTest.java b/src/test/java/com/gepardec/mega/zep/mapper/ProjectEntryMapperTest.java index 710ddb17f..c94f58808 100644 --- a/src/test/java/com/gepardec/mega/zep/mapper/ProjectEntryMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/mapper/ProjectEntryMapperTest.java @@ -49,6 +49,11 @@ void whenNull_thenReturnsNull() { assertThat(mapper.map(null)).isNull(); } + @Test + void mapList_whenNull_thenReturnsNull() { + assertThat(mapper.mapList(null)).isNull(); + } + @Test void withTaetigkeitIsNotATask_thenThrowsIllegalArgumentException() { ProjektzeitType projektzeitType = projektzeitTypeFor("testen", WorkingLocation.MAIN.zepOrt, JourneyDirection.TO.getDirection(), diff --git a/src/test/java/com/gepardec/mega/zep/mapper/ProjectTimeMapperTest.java b/src/test/java/com/gepardec/mega/zep/mapper/ProjectTimeMapperTest.java index 735d47f7d..8660d7f40 100644 --- a/src/test/java/com/gepardec/mega/zep/mapper/ProjectTimeMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/mapper/ProjectTimeMapperTest.java @@ -56,6 +56,12 @@ void withFullSettings_thenReturnsAbsenceTimeObject() { void whenEmptyList_thenReturnsEmptyList() { assertThat(ProjectTimeMapper.mapList(List.of())).isEmpty(); } + + @Test + void whenListIsNull_thenReturnNull() { + assertThat(ProjectTimeMapper.mapList(null)).isNull(); + } + @Test void whenList_thenReturnList() { ProjektzeitType pzt = new ProjektzeitType(); diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapperTest.java index 38ad9ae9e..4d0fd4244 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/AbsenceMapperTest.java @@ -4,14 +4,17 @@ import com.gepardec.mega.zep.rest.dto.ZepAbsence; import com.gepardec.mega.zep.rest.dto.ZepAbsenceReason; import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; import java.time.LocalDate; import java.util.Iterator; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.verify; @QuarkusTest class AbsenceMapperTest { @@ -19,8 +22,11 @@ class AbsenceMapperTest { @Inject AbsenceMapper absenceMapper; + @InjectMock + Logger logger; + @Test - public void mapZepAbsenceToAbsenceTime() { + void mapZepAbsenceToAbsenceTime() { ZepAbsenceReason zepAbsenceReason = ZepAbsenceReason.builder().name("KR").build(); ZepAbsence zepAbsence = ZepAbsence.builder() .id(1) @@ -41,7 +47,37 @@ public void mapZepAbsenceToAbsenceTime() { } @Test - public void mapZepAbsencesToAbsenceTimes() { + void mapZepAbsenceToAbsenceTime_whenReasonIsNull_thenReturnAbsenceTimeWithoutReason() { + ZepAbsence zepAbsence = ZepAbsence.builder() + .id(1) + .employeeId("001") + .startDate(LocalDate.of(2019, 1, 2)) + .endDate(LocalDate.of(2019, 1, 5)) + .absenceReason(null) + .approved(true) + .build(); + + AbsenceTime absence = absenceMapper.map(zepAbsence); + + assertThat(absence.userId()).isEqualTo(zepAbsence.employeeId()); + assertThat(absence.fromDate()).isEqualTo(zepAbsence.startDate()); + assertThat(absence.toDate()).isEqualTo(zepAbsence.endDate()); + assertThat(absence.reason()).isEqualTo(""); + assertThat(absence.accepted()).isEqualTo(zepAbsence.approved()); + } + + @Test + void mapZepAbsenceToAbsenceTime_whenZepAbsenceIsNull_thenReturnNullAndLogMessage() { + ZepAbsence zepAbsence = null; + + AbsenceTime absence = absenceMapper.map(zepAbsence); + + assertThat(absence).isNull(); + verify(logger).info("ZEP REST implementation -- While trying to map ZepAbsence to AbsenceTime, ZepAbsence was null"); + } + + @Test + void mapZepAbsencesToAbsenceTimes() { ZepAbsence[] zepAbsencesArr = { ZepAbsence.builder() .id(1) diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/ActiveMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/ActiveMapperTest.java index d82d77f5b..665f023c8 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/ActiveMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/ActiveMapperTest.java @@ -18,7 +18,7 @@ class ActiveMapperTest { ActiveMapper activeMapper; @Test - public void map_whenPastStartDateFutureEndDate_isActive() { + void map_whenPastStartDateFutureEndDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-10, 2) ); @@ -28,7 +28,7 @@ public void map_whenPastStartDateFutureEndDate_isActive() { assertThat(active).isTrue(); } @Test - public void map_whenTodayStartEndDate_isActive() { + void map_whenTodayStartEndDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(0, 0) ); @@ -39,7 +39,7 @@ public void map_whenTodayStartEndDate_isActive() { } @Test - public void map_whenPastStartDateTodayEndDate_isActive() { + void map_whenPastStartDateTodayEndDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-2, 0) ); @@ -50,7 +50,7 @@ public void map_whenPastStartDateTodayEndDate_isActive() { } @Test - public void map_whenTodayStartDateFutureEndDate_isActive() { + void map_whenTodayStartDateFutureEndDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(0, 1) ); @@ -61,7 +61,7 @@ public void map_whenTodayStartDateFutureEndDate_isActive() { } @Test - public void map_whenNullEndDate_isActive() { + void map_whenNullEndDate_isActive() { var employmentPeriods = List.of( createEmploymentPeriodWithNullEndDate(-2) ); @@ -72,7 +72,7 @@ public void map_whenNullEndDate_isActive() { } @Test - public void map_whenMultipleInactiveDatesWithOneNullEndDate_isActive() { + void map_whenMultipleInactiveDatesWithOneNullEndDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-100, -50), new DateOffset(-50, -25), @@ -87,7 +87,7 @@ public void map_whenMultipleInactiveDatesWithOneNullEndDate_isActive() { } @Test - public void map_whenMultipleInactiveDatesWithFutureEndDate_isActive() { + void map_whenMultipleInactiveDatesWithFutureEndDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-100, -50), new DateOffset(-50, -25), @@ -101,7 +101,7 @@ public void map_whenMultipleInactiveDatesWithFutureEndDate_isActive() { } @Test - public void map_whenActiveDatePlusNullDate_isActive() { + void map_whenActiveDatePlusNullDate_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-100, 2) ); @@ -113,7 +113,7 @@ public void map_whenActiveDatePlusNullDate_isActive() { } @Test - public void map_whenMultipleActiveDates_isActive() { + void map_whenMultipleActiveDates_isActive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-2, 10), new DateOffset(-2, 10) @@ -125,7 +125,7 @@ public void map_whenMultipleActiveDates_isActive() { } @Test - public void map_whenPastStartEndDate_isInactive() { + void map_whenPastStartEndDate_isInactive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(-10, -2) ); @@ -136,7 +136,7 @@ public void map_whenPastStartEndDate_isInactive() { } @Test - public void map_whenFutureStartEndDate_isInactive() { + void map_whenFutureStartEndDate_isInactive() { var employmentPeriods = createEmploymentPeriodListFromTodayOffset( new DateOffset(2, 2) ); @@ -147,7 +147,7 @@ public void map_whenFutureStartEndDate_isInactive() { } @Test - public void map_whenEmptyList_isInactive() { + void map_whenEmptyList_isInactive() { List employmentPeriods = List.of(); boolean active = activeMapper.map(employmentPeriods); @@ -156,7 +156,7 @@ public void map_whenEmptyList_isInactive() { } @Test - public void map_whenNullStartDate_isInactive() { + void map_whenNullStartDate_isInactive() { var employmentPeriods = List.of( createEmploymentPeriodWithNullStartDate(2) ); @@ -166,7 +166,7 @@ public void map_whenNullStartDate_isInactive() { } @Test - public void map_whenNullPeriod_isInactive() { + void map_whenNullPeriod_isInactive() { var employmentPeriods = List.of( createEmploymentPeriodWithNullDates() ); @@ -175,6 +175,11 @@ public void map_whenNullPeriod_isInactive() { assertThat(active).isFalse(); } + @Test + void map_whenEmploymentPeriodListIsEmpty_thenReturnFalse() { + assertThat(activeMapper.map(null)).isFalse(); + } + private ZepEmploymentPeriod createEmploymentPeriodWithNullEndDate(int offsetStart) { LocalDateTime now = LocalDateTime.now(); return ZepEmploymentPeriod.builder() diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/AttendanceMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/AttendanceMapperTest.java index 53a3222ed..3ea3bfee7 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/AttendanceMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/AttendanceMapperTest.java @@ -3,18 +3,29 @@ import com.gepardec.mega.domain.model.ProjectTime; import com.gepardec.mega.zep.rest.dto.ZepAttendance; import com.gepardec.mega.zep.rest.dto.ZepAttendanceDirectionOfTravel; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; import java.time.LocalDate; import java.time.LocalTime; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.verify; +@QuarkusTest class AttendanceMapperTest { + @Inject + AttendanceMapper mapper; + + @InjectMock + Logger logger; + @Test void withFullSettings_thenReturnsAbsenceTimeObject() { - AttendanceMapper attendanceMapper = new AttendanceMapper(); ZepAttendanceDirectionOfTravel zepAttendanceDirectionOfTravel = ZepAttendanceDirectionOfTravel.builder() .id("2") .name("return") @@ -36,12 +47,50 @@ void withFullSettings_thenReturnsAbsenceTimeObject() { .directionOfTravel(zepAttendanceDirectionOfTravel) .build(); - ProjectTime pt = attendanceMapper.map(zepAttendance); + ProjectTime pt = mapper.map(zepAttendance); assertThat(pt.getUserId()).isEqualTo(zepAttendance.employeeId()); assertThat(pt.getDuration()).isEqualTo("04:45"); assertThat(pt.getBillable()).isTrue(); } + @Test + void map_whenDurationIsNull_thenReturnsAbsenceTimeObject() { + ZepAttendanceDirectionOfTravel zepAttendanceDirectionOfTravel = ZepAttendanceDirectionOfTravel.builder() + .id("2") + .name("return") + .build(); + ZepAttendance zepAttendance = ZepAttendance.builder() + .id(2) + .date(LocalDate.of(2015,2,11)) + .from(LocalTime.of(9,0,0)) + .to(LocalTime.of(13,45,0)) + .employeeId("001-duser") + .projectId(1) + .projectTaskId(2) + .duration(null) + .billable(true) + .workLocation("HOME") + .workLocationIsProjectRelevant(false) + .activity("bearbeiten") + .vehicle("Elektrotriebwagen 4020") + .directionOfTravel(zepAttendanceDirectionOfTravel) + .build(); + + ProjectTime pt = mapper.map(zepAttendance); + + assertThat(pt.getUserId()).isEqualTo(zepAttendance.employeeId()); + assertThat(pt.getDuration()).isNull(); + assertThat(pt.getBillable()).isTrue(); + } + + @Test + void map_whenZepAttendanceIsNull_thenReturnNullAndLogMessage() { + ProjectTime actual = mapper.map(null); + + assertThat(actual).isNull(); + verify(logger).info("ZEP REST implementation -- While trying to map ZepAttendance to ProjectTime, ZepAttendance was null"); + } + } diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/EmployeeMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/EmployeeMapperTest.java index ce8613b24..81e37c555 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/EmployeeMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/EmployeeMapperTest.java @@ -5,8 +5,11 @@ import com.gepardec.mega.zep.rest.dto.ZepLanguage; import com.gepardec.mega.zep.rest.dto.ZepSalutation; import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.slf4j.Logger; import java.time.LocalDate; import java.util.Iterator; @@ -18,12 +21,15 @@ class EmployeeMapperTest { @Inject - Mapper employeeMapper; + EmployeeMapper employeeMapper; + + @InjectMock + Logger logger; @Test - public void mapZepEmployeeToEmployee() { + void mapZepEmployeeToEmployee() { // List employmentPeriods = List.of( // ZepEmploymentPeriod.builder() // .startDate(LocalDateTime.of(2010,1,2, 23, 32, 48)) @@ -68,7 +74,7 @@ public void mapZepEmployeeToEmployee() { } @Test - public void mapZepEmployeesToEmployees() { + void mapZepEmployeesToEmployees() { ZepEmployee[] zepEmployeesArr = { ZepEmployee.builder() .username("000") @@ -93,4 +99,11 @@ public void mapZepEmployeesToEmployees() { assertThat(employee.getEmail()).isEqualTo(zepEmployee.email()); }); } + + @Test + void map_whenZepEmployeeIsNull_returnsNullAndLogsMessage() { + assertThat(employeeMapper.map(null)).isNull(); + + Mockito.verify(logger).info("ZEP REST implementation -- While trying to map ZepEmployee to Employee, ZepEmployee was null"); + } } diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEmployeesMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEmployeesMapperTest.java new file mode 100644 index 000000000..c3506748a --- /dev/null +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEmployeesMapperTest.java @@ -0,0 +1,63 @@ +package com.gepardec.mega.zep.rest.mapper; + +import com.gepardec.mega.zep.rest.dto.ZepProjectEmployee; +import com.gepardec.mega.zep.rest.dto.ZepProjectEmployeeType; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.inject.Inject; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + + +@QuarkusTest +public class ProjectEmployeesMapperTest { + @Inject + ProjectEmployeesMapper mapper; + + @Test + void map_whenZepProjectEmployeesContainsUserAndLead_thenReturnMultivaluedMap() { + assertThat(mapper.map(createListOfUserAndLead()).size()).isEqualTo(2); + assertThat(mapper.map(createListOfUserAndLead()).get("user").size()).isEqualTo(2); + assertThat(mapper.map(createListOfUserAndLead()).get("lead").size()).isOne(); + } + + @Test + void map_whenZepProjectEmployeesContainsUser_thenReturnMultivaluedMap() { + assertThat(mapper.map(createListOfUser()).size()).isOne(); + } + + private List createListOfUserAndLead() { + List employeeList = new ArrayList<>(); + + employeeList.add( + ZepProjectEmployee.builder() + .username("001-maxMustermann") + .build() + ); + + employeeList.add( + ZepProjectEmployee.builder() + .username("002-mariaMusterfrau") + .type(ZepProjectEmployeeType.builder().id(1).build()) + .build() + ); + + return employeeList; + } + + private List createListOfUser() { + List employeeList = new ArrayList<>(); + + employeeList.add( + ZepProjectEmployee.builder() + .username("002-mariaMusterfrau") + .type(ZepProjectEmployeeType.builder().id(0).build()) + .build() + ); + + return employeeList; + } +} diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapperTest.java index 9afeb1773..9dc720bd6 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectEntryMapperTest.java @@ -5,8 +5,10 @@ import com.gepardec.mega.zep.rest.dto.ZepAttendance; import com.gepardec.mega.zep.rest.dto.ZepAttendanceDirectionOfTravel; import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; import java.time.LocalDate; import java.time.LocalDateTime; @@ -16,6 +18,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.verify; @QuarkusTest class ProjectEntryMapperTest { @@ -23,6 +26,9 @@ class ProjectEntryMapperTest { @Inject ProjectEntryMapper projectEntryMapper; + @InjectMock + Logger logger; + @Test public void mapZepAttendanceToProjectEntry() { ZepAttendance.Builder zepAttendance = generateZepAttendanceBuilder(); @@ -63,6 +69,17 @@ public void mapZepAttendanceToProjectEntryWithNullValues_JourneyTimeEntry() { assertThat(mappedProjectEntry).usingRecursiveComparison().isEqualTo(expectedProjectEntry); } + @Test + void map_whenZepAttendanceIsNull_thenReturnNullAndLogMessage() { + assertThat(projectEntryMapper.map(null)).isNull(); + verify(logger).info("ZEP REST implementation -- While trying to map zepAttendance to ProjectEntry, zepAttendance was null"); + } + + @Test + void mapList_whenZepAttendanceListIsNull_thenReturnNull() { + assertThat(projectEntryMapper.mapList(null)).isNull(); + } + @Test public void mapZepAttendanceToProjectEntryWithNullValues_IllegalArgumentException_toTask() { ZepAttendance.Builder zepAttendance = generateZepAttendanceBuilder(); diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectMapperTest.java index afbbdb582..4e31c6598 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/ProjectMapperTest.java @@ -7,7 +7,11 @@ import com.gepardec.mega.zep.rest.dto.ZepProjectEmployee; import com.gepardec.mega.zep.rest.dto.ZepProjectEmployeeType; import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectMock; +import jakarta.inject.Inject; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.slf4j.Logger; import java.time.LocalDate; import java.time.LocalDateTime; @@ -17,9 +21,14 @@ @QuarkusTest class ProjectMapperTest { + @Inject + ProjectMapper projectMapper; + + @InjectMock + Logger logger; + @Test public void fullZepProject_thenFullProject() { - ProjectMapper projectMapper = new ProjectMapper(); List zepProjectEmployees = List.of( ZepProjectEmployee.builder() .username("Anton") @@ -58,4 +67,44 @@ public void fullZepProject_thenFullProject() { assertThat(project.getEndDate()).isEqualTo(endDate); assertThat(project.getBillabilityPreset().getZepId()).isEqualTo(billabilityZepId); } + + @Test + void map_whenZepProjectIsNull_thenReturnNullAndLogMessage() { + assertThat(projectMapper.map(null)).isNull(); + Mockito.verify(logger).info("ZEP REST implementation -- While trying to map ZepProject to Project, ZepProject was null"); + } + + @Test + void map_whenStartAndDateAreNull_thenReturnProjectWithCorrectStartAndEndDate() { + int billabilityZepId = BillabilityPreset.BILLABLE.getZepId(); + + ZepProject zepProject = ZepProject.builder() + .id(1) + .name("MEGA") + .startDate(null) + .endDate(null) + .billingType(new ZepBillingType(billabilityZepId)) + .build(); + + Project project = projectMapper.map(zepProject).build(); + assertThat(project.getStartDate()).isNull(); + assertThat(project.getEndDate()).isNotNull(); + } + + @Test + void map_whenStartAndDateAreNullAndBillingTypeNotPresent_thenReturnProjectWithCorrectStartAndEndDate() { + + ZepProject zepProject = ZepProject.builder() + .id(1) + .name("MEGA") + .startDate(null) + .endDate(null) + .billingType(new ZepBillingType(0)) + .build(); + + Project project = projectMapper.map(zepProject).build(); + assertThat(project.getStartDate()).isNull(); + assertThat(project.getEndDate()).isNotNull(); + assertThat(project.getBillabilityPreset()).isNull(); + } } diff --git a/src/test/java/com/gepardec/mega/zep/rest/mapper/RegularWorkingHoursMapMapperTest.java b/src/test/java/com/gepardec/mega/zep/rest/mapper/RegularWorkingHoursMapMapperTest.java index b636bd2b7..c2823d30f 100644 --- a/src/test/java/com/gepardec/mega/zep/rest/mapper/RegularWorkingHoursMapMapperTest.java +++ b/src/test/java/com/gepardec/mega/zep/rest/mapper/RegularWorkingHoursMapMapperTest.java @@ -82,4 +82,11 @@ public void mapZepRegularWorkingHoursToRegularWorkingHoursMap_EmptyObjectMappedT assertThat(regularWorkingHours.get(DayOfWeek.SATURDAY)).isEqualTo(Duration.ofHours(0)); assertThat(regularWorkingHours.get(DayOfWeek.SUNDAY)).isEqualTo(Duration.ofHours(0)); } + + @Test + void map_whenZepRegularWorkingTimes_thenReturnEmptyMap() { + RegularWorkingHoursMapMapper regularWorkingHoursMapMapper = new RegularWorkingHoursMapMapper(); + + assertThat(regularWorkingHoursMapMapper.map(null)).isEmpty(); + } }