diff options
Diffstat (limited to 'src/test/java/sevenUnitsGUI/I18nTest.java')
-rw-r--r-- | src/test/java/sevenUnitsGUI/I18nTest.java | 60 |
1 files changed, 57 insertions, 3 deletions
diff --git a/src/test/java/sevenUnitsGUI/I18nTest.java b/src/test/java/sevenUnitsGUI/I18nTest.java index 1513373..78f5da4 100644 --- a/src/test/java/sevenUnitsGUI/I18nTest.java +++ b/src/test/java/sevenUnitsGUI/I18nTest.java @@ -16,9 +16,15 @@ */ package sevenUnitsGUI; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import java.util.stream.Stream; + import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; /** * Tests for the internationalization system. @@ -26,17 +32,65 @@ import org.junit.jupiter.api.Test; * @since v1.0.0 */ class I18nTest { + private static final Stream<Arguments> testLocalization() { + return Stream.of( + Arguments.of("tv.title", "en", "7Units [v]"), + Arguments.of("tv.title", "fr", "7Unités [v]"), + Arguments.of("tv.convert_units.title", "en", "Convert Units"), + Arguments.of("tv.convert_units.title", "fr", "Convertir Unités")); + } + + private static final Stream<String> testLocaleSupported() { + return Stream.of("en", "fr"); + } /** - * Tests that the default locale exists. + * Tests that the default locale is supported. * * @since v1.0.0 + * @see Presenter#DEFAULT_LOCALE */ @Test - void testDefaultLocale() { + void testDefaultLocaleSupported() { Presenter p = new Presenter(new ViewBot()); assertNotNull(p.locales.get(Presenter.DEFAULT_LOCALE), - "Default locale does not exist."); + "Default locale is not supported."); + } + + /** + * Ensures that the system supports the provided locale. + * + * @param localeName locale to test for support + * + * @since 2025-06-04 + * @since v1.0.0 + */ + @ParameterizedTest + @MethodSource + void testLocaleSupported(String localeName) { + Presenter p = new Presenter(new ViewBot()); + assertNotNull(p.locales.get(localeName), + "Locale \"" + localeName + "\" is not supported."); + } + + /** + * Tests that the system can correctly localize text, + * using the default locales. + * + * @param key key of text to localize + * @param locale locale to use + * @param expected expected value of output text + * + * @since 2025-06-04 + * @since v1.0.0 + */ + @ParameterizedTest + @MethodSource + void testLocalization(String key, String locale, String expected) { + Presenter p = new Presenter(new ViewBot()); + p.setUserLocale(locale); + String actual = p.getLocalizedText(key); + assertEquals(expected, actual); } } |