Index: lutinutil/src/test/org/codelutin/i18n/LanguageManagerTest.java diff -u /dev/null lutinutil/src/test/org/codelutin/i18n/LanguageManagerTest.java:1.1 --- /dev/null Sun Feb 10 16:00:44 2008 +++ lutinutil/src/test/org/codelutin/i18n/LanguageManagerTest.java Sun Feb 10 16:00:39 2008 @@ -0,0 +1,131 @@ +package org.codelutin.i18n; + +import junit.framework.TestCase; + +import java.util.Locale; + +/** + * LanguageManager Tester. + * + * @author chemit + * @version 1.0 + * @since
02/10/2008+ */ +public class LanguageManagerTest extends TestCase { + + Locale locale; + Language language; + String encoding; + + public LanguageManagerTest(String name) { + super(name); + } + + public void testGetLanguage() throws Exception { + // ceci est le premier test, le language doit etre null + assertNull(LanguageManager.getLanguage()); + } + + public void testSetLanguage() throws Exception { + + locale = I18n.newLocale(LanguageEnum.fr, CountryEnum.FR); + encoding = I18n.ISO_8859_1_ENCONDING; + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + assertNotSame(language, LanguageManager.getLanguage()); + // one language for this encoding + assertEquals(1, LanguageManager.getLanguages(encoding).size()); + // one encoding in cache + assertEquals(1, LanguageManager.getCache().size()); + + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + assertEquals(language, LanguageManager.getLanguage()); + // one language for this encoding + assertEquals(1, LanguageManager.getLanguages(encoding).size()); + // one encoding in cache + assertEquals(1, LanguageManager.getCache().size()); + + // set same locale but different encoding + encoding = I18n.UTF_8_ENCONDING; + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // one language for this encoding + assertEquals(1, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + locale = I18n.newLocale(LanguageEnum.en, CountryEnum.GB); + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // 2 language for this encoding + assertEquals(2, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + encoding = I18n.ISO_8859_1_ENCONDING; + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // 2 language for this encoding + assertEquals(2, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + locale = I18n.newLocale(LanguageEnum.en, null); + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // 3 language for this encoding + assertEquals(3, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + encoding = I18n.UTF_8_ENCONDING; + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // 3 language for this encoding + assertEquals(3, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + locale = I18n.newLocale(LanguageEnum.fr, null); + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // 4 language for this encoding + assertEquals(4, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + encoding = I18n.ISO_8859_1_ENCONDING; + language = LanguageManager.getLanguage(); + LanguageManager.setLanguage(locale, encoding); + + // language change (from his encoding) + assertNotSame(language, LanguageManager.getLanguage()); + // 4 language for this encoding + assertEquals(4, LanguageManager.getLanguages(encoding).size()); + // two encoding in cache + assertEquals(2, LanguageManager.getCache().size()); + + } + +}