--- /dev/null
+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();
+ }
+
+}