bug 59805: add unit test for LocaleUtil#getLocaleCalendar
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751629 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
076b9b600d
commit
83e27bd10c
@ -20,20 +20,35 @@ package org.apache.poi.util;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotEquals;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
|
||||
public class TestLocaleUtil {
|
||||
private static final Locale ja_JP = Locale.JAPAN;
|
||||
private static final TimeZone TOKYO = TimeZone.getTimeZone("Asia/Tokyo");
|
||||
private static final Calendar JAPAN_CALENDAR = Calendar.getInstance(TOKYO, ja_JP);
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
// clear the user locale and time zone so that tests do not interfere with each other
|
||||
// the other way and better way would be to run each test in its own thread since
|
||||
// LocaleUtil uses per-thread settings.
|
||||
// Helpful, but not ASL 2.0 licensed:
|
||||
// http://www.codeaffine.com/2014/07/21/a-junit-rule-to-run-a-test-in-its-own-thread/
|
||||
LocaleUtil.setUserLocale(Locale.GERMANY);
|
||||
LocaleUtil.setUserTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressForbidden("implementation around default locales in POI")
|
||||
public void userLocale() {
|
||||
Locale DEFAULT_LOCALE = LocaleUtil.getUserLocale();
|
||||
|
||||
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
||||
assertNotEquals(ja_JP, LocaleUtil.getUserLocale());
|
||||
|
||||
@ -52,4 +67,33 @@ public class TestLocaleUtil {
|
||||
LocaleUtil.setUserTimeZone(TOKYO);
|
||||
assertEquals(TOKYO, LocaleUtil.getUserTimeZone());
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressForbidden("implementation around default locales in POI")
|
||||
public void localeCalendar() {
|
||||
Locale DEFAULT_LOCALE = LocaleUtil.getUserLocale();
|
||||
TimeZone DEFAULT_TIME_ZONE = LocaleUtil.getUserTimeZone();
|
||||
Calendar DEFAULT_CALENDAR = LocaleUtil.getLocaleCalendar();
|
||||
|
||||
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
||||
assertEquals(DEFAULT_TIME_ZONE, LocaleUtil.getUserTimeZone());
|
||||
assertCalendarEquals(DEFAULT_CALENDAR, LocaleUtil.getLocaleCalendar());
|
||||
assertNotEquals(ja_JP, LocaleUtil.getUserLocale());
|
||||
assertNotEquals(TOKYO, LocaleUtil.getUserTimeZone());
|
||||
assertCalendarNotEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar());
|
||||
|
||||
LocaleUtil.setUserLocale(ja_JP);
|
||||
LocaleUtil.setUserTimeZone(TOKYO);
|
||||
assertCalendarEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar());
|
||||
// FIXME: These might affect the time zone due to daylight savings:
|
||||
//assertCalendarEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar(2016, 01, 01));
|
||||
//assertCalendarEquals(JAPAN_CALENDAR, LocaleUtil.getLocaleCalendar(2016, 01, 01, 00, 00, 00));
|
||||
}
|
||||
|
||||
private static void assertCalendarNotEquals(Calendar expected, Calendar actual) {
|
||||
assertNotEquals("time zone", expected.getTimeZone(), actual.getTimeZone());
|
||||
}
|
||||
private static void assertCalendarEquals(Calendar expected, Calendar actual) {
|
||||
assertEquals("time zone", expected.getTimeZone(), actual.getTimeZone());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user