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.assertEquals;
|
||||||
import static org.junit.Assert.assertNotEquals;
|
import static org.junit.Assert.assertNotEquals;
|
||||||
|
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
||||||
public class TestLocaleUtil {
|
public class TestLocaleUtil {
|
||||||
private static final Locale ja_JP = Locale.JAPAN;
|
private static final Locale ja_JP = Locale.JAPAN;
|
||||||
private static final TimeZone TOKYO = TimeZone.getTimeZone("Asia/Tokyo");
|
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
|
@Test
|
||||||
@SuppressForbidden("implementation around default locales in POI")
|
@SuppressForbidden("implementation around default locales in POI")
|
||||||
public void userLocale() {
|
public void userLocale() {
|
||||||
Locale DEFAULT_LOCALE = LocaleUtil.getUserLocale();
|
Locale DEFAULT_LOCALE = LocaleUtil.getUserLocale();
|
||||||
|
|
||||||
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
assertEquals(DEFAULT_LOCALE, LocaleUtil.getUserLocale());
|
||||||
assertNotEquals(ja_JP, LocaleUtil.getUserLocale());
|
assertNotEquals(ja_JP, LocaleUtil.getUserLocale());
|
||||||
|
|
||||||
@ -52,4 +67,33 @@ public class TestLocaleUtil {
|
|||||||
LocaleUtil.setUserTimeZone(TOKYO);
|
LocaleUtil.setUserTimeZone(TOKYO);
|
||||||
assertEquals(TOKYO, LocaleUtil.getUserTimeZone());
|
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