blob: 3237a9403634b07afaa69b5f24dd2e900db90631 [file] [log] [blame]
/*
*******************************************************************************
* 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());
}
}