From: David ‘Bombe’ Roden Date: Thu, 27 Nov 2025 11:22:45 +0000 (+0100) Subject: ✅ Add test for I18nContainer X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=0fb4d5d26449944b14fe98415c1cf36936312dbc;p=jSite.git ✅ Add test for I18nContainer --- diff --git a/src/main/java/de/todesbaum/jsite/i18n/I18nContainer.java b/src/main/java/de/todesbaum/jsite/i18n/I18nContainer.java index 80ae066..b212088 100644 --- a/src/main/java/de/todesbaum/jsite/i18n/I18nContainer.java +++ b/src/main/java/de/todesbaum/jsite/i18n/I18nContainer.java @@ -88,4 +88,12 @@ public class I18nContainer implements Iterable { return allRunnables.iterator(); } + /** + * Resets this {@link I18nContainer}. Should only be used for tests! + */ + void reset() { + i18nRunnables.clear(); + i18nPostRunnables.clear(); + } + } diff --git a/src/test/java/de/todesbaum/jsite/i18n/I18nContainerTest.java b/src/test/java/de/todesbaum/jsite/i18n/I18nContainerTest.java new file mode 100644 index 0000000..91e89ad --- /dev/null +++ b/src/test/java/de/todesbaum/jsite/i18n/I18nContainerTest.java @@ -0,0 +1,47 @@ +package de.todesbaum.jsite.i18n; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.emptyIterable; + +public class I18nContainerTest { + + @Test + public void newI18nContainerIsEmpty() { + assertThat(I18nContainer.getInstance(), emptyIterable()); + } + + @Test + public void registeringARunnableMakesRunnableAvailableForIteration() { + Runnable runnable = () -> {}; + I18nContainer.getInstance().registerRunnable(runnable); + assertThat(I18nContainer.getInstance(), contains(runnable)); + } + + @Test + public void registeringAPostRunnableMakesPostRunnableAvailableForIteration() { + Runnable runnable = () -> {}; + I18nContainer.getInstance().registerPostRunnable(runnable); + assertThat(I18nContainer.getInstance(), contains(runnable)); + } + + @Test + public void registeringRunnableAfterPostRunnableMakesRunnableAvailableBeforePostRunnable() { + Runnable runnable = () -> {}; + Runnable postRunnable = () -> {}; + I18nContainer.getInstance().registerPostRunnable(postRunnable); + I18nContainer.getInstance().registerRunnable(runnable); + assertThat(I18nContainer.getInstance(), contains(runnable, postRunnable)); + } + + @Before + @After + public void resetI18nContainer() { + I18nContainer.getInstance().reset(); + } + +}