summaryrefslogtreecommitdiffstats
path: root/luni
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2010-03-30 17:47:11 -0700
committerElliott Hughes <enh@google.com>2010-03-31 08:53:56 -0700
commit2e43b95339579a2ea8b749d7598677bb44f2770f (patch)
tree23fd4a4b544de3146ae0516e745820a03f9ad6d7 /luni
parentda759115c60aed5f46c5dfa46016c48f0ac26057 (diff)
downloadlibcore-2e43b95339579a2ea8b749d7598677bb44f2770f.zip
libcore-2e43b95339579a2ea8b749d7598677bb44f2770f.tar.gz
libcore-2e43b95339579a2ea8b749d7598677bb44f2770f.tar.bz2
Add Java 6's Calendar API changes.
Also correct two javadoc mistakes I added, and bring back the latest harmony java6 CalendarTest. Bug: 2497395 Change-Id: If481390948ca93d5f709a8ed4585991889de9f8b
Diffstat (limited to 'luni')
-rw-r--r--luni/src/main/java/java/util/Calendar.java133
-rw-r--r--luni/src/test/java/tests/api/java/util/CalendarTest.java2157
2 files changed, 1089 insertions, 1201 deletions
diff --git a/luni/src/main/java/java/util/Calendar.java b/luni/src/main/java/java/util/Calendar.java
index 7c78afa..167db6c 100644
--- a/luni/src/main/java/java/util/Calendar.java
+++ b/luni/src/main/java/java/util/Calendar.java
@@ -17,13 +17,13 @@
package java.util;
+import com.ibm.icu4jni.util.LocaleData;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectStreamField;
import java.io.Serializable;
-
-import com.ibm.icu4jni.util.LocaleData;
+import java.text.DateFormatSymbols;
/**
* {@code Calendar} is an abstract base class for converting between a
@@ -668,11 +668,35 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable<Ca
*/
public static final int PM = 1;
- private static String[] fieldNames = { "ERA=", "YEAR=", "MONTH=", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- "WEEK_OF_YEAR=", "WEEK_OF_MONTH=", "DAY_OF_MONTH=", "DAY_OF_YEAR=", //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "DAY_OF_WEEK=", "DAY_OF_WEEK_IN_MONTH=", "AM_PM=", "HOUR=", //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$
- "HOUR_OF_DAY", "MINUTE=", "SECOND=", "MILLISECOND=", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "ZONE_OFFSET=", "DST_OFFSET=" }; //$NON-NLS-1$ //$NON-NLS-2$
+ /**
+ * Requests both {@code SHORT} and {@code LONG} styles in the map returned by
+ * {@link getDisplayNames}.
+ * @since 1.6
+ * @hide
+ */
+ public static final int ALL_STYLES = 0;
+
+ /**
+ * Requests short names (such as "Jan") from
+ * {@link getDisplayName} or {@link getDisplayNames}.
+ * @since 1.6
+ * @hide
+ */
+ public static final int SHORT = 1;
+
+ /**
+ * Requests long names (such as "January") from
+ * {@link getDisplayName} or {@link getDisplayNames}.
+ * @since 1.6
+ * @hide
+ */
+ public static final int LONG = 2;
+
+ private static final String[] FIELD_NAMES = { "ERA", "YEAR", "MONTH",
+ "WEEK_OF_YEAR", "WEEK_OF_MONTH", "DAY_OF_MONTH", "DAY_OF_YEAR",
+ "DAY_OF_WEEK", "DAY_OF_WEEK_IN_MONTH", "AM_PM", "HOUR",
+ "HOUR_OF_DAY", "MINUTE", "SECOND", "MILLISECOND",
+ "ZONE_OFFSET", "DST_OFFSET" };
/**
* Constructs a {@code Calendar} instance using the default {@code TimeZone} and {@code Locale}.
@@ -1348,7 +1372,7 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable<Ca
+ minimalDaysInFirstWeek);
for (int i = 0; i < FIELD_COUNT; i++) {
result.append(',');
- result.append(fieldNames[i]);
+ result.append(FIELD_NAMES[i]);
result.append('=');
if (isSet[i]) {
result.append(fields[i]);
@@ -1390,6 +1414,99 @@ public abstract class Calendar implements Serializable, Cloneable, Comparable<Ca
return -1;
}
+ /**
+ * Returns a human-readable string for the value of {@code field}
+ * using the given style and locale. If no string is available, returns null.
+ * The value is retrieved by invoking {@code get(field)}.
+ *
+ * <p>For example, {@code getDisplayName(MONTH, SHORT, Locale.US)} will return "Jan"
+ * while {@code getDisplayName(MONTH, LONG, Locale.US)} will return "January".
+ *
+ * @param field the field
+ * @param style {@code SHORT} or {@code LONG}
+ * @param locale the locale
+ * @return the display name, or null
+ * @throws NullPointerException if {@code locale == null}
+ * @throws IllegalArgumentException if {@code field} or {@code style} is invalid
+ * @since 1.6
+ * @hide
+ */
+ public String getDisplayName(int field, int style, Locale locale) {
+ // TODO: the RI's documentation says ALL_STYLES is invalid, but actually treats it as SHORT.
+ if (style == ALL_STYLES) {
+ style = SHORT;
+ }
+ String[] array = getDisplayNameArray(field, style, locale);
+ int value = get(field);
+ return (array != null) ? array[value] : null;
+ }
+
+ private String[] getDisplayNameArray(int field, int style, Locale locale) {
+ if (field < 0 || field >= FIELD_COUNT) {
+ throw new IllegalArgumentException("bad field " + field);
+ }
+ checkStyle(style);
+ DateFormatSymbols dfs = DateFormatSymbols.getInstance(locale);
+ switch (field) {
+ case AM_PM:
+ return dfs.getAmPmStrings();
+ case DAY_OF_WEEK:
+ return (style == LONG) ? dfs.getWeekdays() : dfs.getShortWeekdays();
+ case ERA:
+ return dfs.getEras();
+ case MONTH:
+ return (style == LONG) ? dfs.getMonths() : dfs.getShortMonths();
+ }
+ return null;
+ }
+
+ private static void checkStyle(int style) {
+ if (style != ALL_STYLES && style != SHORT && style != LONG) {
+ throw new IllegalArgumentException("bad style " + style);
+ }
+ }
+
+ /**
+ * Returns a map of human-readable strings to corresponding values,
+ * for the given field, style, and locale.
+ * Returns null if no strings are available.
+ *
+ * <p>For example, {@code getDisplayNames(MONTH, ALL_STYLES, Locale.US)} would
+ * contain mappings from "Jan" and "January" to {@link JANUARY}, and so on.
+ *
+ * @param field the field
+ * @param style {@code SHORT}, {@code LONG}, or {@code ALL_STYLES}
+ * @param locale the locale
+ * @return the display name, or null
+ * @throws NullPointerException if {@code locale == null}
+ * @throws IllegalArgumentException if {@code field} or {@code style} is invalid
+ * @since 1.6
+ * @hide
+ */
+ public Map<String, Integer> getDisplayNames(int field, int style, Locale locale) {
+ checkStyle(style);
+ complete();
+ Map<String, Integer> result = new HashMap<String, Integer>();
+ if (style == SHORT || style == ALL_STYLES) {
+ insertValuesInMap(result, getDisplayNameArray(field, SHORT, locale));
+ }
+ if (style == LONG || style == ALL_STYLES) {
+ insertValuesInMap(result, getDisplayNameArray(field, LONG, locale));
+ }
+ return result.isEmpty() ? null : result;
+ }
+
+ private static void insertValuesInMap(Map<String, Integer> map, String[] values) {
+ if (values == null) {
+ return;
+ }
+ for (int i = 0; i < values.length; ++i) {
+ if (values[i] != null && !values[i].isEmpty()) {
+ map.put(values[i], i);
+ }
+ }
+ }
+
@SuppressWarnings("nls")
private static final ObjectStreamField[] serialPersistentFields = {
new ObjectStreamField("areFieldsSet", Boolean.TYPE), //$NON-NLS-1$
diff --git a/luni/src/test/java/tests/api/java/util/CalendarTest.java b/luni/src/test/java/tests/api/java/util/CalendarTest.java
index 4ffe2c6..646c680 100644
--- a/luni/src/test/java/tests/api/java/util/CalendarTest.java
+++ b/luni/src/test/java/tests/api/java/util/CalendarTest.java
@@ -17,369 +17,372 @@
package tests.api.java.util;
-import dalvik.annotation.TestLevel;
-import dalvik.annotation.TestTargetClass;
-import dalvik.annotation.TestTargetNew;
-import dalvik.annotation.TestTargets;
-import tests.support.Support_Locale;
-
+import java.text.DateFormatSymbols;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.TimeZone;
-@TestTargetClass(Calendar.class)
-public class CalendarTest extends junit.framework.TestCase {
-
- Locale defaultLocale;
-
- /**
- * @tests java.util.Calendar#set(int, int)
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "set",
- args = {int.class, int.class}
- )
- public void test_setII() {
- // Test for correct result defined by the last set field
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- assertTrue("Incorrect result 0: " + cal.getTime().getTime(), cal
- .getTime().getTime() == 1009861200000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- assertTrue("Incorrect result 0a: " + cal.getTime(), cal.getTime()
- .getTime() == 1014958800000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 24);
- assertTrue("Incorrect result 0b: " + cal.getTime(), cal.getTime()
- .getTime() == 1011848400000L);
-
- cal.set(Calendar.MONTH, Calendar.OCTOBER);
- cal.set(Calendar.DATE, 31);
- cal.set(Calendar.MONTH, Calendar.NOVEMBER);
- cal.set(Calendar.DATE, 26);
- assertTrue("Incorrect month: " + cal.get(Calendar.MONTH), cal
- .get(Calendar.MONTH) == Calendar.NOVEMBER);
-
- int dow = cal.get(Calendar.DAY_OF_WEEK);
- cal.set(Calendar.DATE, 27);
- assertTrue("Incorrect DAY_OF_WEEK: " + cal.get(Calendar.DAY_OF_WEEK)
- + " expected: " + dow, cal.get(Calendar.DAY_OF_WEEK) != dow);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- assertTrue("Incorrect result 0c1: " + cal.getTime().getTime(), cal
- .getTime().getTime() == 1010379600000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
- assertTrue("Incorrect result 0c2: " + cal.getTime().getTime(), cal
- .getTime().getTime() == 1009861200000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
- assertTrue("Incorrect result 0c3: " + cal.getTime(), cal.getTime()
- .getTime() == 1010034000000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_MONTH, 2);
- assertTrue("Incorrect result 0d: " + cal.getTime(), cal.getTime()
- .getTime() == 1010293200000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);
- assertTrue("Incorrect result 0e: " + cal.getTime(), cal.getTime()
- .getTime() == 1010898000000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- assertTrue("Incorrect result 0f: " + cal.getTime(), cal.getTime()
- .getTime() == 1015736400000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 24);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- assertTrue("Incorrect result 0g: " + cal.getTime(), cal.getTime()
- .getTime() == 1011848400000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.get(Calendar.WEEK_OF_YEAR); // Force fields to compute
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- assertTrue("Incorrect result 0h: " + cal.getTime(), cal.getTime()
- .getTime() == 1015909200000L);
-
- // WEEK_OF_YEAR has priority over MONTH/DATE
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_YEAR, 170);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- cal.set(Calendar.MONTH, Calendar.JANUARY);
- cal.set(Calendar.DATE, 5);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- assertTrue("Incorrect result 1: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // WEEK_OF_YEAR has priority over MONTH/DATE
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- cal.set(Calendar.MONTH, Calendar.JANUARY);
- cal.set(Calendar.DATE, 5);
- cal.set(Calendar.DAY_OF_YEAR, 170);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- assertTrue("Incorrect result 1a: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DAY_OF_WEEK has no effect when other fields not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
- assertTrue("Incorrect result 1b: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // WEEK_OF_MONTH has priority
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
- cal.set(Calendar.WEEK_OF_MONTH, 3);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.DATE, 5);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- assertTrue("Incorrect result 2: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DAY_OF_WEEK_IN_MONTH has priority over WEEK_OF_YEAR
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.DATE, 5);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- assertTrue("Incorrect result 3: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // WEEK_OF_MONTH has priority, MONTH not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
- cal.set(Calendar.WEEK_OF_MONTH, 3);
- cal.set(Calendar.DATE, 25);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- assertTrue("Incorrect result 4: " + cal.getTime(), cal.getTime()
- .getTime() == 1010984400000L);
-
- // WEEK_OF_YEAR has priority when MONTH set last and DAY_OF_WEEK set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- cal.set(Calendar.DATE, 25);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- cal.set(Calendar.MONTH, Calendar.JANUARY);
- assertTrue("Incorrect result 5: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // Use MONTH/DATE when WEEK_OF_YEAR set but not DAY_OF_WEEK
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- assertTrue("Incorrect result 5a: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // Use MONTH/DATE when DAY_OF_WEEK is not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.WEEK_OF_MONTH, 1);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- assertTrue("Incorrect result 5b: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // WEEK_OF_MONTH has priority
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DATE, 5);
- cal.set(Calendar.WEEK_OF_MONTH, 3);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- assertTrue("Incorrect result 5c: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DATE has priority when set last
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.DATE, 11);
- assertTrue("Incorrect result 6: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DATE has priority when set last, MONTH not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 12);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- cal.set(Calendar.DATE, 14);
- assertTrue("Incorrect result 7: " + cal.getTime(), cal.getTime()
- .getTime() == 1010984400000L);
-
- // DAY_OF_YEAR has priority when MONTH set last and DATE not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_YEAR, 70);
- cal.set(Calendar.MONTH, Calendar.JANUARY);
- assertTrue("Incorrect result 8: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DAY/MONTH has priority when DATE set after DAY_OF_YEAR
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_YEAR, 170);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- assertTrue("Incorrect result 8a: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DAY_OF_YEAR has priority when set after DATE
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 15);
- cal.set(Calendar.DAY_OF_YEAR, 70);
- cal.set(Calendar.MONTH, Calendar.JANUARY);
- assertTrue("Incorrect result 8b: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DATE has priority when set last
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_YEAR, 70);
- cal.set(Calendar.DATE, 14);
- assertTrue("Incorrect result 9: " + cal.getTime(), cal.getTime()
- .getTime() == 1010984400000L);
-
- // DATE has priority when set last
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_YEAR, 15);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
- cal.set(Calendar.DATE, 14);
- assertTrue("Incorrect result 9a: " + cal.getTime(), cal.getTime()
- .getTime() == 1010984400000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- cal.set(Calendar.DATE, 14);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- assertTrue("Incorrect result 9b: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 14);
- cal.set(Calendar.WEEK_OF_YEAR, 11);
- assertTrue("Incorrect result 9c: " + cal.getTime(), cal.getTime()
- .getTime() == 1010984400000L);
+import org.apache.harmony.testframework.serialization.SerializationTest;
+public class CalendarTest extends junit.framework.TestCase {
+
+ Locale defaultLocale;
+
+ /**
+ * @tests java.util.Calendar#set(int, int)
+ */
+ public void test_setII() {
+ // Test for correct result defined by the last set field
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("EST"));
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ assertTrue("Incorrect result 0: " + cal.getTime().getTime(), cal
+ .getTime().getTime() == 1009861200000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ assertTrue("Incorrect result 0a: " + cal.getTime(), cal.getTime()
+ .getTime() == 1014958800000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 24);
+ assertTrue("Incorrect result 0b: " + cal.getTime(), cal.getTime()
+ .getTime() == 1011848400000L);
+
+ cal.set(Calendar.MONTH, Calendar.OCTOBER);
+ cal.set(Calendar.DATE, 31);
+ cal.set(Calendar.MONTH, Calendar.NOVEMBER);
+ cal.set(Calendar.DATE, 26);
+ assertTrue("Incorrect month: " + cal.get(Calendar.MONTH), cal
+ .get(Calendar.MONTH) == Calendar.NOVEMBER);
+
+ int dow = cal.get(Calendar.DAY_OF_WEEK);
+ cal.set(Calendar.DATE, 27);
+ assertTrue("Incorrect DAY_OF_WEEK: " + cal.get(Calendar.DAY_OF_WEEK)
+ + " expected: " + dow, cal.get(Calendar.DAY_OF_WEEK) != dow);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ assertTrue("Incorrect result 0c1: " + cal.getTime().getTime(), cal
+ .getTime().getTime() == 1010379600000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
+ assertTrue("Incorrect result 0c2: " + cal.getTime().getTime(), cal
+ .getTime().getTime() == 1009861200000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
+ assertTrue("Incorrect result 0c3: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010034000000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_MONTH, 2);
+ assertTrue("Incorrect result 0d: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010293200000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);
+ assertTrue("Incorrect result 0e: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010898000000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ assertTrue("Incorrect result 0f: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015736400000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 24);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ assertTrue("Incorrect result 0g: " + cal.getTime(), cal.getTime()
+ .getTime() == 1011848400000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.get(Calendar.WEEK_OF_YEAR); // Force fields to compute
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ assertTrue("Incorrect result 0h: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015909200000L);
+
+ // WEEK_OF_YEAR has priority over MONTH/DATE
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_YEAR, 170);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ cal.set(Calendar.MONTH, Calendar.JANUARY);
+ cal.set(Calendar.DATE, 5);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ assertTrue("Incorrect result 1: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // WEEK_OF_YEAR has priority over MONTH/DATE
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ cal.set(Calendar.MONTH, Calendar.JANUARY);
+ cal.set(Calendar.DATE, 5);
+ cal.set(Calendar.DAY_OF_YEAR, 170);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ assertTrue("Incorrect result 1a: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DAY_OF_WEEK has no effect when other fields not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
+ assertTrue("Incorrect result 1b: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+ // Regression for HARMONY-4384
+ // Set DAY_OF_WEEK without DATE
cal.clear();
cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.WEEK_OF_MONTH, 1);
- cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.DATE, 11);
- assertTrue("Incorrect result 9d: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // DAY_OF_YEAR has priority when DAY_OF_MONTH set last and other fields
- // not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_YEAR, 70);
cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
- assertTrue("Incorrect result 10: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // MONTH/DATE has priority when DAY_OF_WEEK_IN_MONTH set last but
- // DAY_OF_WEEK not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
- assertTrue("Incorrect result 11: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // MONTH/DATE has priority when WEEK_OF_YEAR set last but DAY_OF_WEEK
- // not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.WEEK_OF_YEAR, 15);
- assertTrue("Incorrect result 12: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
-
- // MONTH/DATE has priority when WEEK_OF_MONTH set last but DAY_OF_WEEK
- // not set
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DATE, 11);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.WEEK_OF_MONTH, 1);
- assertTrue("Incorrect result 13: " + cal.getTime(), cal.getTime()
- .getTime() == 1015822800000L);
+ assertEquals("Incorrect result 1b: " + cal.getTime(), 1015304400000L, cal.getTime()
+ .getTime());
+
- // Ensure last date field set is reset after computing
- cal.clear();
- cal.set(Calendar.YEAR, 2002);
- cal.set(Calendar.DAY_OF_YEAR, 111);
- cal.get(Calendar.YEAR);
- cal.set(Calendar.MONTH, Calendar.MARCH);
- cal.set(Calendar.AM_PM, Calendar.AM);
- assertTrue("Incorrect result 14: " + cal.getTime(), cal.getTime()
- .getTime() == 1016686800000L);
-
- int hour = cal.get(Calendar.HOUR);
- cal.set(Calendar.HOUR, hour);
- cal.set(Calendar.AM_PM, Calendar.PM);
- assertEquals("AM_PM not changed", Calendar.PM, cal.get(Calendar.AM_PM));
- // setting AM_PM without HOUR should not have any affect
- cal.set(Calendar.AM_PM, Calendar.AM);
- assertEquals("AM_PM was changed 1",
- Calendar.AM, cal.get(Calendar.AM_PM));
- int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
- hour = cal.get(Calendar.HOUR);
- cal.set(Calendar.AM_PM, Calendar.PM);
- assertEquals("AM_PM was changed 2",
- Calendar.PM, cal.get(Calendar.AM_PM));
- assertEquals(hour, cal.get(Calendar.HOUR));
- assertEquals(hourOfDay + 12, cal.get(Calendar.HOUR_OF_DAY));
+ // WEEK_OF_MONTH has priority
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
+ cal.set(Calendar.WEEK_OF_MONTH, 3);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.DATE, 5);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ assertTrue("Incorrect result 2: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DAY_OF_WEEK_IN_MONTH has priority over WEEK_OF_YEAR
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 2);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.DATE, 5);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ assertTrue("Incorrect result 3: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // WEEK_OF_MONTH has priority, MONTH not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
+ cal.set(Calendar.WEEK_OF_MONTH, 3);
+ cal.set(Calendar.DATE, 25);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ assertTrue("Incorrect result 4: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010984400000L);
+
+ // WEEK_OF_YEAR has priority when MONTH set last and DAY_OF_WEEK set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ cal.set(Calendar.DATE, 25);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ cal.set(Calendar.MONTH, Calendar.JANUARY);
+ assertTrue("Incorrect result 5: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // Use MONTH/DATE when WEEK_OF_YEAR set but not DAY_OF_WEEK
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ assertTrue("Incorrect result 5a: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // Use MONTH/DATE when DAY_OF_WEEK is not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.WEEK_OF_MONTH, 1);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ assertTrue("Incorrect result 5b: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // WEEK_OF_MONTH has priority
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DATE, 5);
+ cal.set(Calendar.WEEK_OF_MONTH, 3);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ assertTrue("Incorrect result 5c: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DATE has priority when set last
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.DATE, 11);
+ assertTrue("Incorrect result 6: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DATE has priority when set last, MONTH not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 12);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ cal.set(Calendar.DATE, 14);
+ assertTrue("Incorrect result 7: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010984400000L);
+
+ // DAY_OF_YEAR has priority when MONTH set last and DATE not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_YEAR, 70);
+ cal.set(Calendar.MONTH, Calendar.JANUARY);
+ assertTrue("Incorrect result 8: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DAY/MONTH has priority when DATE set after DAY_OF_YEAR
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_YEAR, 170);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ assertTrue("Incorrect result 8a: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DAY_OF_YEAR has priority when set after DATE
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 15);
+ cal.set(Calendar.DAY_OF_YEAR, 70);
+ cal.set(Calendar.MONTH, Calendar.JANUARY);
+ assertTrue("Incorrect result 8b: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DATE has priority when set last
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_YEAR, 70);
+ cal.set(Calendar.DATE, 14);
+ assertTrue("Incorrect result 9: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010984400000L);
+
+ // DATE has priority when set last
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_YEAR, 15);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
+ cal.set(Calendar.DATE, 14);
+ assertTrue("Incorrect result 9a: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010984400000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ cal.set(Calendar.DATE, 14);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ assertTrue("Incorrect result 9b: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 14);
+ cal.set(Calendar.WEEK_OF_YEAR, 11);
+ assertTrue("Incorrect result 9c: " + cal.getTime(), cal.getTime()
+ .getTime() == 1010984400000L);
+
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.WEEK_OF_MONTH, 1);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.DATE, 11);
+ assertTrue("Incorrect result 9d: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // DAY_OF_YEAR has priority when DAY_OF_MONTH set last and other fields
+ // not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_YEAR, 70);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
+ assertTrue("Incorrect result 10: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // MONTH/DATE has priority when DAY_OF_WEEK_IN_MONTH set last but
+ // DAY_OF_WEEK not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, 1);
+ assertTrue("Incorrect result 11: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // MONTH/DATE has priority when WEEK_OF_YEAR set last but DAY_OF_WEEK
+ // not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.WEEK_OF_YEAR, 15);
+ assertTrue("Incorrect result 12: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // MONTH/DATE has priority when WEEK_OF_MONTH set last but DAY_OF_WEEK
+ // not set
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DATE, 11);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.WEEK_OF_MONTH, 1);
+ assertTrue("Incorrect result 13: " + cal.getTime(), cal.getTime()
+ .getTime() == 1015822800000L);
+
+ // Ensure last date field set is reset after computing
+ cal.clear();
+ cal.set(Calendar.YEAR, 2002);
+ cal.set(Calendar.DAY_OF_YEAR, 111);
+ cal.get(Calendar.YEAR);
+ cal.set(Calendar.MONTH, Calendar.MARCH);
+ cal.set(Calendar.AM_PM, Calendar.AM);
+ assertTrue("Incorrect result 14: " + cal.getTime(), cal.getTime()
+ .getTime() == 1016686800000L);
+
+ int hour = cal.get(Calendar.HOUR);
+ cal.set(Calendar.HOUR, hour);
+ cal.set(Calendar.AM_PM, Calendar.PM);
+ assertEquals("AM_PM not changed", Calendar.PM, cal.get(Calendar.AM_PM));
+ // setting AM_PM without HOUR should not have any affect
+ cal.set(Calendar.AM_PM, Calendar.AM);
+ assertEquals("AM_PM was changed 1",
+ Calendar.AM, cal.get(Calendar.AM_PM));
+ int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
+ hour = cal.get(Calendar.HOUR);
+ cal.set(Calendar.AM_PM, Calendar.PM);
+ assertEquals("AM_PM was changed 2",
+ Calendar.PM, cal.get(Calendar.AM_PM));
+ assertEquals(hour, cal.get(Calendar.HOUR));
+ assertEquals(hourOfDay + 12, cal.get(Calendar.HOUR_OF_DAY));
// regression test for Harmony-2122
cal = Calendar.getInstance();
@@ -388,74 +391,40 @@ public class CalendarTest extends junit.framework.TestCase {
cal.set(Calendar.AM_PM, newValue);
newValue = cal.get(Calendar.AM_PM);
assertTrue(newValue != oldValue);
-
- cal.setLenient(false);
-
- try {
- cal.set(-1, 3);
- fail("ArrayIndexOutOfBoundsException expected");
- } catch (ArrayIndexOutOfBoundsException e) {
- //expected
- }
-
- try {
- cal.set(Calendar.FIELD_COUNT + 1, 3);
- fail("ArrayIndexOutOfBoundsException expected");
- } catch (ArrayIndexOutOfBoundsException e) {
- //expected
- }
- }
-
- /**
- * @tests java.util.Calendar#setTime(java.util.Date)
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "setTime",
- args = {java.util.Date.class}
- )
- public void test_setTimeLjava_util_Date() {
- Calendar cal = Calendar.getInstance();
- // Use millisecond time for testing in Core
- cal.setTime(new Date(884581200000L)); // (98, Calendar.JANUARY, 12)
- assertEquals("incorrect millis", 884581200000L, cal.getTime().getTime());
- cal.setTimeZone(TimeZone.getTimeZone("EST"));
- cal.setTime(new Date(943506000000L)); // (99, Calendar.NOVEMBER, 25)
- assertTrue("incorrect fields", cal.get(Calendar.YEAR) == 1999
- && cal.get(Calendar.MONTH) == Calendar.NOVEMBER
- && cal.get(Calendar.DATE) == 25);
- }
-
- /**
- * @tests java.util.Calendar#compareTo(Calendar)
- */
- @TestTargetNew(
- level = TestLevel.PARTIAL_COMPLETE,
- notes = "Verifies NullPointerException.",
- method = "compareTo",
- args = {java.util.Calendar.class}
- )
- public void test_compareToLjava_util_Calendar_null() {
- Calendar cal = Calendar.getInstance();
- try {
- cal.compareTo(null);
- fail("should throw NullPointerException");
- } catch (NullPointerException e) {
- // expected
- }
- }
-
- /**
- * @tests java.util.Calendar#compareTo(Calendar)
- */
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "compareTo",
- args = {java.util.Calendar.class}
- )
- public void test_compareToLjava_util_Calendar() {
+ }
+
+ /**
+ * @tests java.util.Calendar#setTime(java.util.Date)
+ */
+ public void test_setTimeLjava_util_Date() {
+ Calendar cal = Calendar.getInstance();
+ // Use millisecond time for testing in Core
+ cal.setTime(new Date(884581200000L)); // (98, Calendar.JANUARY, 12)
+ assertEquals("incorrect millis", 884581200000L, cal.getTime().getTime());
+ cal.setTimeZone(TimeZone.getTimeZone("EST"));
+ cal.setTime(new Date(943506000000L)); // (99, Calendar.NOVEMBER, 25)
+ assertTrue("incorrect fields", cal.get(Calendar.YEAR) == 1999
+ && cal.get(Calendar.MONTH) == Calendar.NOVEMBER
+ && cal.get(Calendar.DATE) == 25);
+ }
+
+ /**
+ * @tests java.util.Calendar#compareTo(Calendar)
+ */
+ public void test_compareToLjava_util_Calendar_null() {
+ Calendar cal = Calendar.getInstance();
+ try {
+ cal.compareTo(null);
+ fail("should throw NullPointerException");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ /**
+ * @tests java.util.Calendar#compareTo(Calendar)
+ */
+ public void test_compareToLjava_util_Calendar() {
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(1997, 12, 13, 23, 57);
@@ -474,33 +443,11 @@ public class CalendarTest extends junit.framework.TestCase {
anotherCal.clear();
anotherCal.set(1997, 12, 13, 23, 58);
assertEquals(-1, cal.compareTo(anotherCal));
-
- try {
- cal.compareTo(null);
- fail("NullPointerException expected");
- } catch (NullPointerException e) {
- //expected
- }
-
- MockCalendar mc = new MockCalendar();
-
- try {
- cal.compareTo(mc);
- fail("IllegalArgumentException expected");
- } catch (IllegalArgumentException e) {
- //expected
- }
}
/**
* @tests java.util.Calendar#clone()
*/
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "clone",
- args = {}
- )
public void test_clone() {
// Regression for HARMONY-475
Calendar cal = Calendar.getInstance();
@@ -514,17 +461,11 @@ public class CalendarTest extends junit.framework.TestCase {
/**
* @tests java.util.Calendar#getTimeInMillis()
*/
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getTimeInMillis",
- args = {}
- )
public void test_getTimeInMillis() {
Calendar cal = Calendar.getInstance();
int year = Integer.MIN_VALUE + 71;
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));;
+ cal.setTimeZone(TimeZone.getTimeZone("GMT"));
cal.set(Calendar.YEAR, year + 1900);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DATE, 1);
@@ -536,793 +477,623 @@ public class CalendarTest extends junit.framework.TestCase {
assertEquals(6017546357372606464L, cal.getTimeInMillis());
}
+ private static final Locale[] locales = new Locale[] { Locale.getDefault(),
+ Locale.US, Locale.UK, Locale.TAIWAN, Locale.PRC, Locale.KOREA,
+ Locale.JAPAN, Locale.ITALIAN, Locale.GERMAN, Locale.ENGLISH,
+ Locale.CHINA, Locale.CANADA, Locale.FRANCE };
+
/**
- * @tests {@link java.util.Calendar#getActualMaximum(int)}
+ * @tests java.util.Calendar#before(Object)
+ * @tests java.util.Calendar#after(Object)
*/
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getActualMaximum",
- args = {int.class}
- )
- public void test_getActualMaximum_I() {
- Calendar c = new MockCalendar();
- assertEquals("should be equal to 0", 0, c.getActualMaximum(0));
+ public void test_before_after() {
+ Calendar early = Calendar.getInstance();
+ Calendar late = Calendar.getInstance();
+ // test by second
+ early.set(2008, 3, 20, 17, 28, 12);
+ late.set(2008, 3, 20, 17, 28, 22);
+ // test before()
+ assertTrue(early.before(late));
+ assertFalse(early.before(early));
+ assertFalse(late.before(early));
+ // test after();
+ assertTrue(late.after(early));
+ assertFalse(late.after(late));
+ assertFalse(early.after(late));
+
+ // test by minute
+ early.set(2008, 3, 20, 17, 18, 12);
+ late.set(2008, 3, 20, 17, 28, 12);
+ // test before()
+ assertTrue(early.before(late));
+ assertFalse(early.before(early));
+ assertFalse(late.before(early));
+ // test after();
+ assertTrue(late.after(early));
+ assertFalse(late.after(late));
+ assertFalse(early.after(late));
+
+ // test by hour
+ early.set(2008, 3, 20, 17, 28, 12);
+ late.set(2008, 3, 20, 27, 28, 12);
+ // test before()
+ assertTrue(early.before(late));
+ assertFalse(early.before(early));
+ assertFalse(late.before(early));
+ // test after();
+ assertTrue(late.after(early));
+ assertFalse(late.after(late));
+ assertFalse(early.after(late));
+
+ // test by day
+ early.set(2008, 3, 10, 17, 28, 12);
+ late.set(2008, 3, 20, 17, 28, 12);
+ // test before()
+ assertTrue(early.before(late));
+ assertFalse(early.before(early));
+ assertFalse(late.before(early));
+ // test after();
+ assertTrue(late.after(early));
+ assertFalse(late.after(late));
+ assertFalse(early.after(late));
+
+ // test by month
+ early.set(2008, 2, 20, 17, 28, 12);
+ late.set(2008, 3, 20, 17, 28, 12);
+ // test before()
+ assertTrue(early.before(late));
+ assertFalse(early.before(early));
+ assertFalse(late.before(early));
+ // test after();
+ assertTrue(late.after(early));
+ assertFalse(late.after(late));
+ assertFalse(early.after(late));
+
+ // test by year
+ early.set(2007, 3, 20, 17, 28, 12);
+ late.set(2008, 3, 20, 17, 28, 12);
+ // test before()
+ assertTrue(early.before(late));
+ assertFalse(early.before(early));
+ assertFalse(late.before(early));
+ // test after();
+ assertTrue(late.after(early));
+ assertFalse(late.after(late));
+ assertFalse(early.after(late));
}
-
+
/**
- * @tests {@link java.util.Calendar#getActualMinimum(int)}
+ * @tests java.util.Calendar#clear()
+ * @tests java.util.Calendar#clear(int)
*/
- @TestTargets({
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getActualMinimum",
- args = {int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "Calendar",
- args = {}
- )
- })
- public void test_getActualMinimum_I() {
- Calendar c = new MockCalendar();
- assertEquals("should be equal to 0", 0, c.getActualMinimum(0));
- }
-
- private class MockCalendar extends Calendar {
-
- public MockCalendar() {
- super();
- }
-
- public MockCalendar(TimeZone default1, Locale germany) {
- super(default1, germany);
- }
-
- @Override
- public void add(int field, int value) {
- }
-
- @Override
- protected void computeFields() {
- }
-
- @Override
- protected void computeTime() {
- throw new IllegalArgumentException();
- }
-
- @Override
- public int getGreatestMinimum(int field) {
- return 0;
- }
-
- @Override
- public int getLeastMaximum(int field) {
- return 0;
- }
-
- @Override
- public int getMaximum(int field) {
- return 0;
- }
-
- @Override
- public int getMinimum(int field) {
- return 0;
- }
-
- @Override
- public void roll(int field, boolean increment) {
- }
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "Calendar",
- args = {java.util.TimeZone.class, java.util.Locale.class}
- )
- public void test_ConstructorLjava_utilTimeZoneLjava_util_Locale() {
- assertNotNull(new MockCalendar(TimeZone.getDefault(), Locale.GERMANY));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "Test calls dummy implementation of abstract method.",
- method = "add",
- args = {int.class, int.class}
- )
- public void test_addII() {
- MockCalendar mc = new MockCalendar();
-
- mc.add(Calendar.DAY_OF_YEAR, 7);
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "after",
- args = {java.lang.Object.class}
- )
- public void test_afterLjava_lang_Object() {
- MockCalendar mcBefore = new MockCalendar();
- MockCalendar mc = new MockCalendar();
- MockCalendar mcAfter = new MockCalendar();
- MockCalendar mcSame = new MockCalendar();
-
- mcBefore.setTimeInMillis(1000);
- mc.setTimeInMillis(10000);
- mcAfter.setTimeInMillis(100000);
- mcSame.setTimeInMillis(10000);
-
- assertTrue(mc.after(mcBefore));
- assertFalse(mc.after(mcAfter));
- assertFalse(mc.after(mcSame));
- assertFalse(mc.after(mc));
- assertFalse(mc.after(new String()));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "before",
- args = {java.lang.Object.class}
- )
- public void test_beforeLjava_lang_Object() {
- MockCalendar mcBefore = new MockCalendar();
- MockCalendar mc = new MockCalendar();
- MockCalendar mcAfter = new MockCalendar();
- MockCalendar mcSame = new MockCalendar();
-
- mcBefore.setTimeInMillis(1000);
- mc.setTimeInMillis(10000);
- mcAfter.setTimeInMillis(100000);
- mcSame.setTimeInMillis(10000);
-
- assertFalse(mc.before(mcBefore));
- assertTrue(mc.before(mcAfter));
- assertFalse(mc.before(mcSame));
- assertFalse(mc.before(mc));
- assertFalse(mc.before(new String()));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "clear",
- args = {}
- )
public void test_clear() {
- MockCalendar mc1 = new MockCalendar();
- MockCalendar mc2 = new MockCalendar();
-
- assertTrue(mc1.toString().equals(mc2.toString()));
- mc1.set(2008, Calendar.SEPTEMBER, 23, 18, 0, 0);
- assertFalse(mc1.toString().equals(mc2.toString()));
- mc1.clear();
- assertTrue(mc1.toString().equals(mc2.toString()));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "clear",
- args = {int.class}
- )
- public void test_clearI() {
- MockCalendar mc1 = new MockCalendar();
- MockCalendar mc2 = new MockCalendar();
-
- assertTrue(mc1.toString().equals(mc2.toString()));
- mc1.set(2008, Calendar.SEPTEMBER, 23, 18, 0, 0);
- assertFalse(mc1.toString().equals(mc2.toString()));
- mc1.clear(Calendar.YEAR);
- mc1.clear(Calendar.MONTH);
- mc1.clear(Calendar.DAY_OF_MONTH);
- mc1.clear(Calendar.HOUR_OF_DAY);
- mc1.clear(Calendar.MINUTE);
- mc1.clear(Calendar.SECOND);
- mc1.clear(Calendar.MILLISECOND);
- assertTrue(mc1.toString().equals(mc2.toString()));
- }
-
- class Mock_Calendar extends Calendar {
- boolean flagComplete = false;
- @Override
- public void add(int field, int amount) {
-
- }
-
- @Override
- protected void computeFields() {
- this.set(MONTH, this.internalGet(MONTH)%12);
+ Calendar calendar = Calendar.getInstance();
+
+ int count = 6;
+ int[] fields = new int[count];
+ int[] defaults = new int[count];
+
+ fields[0] = Calendar.YEAR;
+ fields[1] = Calendar.MONTH;
+ fields[2] = Calendar.DATE;
+ fields[3] = Calendar.HOUR_OF_DAY;
+ fields[4] = Calendar.MINUTE;
+ fields[5] = Calendar.SECOND;
+
+ defaults[0] = 1970;
+ defaults[1] = 0;
+ defaults[2] = 1;
+ defaults[3] = 0;
+ defaults[4] = 0;
+ defaults[5] = 0;
+
+ calendar.set(2008, 3, 20, 17, 28, 12);
+
+ // test clear(int)
+ for (int i = 0; i < fields.length; i++) {
+ int index = fields[i];
+ calendar.clear(index);
+ if (5 == index) {
+ // RI also doesn't change the value of DATE
+ assertEquals("Field " + index + " Should equal to 20.", 20,
+ calendar.get(index));
+ } else if (11 == index) {
+ // RI also doesn't change the value of HOUR
+ assertEquals("Field " + index + " Should equal to 17.", 17,
+ calendar.get(index));
+ } else {
+ // Other have been set to default values
+ assertEquals("Field " + index + " Should equal to "
+ + defaults[i] + ".", defaults[i], calendar.get(index));
+ }
}
- @Override
- protected void computeTime() {
- }
-
- @Override
- public int getGreatestMinimum(int field) {
- return 0;
- }
-
- @Override
- public int getLeastMaximum(int field) {
- return 0;
- }
-
- @Override
- public int getMaximum(int field) {
- return 0;
- }
-
- @Override
- public int getMinimum(int field) {
- return 0;
- }
+ // test clear()
+ calendar.set(2008, 3, 20, 17, 28, 12);
- @Override
- public void roll(int field, boolean up) {
- }
-
- @Override
- public void complete() {
- computeTime();
- computeFields();
- flagComplete = true;
- }
-
- public boolean isCompleted () {
- return flagComplete;
- }
+ calendar.clear();
- public int internalGetField(int field) {
- return super.internalGet(field);
+ for (int i = 0; i < fields.length; i++) {
+ int index = fields[i];
+ assertEquals("Field " + index + " Should equal to "
+ + defaults[i] + ".", defaults[i], calendar.get(index));
}
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "complete",
- args = {}
- )
- public void test_complete() {
- Mock_Calendar cal = new Mock_Calendar();
-
- assertFalse(cal.isCompleted());
- cal.setTimeInMillis(1000);
- cal.get(Calendar.MONTH);
- assertTrue(cal.isCompleted());
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "computeFields",
- args = {}
- )
- public void test_computeFields() {
- Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
- Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal1.setTimeInMillis(1222185600225L);
- cal2.set(2008, Calendar.SEPTEMBER, 23, 18, 0, 0);
- assertFalse(cal1.toString().equals(cal2.toString()));
- cal1.get(Calendar.YEAR);
- cal2.getTimeInMillis();
- cal1.set(Calendar.MILLISECOND, 0);
- cal2.set(Calendar.MILLISECOND, 0);
- // tests fails in this line.
- assertTrue(cal1.toString().equals(cal2.toString()));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "equals",
- args = {java.lang.Object.class}
- )
- public void test_equals() {
- Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
- Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal1.setTimeInMillis(1222185600225L);
- cal2.set(2008, Calendar.SEPTEMBER, 23, 18, 0, 0);
- assertFalse(cal1.equals(cal2));
- cal1.get(Calendar.YEAR);
- cal2.getTimeInMillis();
- cal1.set(Calendar.MILLISECOND, 0);
- cal2.set(Calendar.MILLISECOND, 0);
- // tests fails on following line.
- assertTrue(cal1.equals(cal2));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "get",
- args = {int.class}
- )
- public void test_getI() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal.setTimeInMillis(1222185600225L);
- assertEquals(cal.get(Calendar.ERA), 1);
- assertEquals(cal.get(Calendar.YEAR), 2008);
- assertEquals(cal.get(Calendar.MONTH), Calendar.SEPTEMBER);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 23);
- // Following line returns wrong value. Behavior uncompatible with RI.
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 18);
- assertEquals(cal.get(Calendar.MINUTE), 0);
-
- try {
- cal.get(-1);
- fail("ArrayIndexOutOfBoundsException expected");
- } catch (ArrayIndexOutOfBoundsException e) {
- //expected
- }
-
- try {
- cal.get(Calendar.FIELD_COUNT + 1);
- fail("ArrayIndexOutOfBoundsException expected");
- } catch (ArrayIndexOutOfBoundsException e) {
- //expected
+ /**
+ * @tests java.util.Calendar#isSet(int)
+ */
+ public void test_isSet() {
+ Calendar calendar = Calendar.getInstance();
+ calendar.clear();
+ for (int i = 0; i < Calendar.FIELD_COUNT; i++) {
+ assertFalse(calendar.isSet(i));
}
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getAvailableLocales",
- args = {}
- )
+ /**
+ * @tests java.util.Calendar#getAvailableLocales()
+ */
public void test_getAvailableLocales() {
- assertNotNull(Calendar.getAvailableLocales());
- }
-
- @TestTargets({
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getFirstDayOfWeek",
- args = {}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getInstance",
- args = {}
- )
- })
- public void test_getFirstDayOfWeek() {
- Locale[] requiredLocales = {Locale.US, Locale.FRANCE};
- if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
- // locale dependent test, bug 1943269
- return;
+ Locale[] locales = Calendar.getAvailableLocales();
+ boolean exist = false;
+ for (int i = 0; i < locales.length; i++) {
+ Locale l = locales[i];
+ if (Locale.US.equals(l)) {
+ exist = true;
+ break;
+ }
}
- Calendar cal = Calendar.getInstance();
-
- assertEquals(Calendar.SUNDAY, cal.getFirstDayOfWeek());
- Locale.setDefault(Locale.FRANCE);
- cal = Calendar.getInstance();
- assertEquals(Calendar.MONDAY, cal.getFirstDayOfWeek());
- Locale.setDefault(Locale.US);
+ assertTrue(exist);
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getInstance",
- args = {java.util.Locale.class}
- )
- public void test_getInstanceLjava_util_Locale() {
- Locale[] requiredLocales = {Locale.US, Locale.FRANCE};
- if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
- // locale dependent test, bug 1943269
- return;
- }
- Calendar cal1 = Calendar.getInstance(Locale.FRANCE);
- Locale.setDefault(Locale.FRANCE);
- Calendar cal2 = Calendar.getInstance();
- assertSame(cal1.getFirstDayOfWeek(), cal2.getFirstDayOfWeek());
- Locale.setDefault(Locale.US);
- cal2 = Calendar.getInstance();
- assertNotSame(cal1.getFirstDayOfWeek(), cal2.getFirstDayOfWeek());
+ /**
+ * @tests java.util.Calendar#getInstance(Locale)
+ * @tests java.util.Calendar#getInstance(TimeZone, Locale)
+ */
+ public void test_getInstance() {
+ // test getInstance(Locale)
+ Calendar us_calendar = Calendar.getInstance(Locale.US);
+ Calendar ch_calendar = Calendar.getInstance(Locale.CHINESE);
+ assertEquals(Calendar.SUNDAY, us_calendar
+ .getFirstDayOfWeek());
+ assertEquals(Calendar.MONDAY, ch_calendar
+ .getFirstDayOfWeek());
+
+ // test getInstance(Locale, TimeZone)
+ Calendar gmt_calendar = Calendar.getInstance(TimeZone
+ .getTimeZone("GMT"), Locale.US);
+ assertEquals(TimeZone.getTimeZone("GMT"),
+ gmt_calendar.getTimeZone());
+ Calendar est_calendar = Calendar.getInstance(TimeZone
+ .getTimeZone("EST"), Locale.US);
+ assertEquals(TimeZone.getTimeZone("EST")
+ .getID(), est_calendar.getTimeZone().getID());
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getInstance",
- args = {java.util.TimeZone.class}
- )
- public void test_get_InstanceLjava_util_TimeZone() {
- Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("GMT-6"));
- Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("GMT+1"));
- assertNotSame(cal1.getTimeZone().getRawOffset(), cal2.getTimeZone().getRawOffset());
+ /**
+ * @tests java.util.Calendar#internalGet(int)
+ */
+ public void test_internalGet() {
+ MockGregorianCalendar c = new MockGregorianCalendar();
+ c.clear(Calendar.YEAR);
+ assertEquals(0, c.internal_get(Calendar.YEAR));
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getInstance",
- args = {java.util.TimeZone.class, java.util.Locale.class}
- )
- public void test_getInstanceLjava_util_TimeZoneLjava_util_Locale() {
- Locale[] requiredLocales = {Locale.US, Locale.FRANCE};
- if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
- // locale dependent test, bug 1943269
- return;
- }
- Calendar cal1 = Calendar.getInstance(TimeZone.getTimeZone("GMT-6"), Locale.FRANCE);
- Locale.setDefault(Locale.FRANCE);
- Calendar cal2 = Calendar.getInstance(TimeZone.getTimeZone("GMT+1"));
- assertSame(cal1.getFirstDayOfWeek(), cal2.getFirstDayOfWeek());
- assertNotSame(cal1.getTimeZone().getRawOffset(), cal2.getTimeZone().getRawOffset());
- Locale.setDefault(Locale.US);
- cal2 = Calendar.getInstance(TimeZone.getTimeZone("GMT+1"));
- assertNotSame(cal1.getFirstDayOfWeek(), cal2.getFirstDayOfWeek());
- assertNotSame(cal1.getTimeZone().getRawOffset(), cal2.getTimeZone().getRawOffset());
+ /**
+ * @tests java.util.Calendar#hashCode()
+ */
+ public void test_hashcode() {
+ Calendar calendar = Calendar.getInstance(Locale.JAPAN);
+ assertTrue(calendar.hashCode() == calendar.hashCode());
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getMinimalDaysInFirstWeek",
- args = {}
- )
- public void test_getMinimalDaysInFirstWeek() {
- Locale[] requiredLocales = {Locale.US, Locale.FRANCE};
- if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
- // locale dependent test, bug 1943269
- return;
- }
- Locale.setDefault(Locale.US);
- Calendar cal = Calendar.getInstance();
- assertEquals(1, cal.getMinimalDaysInFirstWeek());
- Locale.setDefault(Locale.FRANCE);
- cal = Calendar.getInstance();
- assertEquals(4, cal.getMinimalDaysInFirstWeek());
- Locale.setDefault(Locale.US);
- }
+ /**
+ * @tests java.util.Calendar#roll(int, int)
+ */
+ public void test_roll() {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(2008, 3, 20, 17, 28, 12);
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getTime",
- args = {}
- )
- public void test_getTime() {
- Calendar cal = Calendar.getInstance();
- Date d = new Date(1222185600225L);
-
- cal.setTimeInMillis(1222185600225L);
- assertEquals(d.getTime(), cal.getTimeInMillis());
- assertEquals(d, cal.getTime());
- }
+ // roll up
+ calendar.roll(Calendar.DATE, 5);
+ assertEquals(25, calendar.get(Calendar.DATE));
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "getTimeZone",
- args = {}
- )
- public void test_getTimeZone() {
- Calendar cal = Calendar.getInstance();
- cal.setTimeZone(TimeZone.getTimeZone("GMT-6"));
-
- assertEquals(TimeZone.getTimeZone("GMT-6"), cal.getTimeZone());
- cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-8"));
- assertEquals(TimeZone.getTimeZone("GMT-8"), cal.getTimeZone());
- }
+ // roll down
+ calendar.roll(Calendar.DATE, -5);
+ assertEquals(20, calendar.get(Calendar.DATE));
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "hashCode",
- args = {}
- )
- public void test_hashCode() {
- Locale[] requiredLocales = {Locale.US, Locale.FRANCE};
- if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
- // locale dependent test, bug 1943269
- return;
- }
- Calendar cal1 = Calendar.getInstance();
- Locale.setDefault(Locale.FRANCE);
- Calendar cal2 = Calendar.getInstance();
- Locale.setDefault(Locale.US);
- assertTrue(cal1.hashCode() != cal2.hashCode());
- }
+ // roll 0
+ calendar.roll(Calendar.DATE, 0);
+ assertEquals(20, calendar.get(Calendar.DATE));
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "internalGet",
- args = {int.class}
- )
- public void test_internalGet() {
- Mock_Calendar mc = new Mock_Calendar();
- assertEquals(0, mc.internalGetField(Calendar.MONTH));
- mc.set(Calendar.MONTH, 35);
- assertEquals(35, mc.internalGetField(Calendar.MONTH));
- assertEquals(11, mc.get(Calendar.MONTH));
- }
+ // roll overweight
+ calendar.set(2008, 1, 31, 17, 28, 12);
+ calendar.roll(Calendar.MONTH, 1);
+ assertEquals(2, calendar.get(Calendar.DATE));
- @TestTargets({
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "isLenient",
- args = {}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "setLenient",
- args = {boolean.class}
- )
- })
- public void test_isLenient() {
- Calendar cal = Calendar.getInstance();
- assertTrue(cal.isLenient());
- cal.set(Calendar.MONTH, 35);
- cal.get(Calendar.MONTH);
- cal.setLenient(false);
- cal.set(Calendar.MONTH, 35);
- try {
- cal.get(Calendar.MONTH);
- fail("IllegalArgumentException expected");
- } catch (IllegalArgumentException e) {
- //expected
- }
- assertFalse(cal.isLenient());
- cal.setLenient(true);
- cal.set(Calendar.MONTH, 35);
- cal.get(Calendar.MONTH);
- assertTrue(cal.isLenient());
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "isSet",
- args = {int.class}
- )
- public void test_isSet() {
- Calendar cal = Calendar.getInstance();
- cal.clear();
- assertFalse(cal.isSet(Calendar.MONTH));
- cal.set(Calendar.MONTH, 35);
- assertTrue(cal.isSet(Calendar.MONTH));
- assertFalse(cal.isSet(Calendar.YEAR));
- cal.get(Calendar.MONTH);
- assertTrue(cal.isSet(Calendar.YEAR));
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "roll",
- args = {int.class, int.class}
- )
- public void test_rollII() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal.setTimeInMillis(1222185600225L);
- cal.roll(Calendar.DAY_OF_MONTH, 200);
- assertEquals(cal.get(Calendar.ERA), 1);
- assertEquals(cal.get(Calendar.YEAR), 2008);
- assertEquals(cal.get(Calendar.MONTH), Calendar.SEPTEMBER);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 13);
- // Following line returns wrong value. Behavior uncompatible with RI.
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 18);
- assertEquals(cal.get(Calendar.MINUTE), 0);
- cal.roll(Calendar.DAY_OF_MONTH, -200);
- assertEquals(cal.get(Calendar.ERA), 1);
- assertEquals(cal.get(Calendar.YEAR), 2008);
- assertEquals(cal.get(Calendar.MONTH), Calendar.SEPTEMBER);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 23);
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 18);
- assertEquals(cal.get(Calendar.MINUTE), 0);
+ /**
+ * @tests java.util.Calendar#toString()
+ */
+ public void test_toString() {
+ Calendar calendar = Calendar.getInstance();
+ //Should be the current time with no interrogation in the string.
+ assertTrue(calendar.toString() instanceof String);
+ assertEquals(-1, calendar.toString().indexOf("?"));
+ calendar.clear();
+ assertTrue(calendar.toString() instanceof String);
+ assertTrue(0 <= calendar.toString().indexOf("?"));
}
- @TestTargets({
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "set",
- args = {int.class, int.class, int.class}
- ),
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "setTimeInMillis",
- args = {long.class}
- )
- })
- public void test_setIII() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal.setTimeInMillis(1222185600225L);
- assertEquals(1222185600225L, cal.getTimeInMillis());
- assertEquals(cal.get(Calendar.YEAR), 2008);
- assertEquals(cal.get(Calendar.MONTH), Calendar.SEPTEMBER);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 23);
- assertEquals(cal.get(Calendar.SECOND), 0);
-
- cal.set(1970, Calendar.JANUARY, 1);
- assertEquals(cal.get(Calendar.ERA), 1);
- // Following line returns wrong value. Behavior uncompatible with RI.
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 18);
- assertEquals(cal.get(Calendar.MINUTE), 0);
- assertEquals(cal.get(Calendar.SECOND), 0);
-
- assertEquals(cal.get(Calendar.YEAR), 1970);
- assertEquals(cal.get(Calendar.MONTH), 0);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 1);
- }
+ /**
+ * @tests serialization/deserialization.
+ */
+ public void testSerializationSelf() throws Exception {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(2008, 3, 20, 17, 28, 12);
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "set",
- args = {int.class, int.class, int.class, int.class, int.class}
- )
- public void test_setIIIII() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal.setTimeInMillis(1222185600225L);
- assertEquals(cal.get(Calendar.YEAR), 2008);
- assertEquals(cal.get(Calendar.MONTH), Calendar.SEPTEMBER);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 23);
- // Following line returns wrong value. Behavior uncompatible with RI.
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 18);
- assertEquals(cal.get(Calendar.MINUTE), 0);
- assertEquals(cal.get(Calendar.SECOND), 0);
-
- cal.set(1970, Calendar.JANUARY, 1, 0, 10);
- assertEquals(cal.get(Calendar.ERA), 1);
- assertEquals(cal.get(Calendar.SECOND), 0);
-
- assertEquals(cal.get(Calendar.YEAR), 1970);
- assertEquals(cal.get(Calendar.MONTH), 0);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 1);
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 0);
- assertEquals(cal.get(Calendar.MINUTE), 10);
+ SerializationTest.verifySelf(calendar);
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "set",
- args = {int.class, int.class, int.class, int.class, int.class, int.class}
- )
- public void test_setIIIIII() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+2"), defaultLocale);
-
- cal.setTimeInMillis(1222185600225L);
- assertEquals(cal.get(Calendar.YEAR), 2008);
- assertEquals(cal.get(Calendar.MONTH), Calendar.SEPTEMBER);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 23);
- // Following line returns wrong value. Behavior uncompatible with RI.
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 18);
- assertEquals(cal.get(Calendar.MINUTE), 0);
- assertEquals(cal.get(Calendar.SECOND), 0);
-
- cal.set(1970, Calendar.JANUARY, 1, 0, 10, 33);
- assertEquals(cal.get(Calendar.ERA), 1);
-
- assertEquals(cal.get(Calendar.YEAR), 1970);
- assertEquals(cal.get(Calendar.MONTH), 0);
- assertEquals(cal.get(Calendar.DAY_OF_MONTH), 1);
- assertEquals(cal.get(Calendar.HOUR_OF_DAY), 0);
- assertEquals(cal.get(Calendar.MINUTE), 10);
- assertEquals(cal.get(Calendar.SECOND), 33);
- }
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "setFirstDayOfWeek",
- args = {int.class}
- )
- public void test_setFirstDayOfWeekI() {
- Calendar cal = Calendar.getInstance();
-
- for (int i = 0; i < 10; i++) {
- cal.setFirstDayOfWeek(i);
- assertEquals(i, cal.getFirstDayOfWeek());
- }
- cal.setLenient(false);
- cal.setFirstDayOfWeek(10);
- cal.setFirstDayOfWeek(-10);
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "setMinimalDaysInFirstWeek",
- args = {int.class}
- )
- public void test_setMinimalDaysInFirstWeekI() {
- Calendar cal = Calendar.getInstance();
-
- for (int i = 0; i < 10; i++) {
- cal.setMinimalDaysInFirstWeek(i);
- assertEquals(i, cal.getMinimalDaysInFirstWeek());
+ private class MockGregorianCalendar extends GregorianCalendar {
+ public int internal_get(int field) {
+ return super.internalGet(field);
}
- cal.setLenient(false);
- cal.setMinimalDaysInFirstWeek(10);
- cal.setMinimalDaysInFirstWeek(-10);
- }
-
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "setTimeZone",
- args = {java.util.TimeZone.class}
- )
- public void test_setTimeZoneLjava_util_TimeZone() {
- Calendar cal = Calendar.getInstance();
- cal.setTimeZone(TimeZone.getTimeZone("GMT-6"));
- assertEquals(TimeZone.getTimeZone("GMT-6"), cal.getTimeZone());
- cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-8"));
- cal.setTimeZone(TimeZone.getTimeZone("GMT-6"));
- assertEquals(TimeZone.getTimeZone("GMT-6"), cal.getTimeZone());
-
- cal.setTimeZone(null);
}
- @TestTargetNew(
- level = TestLevel.COMPLETE,
- notes = "",
- method = "toString",
- args = {}
- )
- public void test_toString() {
- Calendar cal1 = Calendar.getInstance();
- Calendar cal2 = Calendar.getInstance();
- cal1.setTimeZone(TimeZone.getTimeZone("GMT-6"));
- cal2.setTimeZone(TimeZone.getTimeZone("GMT-8"));
- cal1.set(Calendar.MILLISECOND, 0);
- cal2.set(Calendar.MILLISECOND, 0);
- assertFalse(cal1.toString().equals(cal2.toString()));
- cal1.setTimeZone(TimeZone.getTimeZone("GMT-8"));
- assertTrue(cal1.toString().equals(cal2.toString()));
- }
-
- @TestTargetNew(
- level = TestLevel.ADDITIONAL,
- method = "get",
- args = {int.class}
- )
- public void test_EdgeCases() {
- Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
-
- c.setTimeInMillis(Long.MAX_VALUE);
-
- assertEquals(292278994, c.get(Calendar.YEAR));
- assertEquals(Calendar.AUGUST, c.get(Calendar.MONTH));
- assertEquals(17, c.get(Calendar.DAY_OF_MONTH));
- assertEquals(Calendar.SUNDAY, c.get(Calendar.DAY_OF_WEEK));
- assertEquals(7, c.get(Calendar.HOUR_OF_DAY));
- assertEquals(12, c.get(Calendar.MINUTE));
- assertEquals(55, c.get(Calendar.SECOND));
- }
+ private class MockCalendar extends Calendar {
- protected void setUp() {
- defaultLocale = Locale.getDefault();
- Locale.setDefault(Locale.US);
+ public MockCalendar() {
+ super();
+ }
+
+ @Override
+ public void add(int field, int value) {
+ }
+
+ @Override
+ protected void computeFields() {
+ }
+
+ @Override
+ protected void computeTime() {
+ }
+
+ @Override
+ public int getGreatestMinimum(int field) {
+ return 0;
+ }
+
+ @Override
+ public int getLeastMaximum(int field) {
+ return 0;
+ }
+
+ @Override
+ public int getMaximum(int field) {
+ return 0;
+ }
+
+ @Override
+ public int getMinimum(int field) {
+ return 0;
+ }
+
+ @Override
+ public void roll(int field, boolean increment) {
+ }
}
- protected void tearDown() {
- Locale.setDefault(defaultLocale);
- }
+ /**
+ * @tests {@link java.util.Calendar#getDisplayName(int, int, Locale)}
+ * @since 1.6
+ */
+ public void test_getDisplayNameIILjava_util_Locale() {
+ Calendar cal = Calendar.getInstance();
+ for (int field = 0; field < Calendar.FIELD_COUNT; field++) {
+ for (Locale locale : locales) {
+ DateFormatSymbols symbols = new DateFormatSymbols(locale);
+ String value = null;
+ switch (field) {
+ case Calendar.AM_PM:
+ cal.set(Calendar.AM_PM, Calendar.AM);
+ value = symbols.getAmPmStrings()[0];
+ assertEquals(cal.getDisplayName(field, Calendar.SHORT,
+ locale), value);
+ assertEquals(cal.getDisplayName(field, Calendar.LONG,
+ locale), value);
+ cal.set(Calendar.AM_PM, Calendar.PM);
+ value = symbols.getAmPmStrings()[1];
+ assertEquals(cal.getDisplayName(field, Calendar.SHORT,
+ locale), value);
+ assertEquals(cal.getDisplayName(field, Calendar.LONG,
+ locale), value);
+ break;
+ case Calendar.ERA:
+ cal.set(Calendar.ERA, GregorianCalendar.BC);
+ value = symbols.getEras()[0];
+ assertEquals(cal.getDisplayName(field, Calendar.SHORT,
+ locale), value);
+ assertEquals(cal.getDisplayName(field, Calendar.LONG,
+ locale), value);
+ cal.set(Calendar.ERA, GregorianCalendar.AD);
+ value = symbols.getEras()[1];
+ assertEquals(cal.getDisplayName(field, Calendar.SHORT,
+ locale), value);
+ assertEquals(cal.getDisplayName(field, Calendar.LONG,
+ locale), value);
+ break;
+ case Calendar.MONTH:
+ cal.set(Calendar.DAY_OF_MONTH, 1);
+ for (int month = 0; month <= 11; month++) {
+ cal.set(Calendar.MONTH, month);
+ value = symbols.getShortMonths()[month];
+ assertEquals(cal.getDisplayName(field, Calendar.SHORT,
+ locale), value);
+ value = symbols.getMonths()[month];
+ assertEquals(cal.getDisplayName(field, Calendar.LONG,
+ locale), value);
+ }
+ break;
+ case Calendar.DAY_OF_WEEK:
+ for (int day = 1; day <= 7; day++) {
+ cal.set(Calendar.DAY_OF_WEEK, day);
+ value = symbols.getShortWeekdays()[day];
+ assertEquals(cal.getDisplayName(field, Calendar.SHORT,
+ locale), value);
+ value = symbols.getWeekdays()[day];
+ assertEquals(cal.getDisplayName(field, Calendar.LONG,
+ locale), value);
+ }
+ break;
+ default:
+ assertNull(cal
+ .getDisplayName(field, Calendar.SHORT, locale));
+ assertNull(cal.getDisplayName(field, Calendar.LONG, locale));
+ }
+ }
+ }
+
+ cal.setLenient(true);
+
+ try {
+ cal.getDisplayName(-1, Calendar.SHORT, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(Calendar.FIELD_COUNT, Calendar.LONG, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(Calendar.MONTH, -1, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(Calendar.MONTH, 3, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, null);
+ fail("Should throw NullPointerException");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(-1, Calendar.SHORT, null);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(Calendar.MONTH, -1, null);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ // in lenient mode, following cases pass
+ cal.set(Calendar.SECOND, 999);
+ cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US);
+ // test for ALL_STYLES, it is equal to use SHORT
+ for (int field = 0; field < Calendar.FIELD_COUNT; field++) {
+ for (Locale locale : locales) {
+ String result = cal.getDisplayName(field, Calendar.ALL_STYLES,
+ locale);
+ if (field == Calendar.AM_PM || field == Calendar.ERA
+ || field == Calendar.MONTH
+ || field == Calendar.DAY_OF_WEEK) {
+ assertEquals(result, cal.getDisplayName(field,
+ Calendar.SHORT, locale));
+ } else {
+ assertNull(result);
+ }
+ }
+ }
+
+ // invalid value for an un-related field when the calendar is not
+ // lenient
+ cal.setLenient(false);
+ assertNotNull(cal.getDisplayName(Calendar.MONTH, Calendar.SHORT,
+ Locale.US));
+ cal.set(Calendar.SECOND, 999);
+ try {
+ cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayName(Calendar.MONTH, Calendar.ALL_STYLES, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ /**
+ * @tests {@link java.util.Calendar#getDisplayNames(int, int, Locale)}
+ * @since 1.6
+ */
+ public void test_getDisplayNamesIILjava_util_Locale() {
+ assertEquals(0, Calendar.ALL_STYLES);
+ assertEquals(1, Calendar.SHORT);
+ assertEquals(2, Calendar.LONG);
+
+ Calendar cal = Calendar.getInstance(Locale.US);
+
+ for (int field = 0; field < Calendar.FIELD_COUNT; field++) {
+ for (Locale locale : locales) {
+ Map<String, Integer> shortResult = cal.getDisplayNames(field,
+ Calendar.SHORT, locale);
+ Map<String, Integer> longResult = cal.getDisplayNames(field,
+ Calendar.LONG, locale);
+ Map<String, Integer> allResult = cal.getDisplayNames(field,
+ Calendar.ALL_STYLES, locale);
+ DateFormatSymbols symbols = new DateFormatSymbols(locale);
+ String[] values = null;
+ switch (field) {
+ case Calendar.AM_PM:
+ case Calendar.ERA:
+ values = (field == Calendar.AM_PM) ? symbols
+ .getAmPmStrings() : symbols.getEras();
+ assertDisplayNameMap(values, shortResult, 0);
+ assertDisplayNameMap(values, longResult, 0);
+ assertDisplayNameMap(values, allResult, 0);
+ break;
+ case Calendar.MONTH:
+ values = symbols.getShortMonths();
+ assertDisplayNameMap(values, shortResult, 0);
+ values = symbols.getMonths();
+ assertDisplayNameMap(values, longResult, 0);
+ assertTrue(allResult.size() >= shortResult.size());
+ assertTrue(allResult.size() >= longResult.size());
+ assertTrue(allResult.size() <= shortResult.size()
+ + longResult.size());
+ break;
+ case Calendar.DAY_OF_WEEK:
+ values = symbols.getShortWeekdays();
+ assertDisplayNameMap(values, shortResult, 1);
+ values = symbols.getWeekdays();
+ assertDisplayNameMap(values, longResult, 1);
+ assertTrue(allResult.size() >= shortResult.size());
+ assertTrue(allResult.size() >= longResult.size());
+ assertTrue(allResult.size() <= shortResult.size()
+ + longResult.size());
+ break;
+ default:
+ assertNull(shortResult);
+ assertNull(longResult);
+ assertNull(allResult);
+ }
+ }
+ }
+
+ cal.setLenient(true);
+
+ try {
+ cal.getDisplayNames(-1, Calendar.SHORT, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayNames(Calendar.FIELD_COUNT, Calendar.LONG, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayNames(Calendar.MONTH, -1, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayNames(Calendar.MONTH, 3, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayNames(Calendar.MONTH, Calendar.SHORT, null);
+ fail("Should throw NullPointerException");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayNames(-1, Calendar.SHORT, null);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ try {
+ cal.getDisplayNames(Calendar.MONTH, -1, null);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ cal.set(Calendar.SECOND, 999);
+ cal.getDisplayNames(Calendar.MONTH, Calendar.SHORT, Locale.US);
+
+ // RI fails here
+ // invalid value for an un-related field when the calendar is not
+ // lenient
+ cal.setLenient(false);
+ cal.set(Calendar.SECOND, 999);
+ try {
+ cal.getDisplayNames(Calendar.MONTH, Calendar.SHORT, Locale.US);
+ fail("Should throw IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ private void assertDisplayNameMap(String[] values,
+ Map<String, Integer> result, int shift) {
+ List<String> trimValue = new ArrayList<String>();
+ for (String value : values) {
+ if (value.trim().length() > 0) {
+ trimValue.add(value);
+ }
+ }
+ assertEquals(trimValue.size(), result.size());
+ for (int i = 0; i < trimValue.size(); i++) {
+ assertEquals(i + shift, result.get(trimValue.get(i)).intValue());
+ }
+ }
+
+ /**
+ * @tests {@link java.util.Calendar#getActualMaximum(int)}
+ */
+ public void test_getActualMaximum_I() {
+ Calendar c = new MockCalendar();
+ assertEquals("should be equal to 0", 0, c.getActualMaximum(0));
+ }
+
+ /**
+ * @tests {@link java.util.Calendar#getActualMinimum(int)}
+ */
+ public void test_getActualMinimum_I() {
+ Calendar c = new MockCalendar();
+ assertEquals("should be equal to 0", 0, c.getActualMinimum(0));
+ }
+
+ protected void setUp() {
+ defaultLocale = Locale.getDefault();
+ Locale.setDefault(Locale.US);
+ }
+
+ protected void tearDown() {
+ Locale.setDefault(defaultLocale);
+ }
}