| /* |
| ******************************************************************************* |
| * 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()); |
| } |
| } |