From 0fb4d5d26449944b14fe98415c1cf36936312dbc Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 27 Nov 2025 12:22:45 +0100 Subject: [PATCH] =?utf8?q?=E2=9C=85=20Add=20test=20for=20I18nContainer?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../de/todesbaum/jsite/i18n/I18nContainer.java | 8 ++++ .../de/todesbaum/jsite/i18n/I18nContainerTest.java | 47 ++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/test/java/de/todesbaum/jsite/i18n/I18nContainerTest.java 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(); + } + +} -- 2.7.4