package net.sf.openrocket.l10n; import static org.junit.Assert.*; import java.util.Locale; import java.util.MissingResourceException; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TestResourceBundleTranslator { private Locale originalDefaultLocale; @Before public void setup() { // Default locale affects resource bundles, so set something non-English this.originalDefaultLocale = Locale.getDefault(); Locale.setDefault(Locale.GERMAN); } @After public void teardown() { Locale.setDefault(originalDefaultLocale); } @Test public void testSuccessfulDefault() { ResourceBundleTranslator trans = new ResourceBundleTranslator("l10n.messages"); assertEquals("messages_de.properties", trans.get("debug.currentFile")); } @Test public void testSuccessfulNonDefault() { ResourceBundleTranslator trans = new ResourceBundleTranslator("l10n.messages", Locale.FRENCH); assertEquals("messages_fr.properties", trans.get("debug.currentFile")); } @Test public void testFailure() { ResourceBundleTranslator trans = new ResourceBundleTranslator("l10n.messages", Locale.US); try { fail("Returned: " + trans.get("missing")); } catch (MissingResourceException e) { // Expected } } @Test public void testGetEnglish() { ResourceBundleTranslator trans = new ResourceBundleTranslator("l10n.messages", Locale.FRENCH); assertEquals("Papier (bureau)", trans.get("material", "Paper (office)")); assertEquals("Paper (toilet)", trans.get("material", "Paper (toilet)")); } @Test public void testGetBase() { ResourceBundleTranslator trans = new ResourceBundleTranslator("l10n.messages", Locale.FRENCH); assertEquals("Paper (office)", trans.getBaseText("material", "Papier (bureau)")); assertEquals("Papier (toilet)", trans.getBaseText("material", "Papier (toilet)")); } }