From 90c63199c2bf4078f9e006d6f09424aa692325dd Mon Sep 17 00:00:00 2001
From: Arnaud LABOUREL <arnaud.labourel@lis-lab.fr>
Date: Mon, 6 Jan 2025 15:38:34 +0100
Subject: [PATCH] added test for DurationGenerator

---
 .../client/util/DurationGeneratorTest.java    | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 src/test/java/fr/univ_amu/m1info/client/util/DurationGeneratorTest.java

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 0000000..8893a1c
--- /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
-- 
GitLab