< prev index next >

test/jdk/java/util/Calendar/FieldStateTest.java

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
+  * Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

@@ -22,130 +22,127 @@
   */
  
  /*
   * @test
   * @bug 4860664 4916815 4867075
-  * @library /java/text/testlib
-  * @build Koyomi
-  * @run main FieldStateTest
+  * @run junit/othervm FieldStateTest
   * @summary Unit tests for internal fields states.
   */
  
  import java.util.Date;
  import java.util.Locale;
  import java.util.TimeZone;
  
  import static java.util.Calendar.*;
  
- public class FieldStateTest extends IntlTest {
+ import org.junit.jupiter.api.Test;
+ import org.junit.jupiter.api.BeforeAll;
  
-     public static void main(String[] args) throws Exception {
-         Locale reservedLocale = Locale.getDefault();
-         TimeZone reservedTimeZone = TimeZone.getDefault();
-         try {
-             TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
-             Locale.setDefault(Locale.US);
+ import static org.junit.jupiter.api.Assertions.fail;
  
-             new FieldStateTest().run(args);
-         } finally {
-             // restore the reserved locale and time zone
-             Locale.setDefault(reservedLocale);
-             TimeZone.setDefault(reservedTimeZone);
-         }
+ public class FieldStateTest {
+ 
+     // Change JVM default Locale and TimeZone
+     @BeforeAll
+     static void initAll() {
+         Locale.setDefault(Locale.US);
+         TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
      }
  
+ 
+     @Test
      public void TestFieldState() {
          Koyomi cal = new Koyomi();
-         logln("Right after instantialtion:");
+         System.out.println("Right after instantialtion:");
          if (!cal.checkAllSet()) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
-         logln("Set date to 2003/10/31 after the instantiation:");
+         System.out.println("Set date to 2003/10/31 after the instantiation:");
          cal.set(2003, OCTOBER, 31);
          // let cal calculate the time
          cal.getTime();
          // At this point, all fields have to be recalculated and
          // happen to have the set-state from the instantiation. The
          // three fields should have "externally set" and the rest of
          // the fields have "computed". But we can't distinguish them
          // outside the package.
          if (!cal.checkAllSet()) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
          // Make sure that the correct date was produced.
          if (!cal.checkInternalDate(2003, OCTOBER, 31, FRIDAY)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
-         logln("Change to Monday of the week, which is 2003/10/27:");
+         System.out.println("Change to Monday of the week, which is 2003/10/27:");
          cal.set(DAY_OF_WEEK, MONDAY);
          cal.getTime();
          if (!cal.checkDate(2003, OCTOBER, 27)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
          // The same operation didn't work after calling clear() before
          // 1.5 because the set-state was just depends on its previous
          // operations. After the instantiation, all the fields are set
          // to "computed". But after calling clear(), the state becomes
          // "unset".
-         logln("Set to 2003/10/31 after clear():");
+         System.out.println("Set to 2003/10/31 after clear():");
          cal.clear();
          cal.set(2003, OCTOBER, 31);
          cal.getTime();
          cal.set(DAY_OF_WEEK, MONDAY);
          if (!cal.checkDate(2003, OCTOBER, 27, MONDAY)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
-         logln("Set to 2003/10/31 after clear(), then to the 51st week of year (12/19):");
+         System.out.println("Set to 2003/10/31 after clear(), then to the 51st week of year (12/19):");
          cal.clear();
          cal.set(2003, OCTOBER, 31);
          cal.getTime();
          cal.set(WEEK_OF_YEAR, 51);
          if (!cal.checkFieldValue(WEEK_OF_YEAR, 51)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
          if (!cal.checkDate(2003, DECEMBER, 19, FRIDAY)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
-         logln("Set to 2003/10 Mon of 4th week (10/20: 43rd week of year, 293rd day):");
+         System.out.println("Set to 2003/10 Mon of 4th week (10/20: 43rd week of year, 293rd day):");
          cal.clear();
          cal.set(YEAR, 2003);
          cal.set(MONTH, OCTOBER);
          cal.set(DAY_OF_WEEK, MONDAY);
          cal.set(WEEK_OF_MONTH, 4);
          cal.getTime();
          if (!cal.checkFieldValue(DAY_OF_MONTH, 20)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
          if (!cal.checkFieldValue(DAY_OF_YEAR, 293)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
          if (!cal.checkFieldValue(WEEK_OF_YEAR, 43)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
-         logln("Set to 2003/10 Mon of 43rd week of year (10/20: 4th week of month, 293rd day):");
+         System.out.println("Set to 2003/10 Mon of 43rd week of year (10/20: 4th week of month, 293rd day):");
          cal.clear();
          cal.set(YEAR, 2003);
          cal.set(DAY_OF_WEEK, MONDAY);
          cal.set(WEEK_OF_YEAR, 43);
          cal.getTime();
          if (!cal.checkDate(2003, OCTOBER, 20, MONDAY)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
          if (!cal.checkFieldValue(WEEK_OF_MONTH, 4)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
          if (!cal.checkFieldValue(DAY_OF_YEAR, 293)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
  
-         logln("Set day of week to SUNDAY and date to 2003/10/31. "
+         System.out.println("Set day of week to SUNDAY and date to 2003/10/31. "
                  + "Then, getTime and set week of year to 43.");
  
          @SuppressWarnings("deprecation")
          Date d = new Date(2003 - 1900, OCTOBER, 31);
          cal.setTime(d);

@@ -159,19 +156,20 @@
          // DAY_OF_MONTH. The other calendar fields must be normalized
          // with the selected date.
          cal.getTime();
          cal.set(WEEK_OF_YEAR, 43);
          if (!cal.checkDate(2003, OCTOBER, 24, FRIDAY)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
      }
  
      /*
       * 4916815: REGRESSION: Problem with java.util.Calendar VM 1.4.2-b28
       */
+     @Test
      public void Test4916815() {
-         logln("Set date to 2003/9/26 (Fri). Roll to Aug and back to Sep. "
+         System.out.println("Set date to 2003/9/26 (Fri). Roll to Aug and back to Sep. "
                  + "Set dayofweek to Sunday which should be 2003/9/21.");
          Koyomi cal = new Koyomi();
          cal.clear();
          // 2003/9/26 (Fri)
          cal.set(2003, SEPTEMBER, 26);

@@ -181,17 +179,18 @@
          Koyomi cal2 = (Koyomi) cal.clone();
          cal2.getTime();
          // Sunday of the week should be 2003/9/21.
          cal2.set(DAY_OF_WEEK, SUNDAY);
          if (!cal2.checkDate(2003, SEPTEMBER, 21, SUNDAY)) {
-             errln(cal2.getMessage());
+             fail(cal2.getMessage());
          }
      }
  
      /*
       * 4867075: GregorianCalendar get() calls complete() internally, should getTime() too?
       */
+     @Test
      public void Test4867075() {
          Koyomi cal = new Koyomi(Locale.US);
          cal.clear();
          cal.set(YEAR, 2004);
          cal.set(WEEK_OF_YEAR, 1);

@@ -207,11 +206,11 @@
      private void checkDate(Koyomi cal, int dayOfWeek,
              int expectedYear, int expectedMonth, int expectedDayOfMonth) {
          cal.set(DAY_OF_WEEK, dayOfWeek);
          cal.getTime();
          if (!cal.checkInternalDate(expectedYear, expectedMonth, expectedDayOfMonth, dayOfWeek)) {
-             errln(cal.getMessage());
+             fail(cal.getMessage());
          }
      }
  
      static String toHexString(int x) {
          return Integer.toHexString(x);
< prev index next >