/* | |
******************************************************************************* | |
* Copyright (C) 2006-2011, International Business Machines Corporation and * | |
* others. All Rights Reserved. * | |
******************************************************************************* | |
*/ | |
package com.ibm.icu.tests; | |
import java.util.Date; | |
import java.util.Locale; | |
import com.ibm.icu.text.DateFormat; | |
import com.ibm.icu.util.Calendar; | |
import com.ibm.icu.util.TimeZone; | |
import com.ibm.icu.util.ULocale; | |
public class CalendarTest extends ICUTestCase { | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.hashCode()' | |
*/ | |
public void testHashCode() { | |
Calendar cal1 = Calendar.getInstance(); | |
Calendar cal2 = Calendar.getInstance(); | |
Calendar cal3 = Calendar.getInstance(); | |
long t = System.currentTimeMillis(); | |
cal1.setTimeInMillis(t); | |
cal2.setTimeInMillis(t); | |
cal3.setTimeInMillis(t); | |
cal3.setMinimalDaysInFirstWeek(cal3.getMinimalDaysInFirstWeek()+1); | |
testEHCS(cal1, cal2, cal3); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.Calendar(Calendar)' | |
*/ | |
public void testCalendar() { | |
// tested implicitly everywhere | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getInstance()' | |
*/ | |
public void testGetInstance() { | |
// tested by testEHCS | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getInstance(TimeZone)' | |
*/ | |
public void testGetInstanceTimeZone() { | |
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles"); | |
Calendar cal = Calendar.getInstance(tz); | |
assertNotNull(cal); | |
assertNotNull(cal.getTime()); | |
assertEquals(tz, cal.getTimeZone()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getInstance(Locale)' | |
*/ | |
public void testGetInstanceLocale() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
assertNotNull(cal); | |
assertNotNull(cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getInstance(ULocale)' | |
*/ | |
public void testGetInstanceULocale() { | |
Calendar cal = Calendar.getInstance(ULocale.US); | |
assertNotNull(cal); | |
assertNotNull(cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getInstance(TimeZone, Locale)' | |
*/ | |
public void testGetInstanceTimeZoneLocale() { | |
TimeZone tz = TimeZone.getTimeZone("America/New_York"); | |
Calendar cal = Calendar.getInstance(tz, Locale.US); | |
assertNotNull(cal); | |
assertNotNull(cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getInstance(TimeZone, ULocale)' | |
*/ | |
public void testGetInstanceTimeZoneULocale() { | |
TimeZone tz = TimeZone.getTimeZone("America/New_York"); | |
Calendar cal = Calendar.getInstance(tz, ULocale.US); | |
assertNotNull(cal); | |
assertNotNull(cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getAvailableLocales()' | |
*/ | |
public void testGetAvailableLocales() { | |
assertNotNull(Calendar.getAvailableLocales()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getAvailableULocales()' | |
*/ | |
public void testGetAvailableULocales() { | |
assertNotNull(Calendar.getAvailableULocales()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getTime()' | |
*/ | |
public void testGetTime() { | |
Calendar cal = Calendar.getInstance(); | |
assertNotNull(cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.setTime(Date)' | |
*/ | |
public void testSetTime() { | |
Calendar cal = Calendar.getInstance(); | |
cal.clear(); | |
cal.set(2006, 0, 20, 9, 30, 0); | |
Date date = cal.getTime(); | |
cal = Calendar.getInstance(); | |
cal.setTime(date); | |
assertEquals(date, cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getTimeInMillis()' | |
*/ | |
public void testGetTimeInMillis() { | |
Calendar cal = Calendar.getInstance(); | |
assertTrue(0 != cal.getTimeInMillis()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.setTimeInMillis(long)' | |
*/ | |
public void testSetTimeInMillis() { | |
Calendar cal = Calendar.getInstance(); | |
cal.clear(); | |
cal.set(2006, 0, 20, 9, 30, 0); | |
long millis = cal.getTimeInMillis(); | |
Date date = cal.getTime(); | |
cal = Calendar.getInstance(); | |
cal.setTimeInMillis(millis); | |
assertEquals(date, cal.getTime()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.get(int)' | |
*/ | |
public void testGet() { | |
Calendar cal = Calendar.getInstance(); | |
cal.clear(); | |
cal.set(2006, 0, 20, 9, 30, 0); | |
assertEquals(0, cal.get(Calendar.MONTH)); | |
assertEquals(20, cal.get(Calendar.DAY_OF_MONTH)); | |
assertEquals(30, cal.get(Calendar.MINUTE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.set(int, int)' | |
*/ | |
public void testSetIntInt() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Calendar.YEAR, 1977); | |
assertEquals(1977, cal.get(Calendar.YEAR)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.set(int, int, int)' | |
*/ | |
public void testSetIntIntInt() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1997, 9, 15); | |
assertEquals(15, cal.get(Calendar.DATE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.set(int, int, int, int, int)' | |
*/ | |
public void testSetIntIntIntIntInt() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1997, 9, 15, 14, 25); | |
assertEquals(25, cal.get(Calendar.MINUTE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.set(int, int, int, int, int, int)' | |
*/ | |
public void testSetIntIntIntIntIntInt() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1997, 9, 15, 14, 25, 51); | |
assertEquals(51, cal.get(Calendar.SECOND)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.clear()' | |
*/ | |
public void testClear() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1997, 9, 15, 14, 25, 51); | |
cal.clear(); | |
assertEquals(0, cal.get(Calendar.MONTH)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.clear(int)' | |
*/ | |
public void testClearInt() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1997, 9, 15, 14, 25, 51); | |
assertTrue(cal.isSet(Calendar.DAY_OF_MONTH)); | |
cal.clear(Calendar.DAY_OF_MONTH); | |
assertFalse(cal.isSet(Calendar.DAY_OF_MONTH)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.isSet(int)' | |
*/ | |
public void testIsSet() { | |
// see testClearInt | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.equals(Object)' | |
*/ | |
public void testEqualsObject() { | |
// tested by testHashCode | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.isEquivalentTo(Calendar)' | |
*/ | |
public void testIsEquivalentTo() { | |
Calendar cal = Calendar.getInstance(); | |
Calendar cal2 = Calendar.getInstance(); | |
cal2.set(1994, 6, 21, 8, 7); | |
assertTrue(cal.isEquivalentTo(cal2)); | |
cal.setTimeZone(TimeZone.getTimeZone("CST")); | |
cal2.setTimeZone(TimeZone.getTimeZone("PDT")); | |
assertFalse(cal.isEquivalentTo(cal2)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.before(Object)' | |
*/ | |
public void testBefore() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Calendar.YEAR, 1990); | |
assertTrue(cal.before(new Date())); | |
assertTrue(cal.before(Calendar.getInstance())); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.after(Object)' | |
*/ | |
public void testAfter() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Calendar.YEAR, 3058); | |
assertTrue(cal.after(new Date())); | |
assertTrue(cal.after(Calendar.getInstance())); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getActualMaximum(int)' | |
*/ | |
public void testGetActualMaximum() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
assertEquals(11, cal.getActualMaximum(Calendar.MONTH)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getActualMinimum(int)' | |
*/ | |
public void testGetActualMinimum() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
assertEquals(0, cal.getActualMinimum(Calendar.MONTH)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.roll(int, boolean)' | |
*/ | |
public void testRollIntBoolean() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
cal.set(1997, 1, 27); | |
cal.roll(Calendar.DATE, true); | |
assertEquals(28, cal.get(Calendar.DATE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.roll(int, int)' | |
*/ | |
public void testRollIntInt() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
cal.set(1997, 1, 27); | |
cal.roll(Calendar.DATE, 3); | |
assertEquals(2, cal.get(Calendar.DATE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.add(int, int)' | |
*/ | |
public void testAdd() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
cal.set(1997, 1, 27); | |
cal.add(Calendar.DATE, 3); | |
assertEquals(2, cal.get(Calendar.DATE)); | |
assertEquals(2, cal.get(Calendar.MONTH)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getDisplayName(Locale)' | |
*/ | |
public void testGetDisplayNameLocale() { | |
Calendar cal = Calendar.getInstance(); | |
assertEquals("Gregorian Calendar", cal.getDisplayName(Locale.US)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getDisplayName(ULocale)' | |
*/ | |
public void testGetDisplayNameULocale() { | |
Calendar cal = Calendar.getInstance(); | |
assertEquals("Gregorian Calendar", cal.getDisplayName(ULocale.US)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.compareTo(Calendar)' | |
*/ | |
public void testCompareToCalendar() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Calendar.YEAR, 1990); | |
assertTrue(0 > cal.compareTo(Calendar.getInstance())); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.compareTo(Object)' | |
*/ | |
public void testCompareToObject() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Calendar.YEAR, 1990); | |
assertTrue(0 > cal.compareTo(Calendar.getInstance())); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getDateTimeFormat(int, int, Locale)' | |
*/ | |
public void testGetDateTimeFormatIntIntLocale() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1990, 8, 16, 20, 3); | |
DateFormat df = cal.getDateTimeFormat(DateFormat.LONG, DateFormat.SHORT, Locale.US); | |
assertEquals("September 16, 1990 8:03 PM", df.format(cal)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getDateTimeFormat(int, int, ULocale)' | |
*/ | |
public void testGetDateTimeFormatIntIntULocale() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(1990, 8, 16, 20, 3); | |
DateFormat df = cal.getDateTimeFormat(DateFormat.LONG, DateFormat.SHORT, ULocale.US); | |
assertEquals("September 16, 1990 8:03 PM", df.format(cal)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.fieldDifference(Date, int)' | |
*/ | |
public void testFieldDifference() { | |
Calendar cal = Calendar.getInstance(); | |
cal.set(Calendar.DAY_OF_MONTH, 0); | |
Date date = cal.getTime(); | |
cal.add(Calendar.DAY_OF_MONTH, 5); | |
assertEquals(-5, cal.fieldDifference(date, Calendar.DAY_OF_MONTH)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getTimeZone()' | |
*/ | |
public void testGetTimeZone() { | |
Calendar cal = Calendar.getInstance(); | |
assertNotNull(cal.getTimeZone()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.setTimeZone(TimeZone)' | |
*/ | |
public void testSetTimeZone() { | |
Calendar cal = Calendar.getInstance(); | |
TimeZone value1 = cal.getTimeZone(); | |
String tzn = "PDT".equals(value1.getID()) ? "CST" : "PDT"; | |
TimeZone value2 = TimeZone.getTimeZone(tzn); | |
cal.setTimeZone(value2); | |
TimeZone result = cal.getTimeZone(); | |
assertNotEqual(value1, result); | |
assertEquals(value2, result); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.setLenient(boolean)' | |
*/ | |
public void testSetLenient() { | |
Calendar cal = Calendar.getInstance(); | |
boolean lenient = cal.isLenient(); | |
cal.setLenient(!lenient); | |
assertFalse(lenient == cal.isLenient()); | |
// not testing if it has the expected effect | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.isLenient()' | |
*/ | |
public void testIsLenient() { | |
// tested by testSetLenient | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.setFirstDayOfWeek(int)' | |
*/ | |
public void testSetFirstDayOfWeek() { | |
Calendar cal = Calendar.getInstance(); | |
int firstDay = cal.getFirstDayOfWeek(); | |
cal.setFirstDayOfWeek(firstDay+1); | |
assertEquals(firstDay+1, cal.getFirstDayOfWeek()); | |
// don't test functionality | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getFirstDayOfWeek()' | |
*/ | |
public void testGetFirstDayOfWeek() { | |
// tested by testSetFirstDayOfWeek | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.setMinimalDaysInFirstWeek(int)' | |
*/ | |
public void testSetMinimalDaysInFirstWeek() { | |
Calendar cal = Calendar.getInstance(); | |
int firstDay = cal.getMinimalDaysInFirstWeek(); | |
cal.setMinimalDaysInFirstWeek(firstDay+1); | |
assertEquals(firstDay+1, cal.getMinimalDaysInFirstWeek()); | |
// don't test functionality | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getMinimalDaysInFirstWeek()' | |
*/ | |
public void testGetMinimalDaysInFirstWeek() { | |
// tested by testSetMinimalDaysInFirstWeek | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getMinimum(int)' | |
*/ | |
public void testGetMinimum() { | |
Calendar cal = Calendar.getInstance(); | |
assertEquals(1, cal.getMinimum(Calendar.DAY_OF_WEEK)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getMaximum(int)' | |
*/ | |
public void testGetMaximum() { | |
Calendar cal = Calendar.getInstance(); | |
assertEquals(7, cal.getMaximum(Calendar.DAY_OF_WEEK)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getGreatestMinimum(int)' | |
*/ | |
public void testGetGreatestMinimum() { | |
Calendar cal = Calendar.getInstance(); | |
assertEquals(1, cal.getGreatestMinimum(Calendar.DATE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getLeastMaximum(int)' | |
*/ | |
public void testGetLeastMaximum() { | |
Calendar cal = Calendar.getInstance(); | |
assertEquals(28, cal.getLeastMaximum(Calendar.DATE)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getDayOfWeekType(int)' | |
*/ | |
public void testGetDayOfWeekType() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
assertEquals(Calendar.WEEKDAY, cal.getDayOfWeekType(Calendar.FRIDAY)); | |
assertEquals(Calendar.WEEKEND, cal.getDayOfWeekType(Calendar.SATURDAY)); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getWeekendTransition(int)' | |
*/ | |
public void testGetWeekendTransition() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
try { | |
cal.getWeekendTransition(Calendar.WEEKEND_ONSET); | |
fail("expected IllegalArgumentException from getWeekendTransition"); | |
} | |
catch (UnsupportedOperationException e) { | |
// ok | |
} | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.isWeekend(Date)' | |
*/ | |
public void testIsWeekendDate() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); | |
assertTrue(cal.isWeekend(cal.getTime())); | |
cal.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); | |
assertFalse(cal.isWeekend(cal.getTime())); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.isWeekend()' | |
*/ | |
public void testIsWeekend() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
cal.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY); | |
assertTrue(cal.isWeekend()); | |
cal.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); | |
assertFalse(cal.isWeekend()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.clone()' | |
*/ | |
public void testClone() { | |
// tested by testHashCode | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.toString()' | |
*/ | |
public void testToString() { | |
Calendar cal = Calendar.getInstance(); | |
assertNotNull(cal.toString()); | |
} | |
/* | |
* Test method for 'com.ibm.icu.util.Calendar.getType()' | |
*/ | |
public void testGetType() { | |
Calendar cal = Calendar.getInstance(Locale.US); | |
assertEquals("gregorian", cal.getType()); | |
} | |
} |