CalendarTest.java :  » Internationalization-Localization » icu4j » com » ibm » icu » tests » Java Open Source

Java Open Source » Internationalization Localization » icu4j 
icu4j » com » ibm » icu » tests » CalendarTest.java
/*
 *******************************************************************************
 * Copyright (C) 2006, 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();
    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("Calendar", cal.getDisplayName(Locale.US));
  }

  /*
   * Test method for 'com.ibm.icu.util.Calendar.getDisplayName(ULocale)'
   */
  public void testGetDisplayNameULocale() {
    Calendar cal = Calendar.getInstance();
    assertEquals("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((Object)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 (IllegalArgumentException 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());
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.