public static Set<String> getLocalizationProblems( Locale locale ) { return I18n.getLocalizationProblems(CommonI18n.class, locale); } }
public static Set<String> getLocalizationProblems( Locale locale ) { return I18n.getLocalizationProblems(CommonI18n.class, locale); } }
public static Set<String> getLocalizationProblems() { return I18n.getLocalizationProblems(CommonI18n.class); }
public static Set<String> getLocalizationProblems() { return I18n.getLocalizationProblems(CommonI18n.class); }
/** * Note, calling this method will <em>not</em> trigger localization of the supplied internationalization class. * * @param i18nClass The internalization class for which localization problems should be returned. * @return The localization problems encountered while localizing the supplied internationalization class to the default * locale; never <code>null</code>. */ public static Set<String> getLocalizationProblems( Class<?> i18nClass ) { return getLocalizationProblems(i18nClass, Locale.getDefault()); }
/** * Note, calling this method will <em>not</em> trigger localization of the supplied internationalization class. * * @param i18nClass The internalization class for which localization problems should be returned. * @return The localization problems encountered while localizing the supplied internationalization class to the default * locale; never <code>null</code>. */ public static Set<String> getLocalizationProblems( Class<?> i18nClass ) { return getLocalizationProblems(i18nClass, Locale.getDefault()); }
/** * Note, calling this method will <em>not</em> trigger localization of the supplied internationalization class. * * @param i18nClass The internalization class for which localization problems should be returned. * @return The localization problems encountered while localizing the supplied internationalization class to the default * locale; never <code>null</code>. */ public static Set<String> getLocalizationProblems( Class<?> i18nClass ) { return getLocalizationProblems(i18nClass, Locale.getDefault()); }
@Test( expected = IllegalArgumentException.class ) public void shouldFailToGetLocalizationProblemsForSuppliedLocaleIfNoClassSupplied() { I18n.getLocalizationProblems(null, Locale.US); }
@Test( expected = IllegalArgumentException.class ) public void shouldFailToGetLocalizationProblemsForDefaultLocaleIfNoClassSupplied() { I18n.getLocalizationProblems(null); }
@Test public void shouldHaveLocalicationProblemIfMissingLocalization() { I18n.initialize(TestI18nMissingLocalization.class); TestI18nMissingLocalization.testMessage.text(); assertThat(I18n.getLocalizationProblems(TestI18nMissingLocalization.class).size(), is(1)); assertThat(I18n.getLocalizationProblems(TestI18nMissingLocalization.class).iterator().next(), is(CommonI18n.i18nLocalizationFileNotFound.text(TestI18nMissingLocalization.class.getName()))); assertThat(I18n.getLocalizationProblemLocales(TestI18nMissingLocalization.class).size(), is(1)); assertThat(I18n.getLocalizationProblemLocales(TestI18nMissingLocalization.class).iterator().next(), is(Locale.getDefault())); }
@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 shouldNotHaveLocalizationProblemsAfterInitializationButBeforeLocalization() { I18n.initialize(TestI18nUnusedProperty.class); assertThat(I18n.getLocalizationProblems(TestI18nUnusedProperty.class, null).isEmpty(), is(true)); assertThat(I18n.getLocalizationProblemLocales(TestI18nUnusedProperty.class).isEmpty(), is(true)); }
@Test public void shouldGetLocalizationProblemsForDefaultLocaleIfNoLocaleSupplied() { I18n.initialize(TestI18nUnusedProperty.class); TestI18nUnusedProperty.testMessage.text("test"); assertThat(I18n.getLocalizationProblems(TestI18nUnusedProperty.class, null).isEmpty(), is(false)); }
@Test public void shouldNotHaveLocalicationProblemIfPropertyDuplicate() { I18n.initialize(TestI18nDuplicateProperty.class); TestI18nDuplicateProperty.testMessage.text("test"); assertThat(I18n.getLocalizationProblems(TestI18nDuplicateProperty.class).isEmpty(), is(true)); assertThat(I18n.getLocalizationProblemLocales(TestI18nDuplicateProperty.class).isEmpty(), is(true)); }
@Test public void shouldNotHaveLocalicationProblemIfPropertyMissing() { I18n.initialize(TestI18nMissingProperty.class); TestI18nMissingProperty.testMessage1.text("test"); assertThat(I18n.getLocalizationProblems(TestI18nMissingProperty.class).isEmpty(), is(true)); assertThat(I18n.getLocalizationProblemLocales(TestI18nMissingProperty.class).isEmpty(), is(true)); }
@Test public void shouldNotHaveProblems() throws Exception { for (Field fld : i18nClass.getDeclaredFields()) { if (fld.getType() == I18n.class && (fld.getModifiers() & Modifier.PUBLIC) == Modifier.PUBLIC && (fld.getModifiers() & Modifier.STATIC) == Modifier.STATIC && (fld.getModifiers() & Modifier.FINAL) != Modifier.FINAL) { I18n i18n = (I18n)fld.get(null); if (i18n.hasProblem()) { fail(i18n.problem()); } } } // Check for global problems after checking field problems since global problems are detected lazily upon field usage Set<Locale> locales = I18n.getLocalizationProblemLocales(i18nClass); if (!locales.isEmpty()) { for (Locale locale : locales) { Set<String> problems = I18n.getLocalizationProblems(i18nClass, locale); try { assertThat(problems.isEmpty(), is(true)); } catch (AssertionError error) { fail(problems.iterator().next()); } } } }
@Test public void shouldNeverReturnNullWhenGettingLocalizationProblemsForSuppliedLocale() { assertThat(I18n.getLocalizationProblems(TestI18n.class, Locale.US), notNullValue()); }
@Test public void shouldNeverReturnNullWhenGettingLocalizationProblemsForDefaultLocale() { assertThat(I18n.getLocalizationProblems(TestI18n.class), notNullValue()); }