/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright 2005 - 2008 Pentaho Corporation. All rights reserved.
*
* @created Aug 15, 2005
* @author James Dixon
*/
package org.pentaho.test.platform.util;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.pentaho.platform.util.messages.LocaleHelper;
public class LocaleHelperTest extends TestCase {
public void testLocaleHelper() {
Locale myLocale = Locale.US;
Locale newLocale = Locale.FRANCE;
LocaleHelper.setDefaultLocale(myLocale);
Locale myDefaultLocale = LocaleHelper.getDefaultLocale();
Assert.assertEquals(myDefaultLocale, myLocale);
LocaleHelper.setLocale(newLocale);
Locale myNewLocale = LocaleHelper.getLocale();
Assert.assertEquals(myNewLocale, newLocale);
LocaleHelper.setSystemEncoding("UTF8"); //$NON-NLS-1$
String systemEncoding = LocaleHelper.getSystemEncoding();
Assert.assertEquals(systemEncoding, "UTF8");//$NON-NLS-1$
LocaleHelper.setTextDirection("English"); //$NON-NLS-1$
String textDirection = LocaleHelper.getTextDirection();
Assert.assertEquals(textDirection, "English");//$NON-NLS-1$
DateFormat dateFormat = LocaleHelper.getDateFormat(LocaleHelper.FORMAT_MEDIUM, LocaleHelper.FORMAT_MEDIUM);
String format = dateFormat.format(new Date());
Assert.assertNotNull(format);
DateFormat fullDateFormat = LocaleHelper.getFullDateFormat(true, true);
String format1 = fullDateFormat.format(new Date());
Assert.assertNotNull(format1);
DateFormat fullDateFormat1 = LocaleHelper.getFullDateFormat(true, false);
String format2 = fullDateFormat1.format(new Date());
Assert.assertNotNull(format2);
DateFormat fullDateFormat2 = LocaleHelper.getFullDateFormat(false, true);
String format3 = fullDateFormat2.format(new Date());
Assert.assertNotNull(format3);
DateFormat longDateFormat = LocaleHelper.getLongDateFormat(true, true);
String format4 = longDateFormat.format(new Date());
Assert.assertNotNull(format4);
DateFormat longDateFormat1 = LocaleHelper.getLongDateFormat(true, false);
String format5 = longDateFormat1.format(new Date());
Assert.assertNotNull(format5);
DateFormat longDateFormat2 = LocaleHelper.getLongDateFormat(false, true);
String format6 = longDateFormat2.format(new Date());
Assert.assertNotNull(format6);
DateFormat mediumDateFormat = LocaleHelper.getMediumDateFormat(true, true);
String format7 = mediumDateFormat.format(new Date());
Assert.assertNotNull(format7);
DateFormat mediumDateFormat1 = LocaleHelper.getMediumDateFormat(true, false);
String format8 = mediumDateFormat1.format(new Date());
Assert.assertNotNull(format8);
DateFormat mediumDateFormat2 = LocaleHelper.getMediumDateFormat(false, true);
String format9 = mediumDateFormat2.format(new Date());
Assert.assertNotNull(format9);
DateFormat shortDateFormat = LocaleHelper.getShortDateFormat(true, true);
String format10 = shortDateFormat.format(new Date());
Assert.assertNotNull(format10);
DateFormat shortDateFormat1 = LocaleHelper.getMediumDateFormat(true, false);
String format11 = shortDateFormat1.format(new Date());
Assert.assertNotNull(format11);
DateFormat shortDateFormat2 = LocaleHelper.getMediumDateFormat(false, true);
String format12 = shortDateFormat2.format(new Date());
Assert.assertNotNull(format12);
}
public void testClosestLocale() {
// should return the locale passed in
String locale = LocaleHelper.getClosestLocale( "en-US", null ); //$NON-NLS-1$
assertEquals( "Locale is wrong", "en-US", locale ); //$NON-NLS-1$ //$NON-NLS-2$
// should return the locale passed in
locale = LocaleHelper.getClosestLocale( "en-US", new String[] {} ); //$NON-NLS-1$
assertEquals( "Locale is wrong", "en-US", locale ); //$NON-NLS-1$ //$NON-NLS-2$
// should return the first locale in the list
locale = LocaleHelper.getClosestLocale( "en-US", new String[] { "fr-FR", "es-ES" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals( "Locale is wrong", "fr-FR", locale ); //$NON-NLS-1$ //$NON-NLS-2$
// should return the only English variant
locale = LocaleHelper.getClosestLocale( "en-US", new String[] { "fr-FR", "es-ES", "en" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
assertEquals( "Locale is wrong", "en", locale ); //$NON-NLS-1$ //$NON-NLS-2$
locale = LocaleHelper.getClosestLocale( "en-US", new String[] { "fr-FR", "es-ES", "en-UK" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
assertEquals( "Locale is wrong", "en-UK", locale ); //$NON-NLS-1$ //$NON-NLS-2$
locale = LocaleHelper.getClosestLocale( "en", new String[] { "fr-FR", "es-ES", "en-UK" } ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
assertEquals( "Locale is wrong", "en-UK", locale ); //$NON-NLS-1$ //$NON-NLS-2$
}
public void testEncoding() {
LocaleHelper.setSystemEncoding("Shift_JIS");
}
public static void main(final String[] args) {
LocaleHelperTest test = new LocaleHelperTest();
System.err.println("hi!!");
test.testLocaleHelper();
test.testEncoding();
try {
} finally {
}
}
}