This is an automated email from the ASF dual-hosted git repository.

haonan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new b527e066362 Wraps DateTimeUtilsTest in a session (#12971)
b527e066362 is described below

commit b527e06636244c854a56cdbee82992f353cd7fed
Author: Brian Demers <[email protected]>
AuthorDate: Thu Jul 18 21:25:20 2024 -0400

    Wraps DateTimeUtilsTest in a session (#12971)
    
    DateTimeUtilsTest.getConvertDurationIncludingMonthUnit() uses dates 
conversions that are TZ specfic.
    Wrapping the test in a session, allows this single test to use a set 
timezone, while not affecting the behavior of other tests
    
    Fixes: #12970
---
 .../apache/iotdb/db/utils/DateTimeUtilsTest.java   | 63 ++++++++++++++--------
 1 file changed, 40 insertions(+), 23 deletions(-)

diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
index f528e30ba09..0e99f01fe8a 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/utils/DateTimeUtilsTest.java
@@ -18,6 +18,10 @@
  */
 package org.apache.iotdb.db.utils;
 
+import org.apache.iotdb.db.protocol.session.IClientSession;
+import org.apache.iotdb.db.protocol.session.InternalClientSession;
+import org.apache.iotdb.db.protocol.session.SessionManager;
+
 import org.apache.tsfile.utils.TimeDuration;
 import org.junit.Assert;
 import org.junit.Test;
@@ -25,6 +29,7 @@ import org.junit.Test;
 import java.time.ZoneId;
 import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
+import java.util.TimeZone;
 
 import static org.junit.Assert.assertEquals;
 
@@ -147,29 +152,41 @@ public class DateTimeUtilsTest {
   /** Test convert duration including natural month unit. Time includes: 
1970-01-01 ~ 1970-12-01 */
   @Test
   public void getConvertDurationIncludingMonthUnit() {
-    Assert.assertEquals(31 * 86400000L, 
DateTimeUtils.convertDurationStrToLong(0, 1, "mo", "ms"));
-    Assert.assertEquals(
-        28 * 86400000L, DateTimeUtils.convertDurationStrToLong(2678400000L, 1, 
"mo", "ms"));
-    Assert.assertEquals(
-        31 * 86400000L, DateTimeUtils.convertDurationStrToLong(5097600000L, 1, 
"mo", "ms"));
-    Assert.assertEquals(
-        30 * 86400000L, DateTimeUtils.convertDurationStrToLong(7776000000L, 1, 
"mo", "ms"));
-    Assert.assertEquals(
-        31 * 86400000L, DateTimeUtils.convertDurationStrToLong(10368000000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        30 * 86400000L, DateTimeUtils.convertDurationStrToLong(13046400000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        31 * 86400000L, DateTimeUtils.convertDurationStrToLong(15638400000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        31 * 86400000L, DateTimeUtils.convertDurationStrToLong(18316800000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        30 * 86400000L, DateTimeUtils.convertDurationStrToLong(20995200000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        31 * 86400000L, DateTimeUtils.convertDurationStrToLong(23587200000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        30 * 86400000L, DateTimeUtils.convertDurationStrToLong(26265600000L, 
1, "mo", "ms"));
-    Assert.assertEquals(
-        31 * 86400000L, DateTimeUtils.convertDurationStrToLong(28857600000L, 
1, "mo", "ms"));
+    // force the current session's timezone to be UTC
+    IClientSession session = new 
InternalClientSession("getConvertDurationIncludingMonthUnit");
+    session.setZoneId(ZoneId.of("UTC"));
+
+    try {
+      SessionManager.getInstance().registerSession(session);
+
+      Assert.assertEquals(31 * 86400000L, 
DateTimeUtils.convertDurationStrToLong(0, 1, "mo", "ms"));
+      Assert.assertEquals(
+          28 * 86400000L, DateTimeUtils.convertDurationStrToLong(2678400000L, 
1, "mo", "ms"));
+      TimeZone.getTimeZone(ZoneOffset.UTC);
+      Assert.assertEquals(
+          31 * 86400000L, DateTimeUtils.convertDurationStrToLong(5097600000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          30 * 86400000L, DateTimeUtils.convertDurationStrToLong(7776000000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          31 * 86400000L, DateTimeUtils.convertDurationStrToLong(10368000000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          30 * 86400000L, DateTimeUtils.convertDurationStrToLong(13046400000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          31 * 86400000L, DateTimeUtils.convertDurationStrToLong(15638400000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          31 * 86400000L, DateTimeUtils.convertDurationStrToLong(18316800000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          30 * 86400000L, DateTimeUtils.convertDurationStrToLong(20995200000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          31 * 86400000L, DateTimeUtils.convertDurationStrToLong(23587200000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          30 * 86400000L, DateTimeUtils.convertDurationStrToLong(26265600000L, 
1, "mo", "ms"));
+      Assert.assertEquals(
+          31 * 86400000L, DateTimeUtils.convertDurationStrToLong(28857600000L, 
1, "mo", "ms"));
+    } finally {
+      // clean up the session after test
+      SessionManager.getInstance().removeCurrSession();
+    }
   }
 
   public void testConvertDatetimeStrToLongWithoutMS(

Reply via email to