diff --git a/src/test/java/fr/univ_amu/m1info/client/util/DurationGeneratorTest.java b/src/test/java/fr/univ_amu/m1info/client/util/DurationGeneratorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8893a1c30514a35b789a44ff7047a073930ef272 --- /dev/null +++ b/src/test/java/fr/univ_amu/m1info/client/util/DurationGeneratorTest.java @@ -0,0 +1,51 @@ +package fr.univ_amu.m1info.client.util; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.time.Duration; +import java.util.Iterator; + +import static org.assertj.core.api.Assertions.*; + +class DurationGeneratorTest { + private static final Duration TEN_HOURS = Duration.ofHours(10); + private static final Duration FOUR_HOURS = Duration.ofHours(4); + private static final Duration ONE_HOUR = Duration.ofHours(1); + private static final Duration ONE_QUARTER = Duration.ofMinutes(15); + + private DurationGenerator hoursUptoTenHours; + private DurationGenerator quartersUptoFourHours; + + @BeforeEach + void setUp() { + hoursUptoTenHours = new DurationGenerator(ONE_HOUR, TEN_HOURS); + quartersUptoFourHours = new DurationGenerator(ONE_QUARTER, FOUR_HOURS); + } + + + @Test + void iterator() { + Iterator<Duration> iterator = hoursUptoTenHours.iterator(); + for(int i = 1; i <= 10; i++){ + assertThat(iterator.hasNext()).isTrue(); + assertThat(iterator.next()).isEqualTo(Duration.ofHours(i)); + } + } + + @Test + void getDurations() { + assertThat(hoursUptoTenHours.getDurations()).contains(ONE_HOUR, FOUR_HOURS); + assertThat(quartersUptoFourHours.getDurations()) + .contains(ONE_QUARTER, ONE_QUARTER.multipliedBy(3), FOUR_HOURS); + } + + @Test + void getDurationIndex() { + assertThat(hoursUptoTenHours.getDurationIndex(ONE_HOUR)).isEqualTo(0); + assertThat(hoursUptoTenHours.getDurationIndex(FOUR_HOURS)).isEqualTo(3); + assertThat(hoursUptoTenHours.getDurationIndex(ONE_QUARTER)).isEqualTo(-1); + assertThat(quartersUptoFourHours.getDurationIndex(ONE_QUARTER)).isEqualTo(0); + assertThat(quartersUptoFourHours.getDurationIndex(ONE_HOUR)).isEqualTo(3); + } +} \ No newline at end of file