This commit is contained in:
Brian Neumann-Fopiano committed 2026-07-26 12:12:49 -05:00
1 parent de25b7d7ab
commit d5a55ccfcf
66 files changed
+6300 -424

No files matched your search

@@ -0,0 +1,72 @@
package art.arcane.iris.core.pregenerator;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class PregenPhaseTrackerTest {
@Test
public void theFirstTickAnnouncesTheJobAndStillReportsProgress() {
PregenPhaseTracker tracker = new PregenPhaseTracker();
assertEquals(List.of(PregenApiPhase.STARTED, PregenApiPhase.TICK), tracker.onTick(false));
assertEquals(List.of(PregenApiPhase.TICK), tracker.onTick(false));
}
@Test
public void pauseAndResumeAreEmittedOnTransitionOnly() {
PregenPhaseTracker tracker = new PregenPhaseTracker();
tracker.onTick(false);
assertEquals(List.of(PregenApiPhase.PAUSED, PregenApiPhase.TICK), tracker.onTick(true));
assertEquals(List.of(PregenApiPhase.TICK), tracker.onTick(true));
assertEquals(List.of(PregenApiPhase.RESUMED, PregenApiPhase.TICK), tracker.onTick(false));
assertEquals(List.of(PregenApiPhase.TICK), tracker.onTick(false));
}
@Test
public void aJobThatStartsPausedDoesNotAlsoEmitPaused() {
PregenPhaseTracker tracker = new PregenPhaseTracker();
assertEquals(List.of(PregenApiPhase.STARTED, PregenApiPhase.TICK), tracker.onTick(true));
assertEquals(List.of(PregenApiPhase.TICK), tracker.onTick(true));
assertEquals(List.of(PregenApiPhase.RESUMED, PregenApiPhase.TICK), tracker.onTick(false));
}
@Test
public void savingIsAStateNotAPulse() {
PregenPhaseTracker tracker = new PregenPhaseTracker();
tracker.onTick(false);
assertEquals(List.of(PregenApiPhase.SAVING), tracker.onSaving());
assertEquals(List.of(), tracker.onSaving());
assertEquals(List.of(PregenApiPhase.TICK), tracker.onTick(false));
assertEquals(List.of(PregenApiPhase.SAVING), tracker.onSaving());
}
@Test
public void closeIsTerminalAndDistinguishesCompletionFromCancellation() {
PregenPhaseTracker completed = new PregenPhaseTracker();
completed.onTick(false);
assertEquals(List.of(PregenApiPhase.COMPLETED), completed.onClose(true));
assertEquals(List.of(), completed.onClose(true));
assertEquals(List.of(), completed.onClose(false));
assertEquals(List.of(), completed.onTick(false));
assertEquals(List.of(), completed.onSaving());
PregenPhaseTracker cancelled = new PregenPhaseTracker();
cancelled.onTick(false);
assertEquals(List.of(PregenApiPhase.CANCELLED), cancelled.onClose(false));
assertEquals(List.of(), cancelled.onClose(true));
}
@Test
public void aJobThatNeverTickedStillReportsItsOutcomeExactlyOnce() {
PregenPhaseTracker tracker = new PregenPhaseTracker();
assertEquals(List.of(PregenApiPhase.CANCELLED), tracker.onClose(false));
assertEquals(List.of(), tracker.onClose(false));
}
}