@BeforeClass public static void beforeAll() { // Initialize the I18n static fields ... I18n.initialize(LoggerTest.class); }
@Test( expected = IllegalArgumentException.class ) public void shouldFailIfTooFewArgumentsSuppliedToText() { I18n.initialize(TestI18n.class); try { TestI18n.testMessage1.text(); } catch (IllegalArgumentException err) { System.err.println(err); throw err; } }
@Test( expected = IllegalArgumentException.class ) public void shouldFailIfTooManyArgumentsSuppliedToText() { I18n.initialize(TestI18n.class); try { TestI18n.testMessage1.text("Test", "Message"); } catch (IllegalArgumentException err) { System.err.println(err); throw err; } }
@Test public void shouldProvideIdempotentInitialization() { I18n.initialize(TestI18n.class); assertThat(TestI18n.testMessage1.text("test"), is("test")); I18n.initialize(TestI18n.class); assertThat(TestI18n.testMessage1.text("test"), is("test")); }
@Test public void shouldContainAngleBracketedProblemInTextIfMissingLocalization() { I18n.initialize(TestI18nMissingLocalization.class); String text = TestI18nMissingLocalization.testMessage.text(); assertThat(text, is('<' + CommonI18n.i18nLocalizationProblems.text(TestI18nMissingLocalization.class, Locale.getDefault()) + '>')); System.out.println("Text: " + text); }
@Test public void shouldNotBeLocalizedAfterInitialization() { I18n.initialize(TestI18nDuplicateProperty.class); assertThat(TestI18nDuplicateProperty.testMessage.localeToTextMap.get(Locale.getDefault()), nullValue()); assertThat(TestI18nDuplicateProperty.testMessage.localeToProblemMap.get(Locale.getDefault()), nullValue()); }
@Test public void shouldHaveIdThatMatchesFieldName() { I18n.initialize(TestI18n.class); assertThat(TestI18n.testMessage.id(), is("testMessage")); }
@Test public void shouldContainLocaleSpecificText() { I18n.initialize(TestI18n.class); assertThat(TestI18n.testMessage.text(Locale.FRENCH), is("Message de Test")); }
@Test public void shouldHaveLocalicationProblemIfPropertyUnused() { I18n.initialize(TestI18nUnusedProperty.class); TestI18nUnusedProperty.testMessage.text("test"); assertThat(I18n.getLocalizationProblems(TestI18nUnusedProperty.class).size(), is(1)); assertThat(I18n.getLocalizationProblemLocales(TestI18nUnusedProperty.class).size(), is(1)); assertThat(I18n.getLocalizationProblemLocales(TestI18nUnusedProperty.class).iterator().next(), is(Locale.getDefault())); }
@Test public void shouldHaveTextIfPropertyDuplicate() { I18n.initialize(TestI18nDuplicateProperty.class); String text = TestI18nDuplicateProperty.testMessage.text("test"); assertThat(text.charAt(0), not('<')); System.out.println("Text: " + text); }
@Test public void shouldGetLocalizationProblemsForDefaultLocaleIfNoLocaleSupplied() { I18n.initialize(TestI18nUnusedProperty.class); TestI18nUnusedProperty.testMessage.text("test"); assertThat(I18n.getLocalizationProblems(TestI18nUnusedProperty.class, null).isEmpty(), is(false)); }
@Test( expected = SystemFailureException.class ) public void shouldFailToInitializeNonPublicI18nField() { try { I18n.initialize(TestI18nNotPublicField.class); } catch (SystemFailureException err) { assertThat(err.getMessage(), is(CommonI18n.i18nFieldNotPublic.text("testMessage", TestI18nNotPublicField.class))); System.err.println(err); throw err; } }
@Test( expected = SystemFailureException.class ) public void shouldFailToInitializeNonStaticI18nField() { try { I18n.initialize(TestI18nNotStaticField.class); } catch (SystemFailureException err) { assertThat(err.getMessage(), is(CommonI18n.i18nFieldNotStatic.text("testMessage", TestI18nNotStaticField.class))); System.err.println(err); throw err; } }
@Test public void shouldHaveProblemIfMissingLocalization() { I18n.initialize(TestI18nMissingLocalization.class); assertThat(TestI18nMissingLocalization.testMessage.hasProblem(), is(true)); String problem = TestI18nMissingLocalization.testMessage.problem(); assertThat(problem, is(CommonI18n.i18nLocalizationProblems.text(TestI18nMissingLocalization.class, Locale.getDefault()))); System.out.println("Problem: " + problem); }
@Test public void shouldNotBeLocalizedIfAskedForId() { I18n.initialize(TestI18nDuplicateProperty.class); TestI18nDuplicateProperty.testMessage.id(); assertThat(TestI18nDuplicateProperty.testMessage.localeToTextMap.get(Locale.getDefault()), nullValue()); assertThat(TestI18nDuplicateProperty.testMessage.localeToProblemMap.get(Locale.getDefault()), nullValue()); }
@Test public void shouldBeLocalizedIfAskedIfHasProblem() { I18n.initialize(TestI18nDuplicateProperty.class); TestI18nDuplicateProperty.testMessage.hasProblem(); assertThat(TestI18nDuplicateProperty.testMessage.localeToTextMap.get(Locale.getDefault()), notNullValue()); assertThat(TestI18nDuplicateProperty.testMessage.localeToProblemMap.get(Locale.getDefault()), notNullValue()); }
@Test public void shouldBeLocalizedIfConvertedToString() { I18n.initialize(TestI18nDuplicateProperty.class); TestI18nDuplicateProperty.testMessage.toString(); assertThat(TestI18nDuplicateProperty.testMessage.localeToTextMap.get(Locale.getDefault()), notNullValue()); assertThat(TestI18nDuplicateProperty.testMessage.localeToProblemMap.get(Locale.getDefault()), notNullValue()); }
@Test public void shouldInitializeI18nFields() { I18n.initialize(TestI18n.class); assertThat(TestI18n.testMessage, instanceOf(I18n.class)); }
@Test public void shouldInitializeFinalClasses() { I18n.initialize(TestI18nFinal.class); assertThat(TestI18nFinal.testMessage, instanceOf(I18n.class)); }
@Test public void shouldHaveProblemIfPropertyMissing() { I18n.initialize(TestI18nMissingProperty.class); assertThat(TestI18nMissingProperty.testMessage1.hasProblem(), is(true)); String problem = TestI18nMissingProperty.testMessage1.problem(); assertThat(problem, notNullValue()); System.out.println("Problem: " + problem); }