package net.jhorstmann.i18n.sample; import java.util.Locale; import net.jhorstmann.i18n.I18N; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * Translation works in Tests by configuring the neccessary Providers in src/test/resources. */ public class TranslationTest { private Locale locale; @Before public void saveLocale() { locale = Locale.getDefault(); } @After public void restoreLocale() { Locale.setDefault(locale); } @Test public void testGerman() { Locale.setDefault(Locale.GERMANY); Assert.assertEquals("Einfache Nachricht", I18N.tr("Simple message")); Assert.assertEquals("Nachricht mit Kontext", I18N.trc("Message with context", "Message with context")); } @Test public void testGermanPlural() { Locale.setDefault(Locale.GERMANY); Assert.assertEquals("Mehrere Nachrichten", I18N.trn("One Message", "Several Messages", 0)); Assert.assertEquals("Eine Nachricht", I18N.trn("One Message", "Several Messages", 1)); Assert.assertEquals("Mehrere Nachrichten", I18N.trn("One Message", "Several Messages", 2)); } @Test public void testEnglish() { Locale.setDefault(Locale.ENGLISH); Assert.assertEquals("Simple message", I18N.tr("Simple message")); Assert.assertEquals("Message with context", I18N.trc("Message with context", "Message with context")); } @Test public void testEnglishPlural() { Locale.setDefault(Locale.ENGLISH); Assert.assertEquals("Several Messages", I18N.trn("One Message", "Several Messages", 0)); Assert.assertEquals("One Message", I18N.trn("One Message", "Several Messages", 1)); Assert.assertEquals("Several Messages", I18N.trn("One Message", "Several Messages", 2)); } @Test public void testDefault() { Locale.setDefault(Locale.CHINESE); Assert.assertEquals("Simple message", I18N.tr("Simple message")); Assert.assertEquals("Message with context", I18N.trc("Message with context", "Message with context")); } @Test public void testDefaultPlural() { Locale.setDefault(Locale.CHINESE); Assert.assertEquals("Several Messages", I18N.trn("One Message", "Several Messages", 0)); Assert.assertEquals("One Message", I18N.trn("One Message", "Several Messages", 1)); Assert.assertEquals("Several Messages", I18N.trn("One Message", "Several Messages", 2)); } }