package org.synyx.urlaubsverwaltung.restapi.availability; import org.junit.Assert; import org.junit.Test; import org.synyx.urlaubsverwaltung.core.period.DayLength; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Timo Eifler - eifler@synyx.de */ public class TimedAbsenceSpansTest { @Test public void ensurePresenceRatioCalculatedCorrectly() { TimedAbsence timedAbsence1 = new TimedAbsence(DayLength.MORNING, TimedAbsence.Type.FREETIME); TimedAbsence timedAbsence2 = new TimedAbsence(DayLength.NOON, TimedAbsence.Type.VACATION); List<TimedAbsence> absenceList = Arrays.asList(timedAbsence1, timedAbsence2); TimedAbsenceSpans timedAbsenceSpans = new TimedAbsenceSpans(absenceList); BigDecimal presenceRatio = timedAbsenceSpans.calculatePresenceRatio(); Assert.assertTrue(BigDecimal.ZERO.compareTo(presenceRatio) == 0); } @Test public void ensurePresenceRatioIsNotNegative() { TimedAbsence timedAbsence1 = new TimedAbsence(DayLength.MORNING, TimedAbsence.Type.FREETIME); TimedAbsence timedAbsence2 = new TimedAbsence(DayLength.FULL, TimedAbsence.Type.SICK_NOTE); List<TimedAbsence> absenceList = Arrays.asList(timedAbsence1, timedAbsence2); TimedAbsenceSpans timedAbsenceSpans = new TimedAbsenceSpans(absenceList); BigDecimal presenceRatio = timedAbsenceSpans.calculatePresenceRatio(); Assert.assertTrue(BigDecimal.ZERO.compareTo(presenceRatio) == 0); } @Test public void ensurePresenceRatioIsCalculatedCorrectlyForEmptyList() { BigDecimal presenceRatio = new TimedAbsenceSpans(new ArrayList<>()).calculatePresenceRatio(); Assert.assertTrue(BigDecimal.ONE.compareTo(presenceRatio) == 0); } @Test public void ensureCalculationIsNullSave() { new TimedAbsenceSpans(null).calculatePresenceRatio(); } }