< prev index next >

test/jdk/java/util/Calendar/bug4028518.java

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 1998, 2016, 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.
--- 1,7 ---
  /*
!  * Copyright (c) 1998, 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,35 ***
   */
  
  /*
   * @test
   * @bug 4028518
!  * @summary Make sure cloned GregorianCalendar is unchanged by modifying its original.
   */
  
! import java.util.GregorianCalendar ;
! import static java.util.Calendar.*;
  
  public class bug4028518 {
  
!     public static void main(String[] args)
!     {
          GregorianCalendar cal1 = new GregorianCalendar() ;
          GregorianCalendar cal2 = (GregorianCalendar) cal1.clone() ;
- 
-         printdate(cal1, "cal1: ") ;
-         printdate(cal2, "cal2 - cloned(): ") ;
          cal1.add(DAY_OF_MONTH, 1) ;
!         printdate(cal1, "cal1 after adding 1 day: ") ;
!         printdate(cal2, "cal2 should be unmodified: ") ;
-         if (cal1.get(DAY_OF_MONTH) == cal2.get(DAY_OF_MONTH)) {
-             throw new RuntimeException("cloned GregorianCalendar modified");
-         }
-     }
- 
-     private static void printdate(GregorianCalendar cal, String string)
-     {
-         System.out.println(string + (cal.get(MONTH) + 1)
-                            + "/" + cal.get(DAY_OF_MONTH)
-                            + "/" + cal.get(YEAR)) ;
      }
  }
--- 22,32 ---
   */
  
  /*
   * @test
   * @bug 4028518
!  * @summary Ensure cloned GregorianCalendar is unchanged when modifying its original.
+  * @run junit bug4028518
   */
  
! import java.util.GregorianCalendar;
! 
+ import static java.util.Calendar.DAY_OF_MONTH;
+ 
+ import org.junit.jupiter.api.Test;
+ 
+ import static org.junit.jupiter.api.Assertions.assertNotEquals;
  
  public class bug4028518 {
  
!     /*
!      * Ensure modifying the original GregorianCalendar does not
+      * modify the cloned one as well
+      */
+     @Test
+     public void clonedShouldNotChangeOriginalTest() {
          GregorianCalendar cal1 = new GregorianCalendar() ;
          GregorianCalendar cal2 = (GregorianCalendar) cal1.clone() ;
          cal1.add(DAY_OF_MONTH, 1) ;
!         assertNotEquals(cal1.get(DAY_OF_MONTH), cal2.get(DAY_OF_MONTH),
!                 "Cloned calendar should not have same value as original");
      }
  }
< prev index next >