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

hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new 8f9f0301a2 Refactor DelayMeta#setScaleTimeCode using JDK 17 switch 
expression (#6462)
8f9f0301a2 is described below

commit 8f9f0301a280d7ac7f9b8522a1fd8fa611f05ff9
Author: lance <[email protected]>
AuthorDate: Mon Feb 2 20:40:49 2026 +0800

    Refactor DelayMeta#setScaleTimeCode using JDK 17 switch expression (#6462)
    
    Signed-off-by: lance <[email protected]>
---
 .../hop/pipeline/transforms/delay/DelayMeta.java   | 41 ++++++--------
 .../pipeline/transforms/delay/DelayMetaTest.java   | 66 ++++++++++++++++++++++
 2 files changed, 84 insertions(+), 23 deletions(-)

diff --git 
a/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
 
b/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
index 1746712067..6a82bd6187 100644
--- 
a/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
+++ 
b/plugins/transforms/delay/src/main/java/org/apache/hop/pipeline/transforms/delay/DelayMeta.java
@@ -88,40 +88,33 @@ public class DelayMeta extends BaseTransformMeta<Delay, 
DelayData> {
   }
 
   public void setScaleTimeCode(int scaleTimeIndex) {
-    switch (scaleTimeIndex) {
-      case 0:
-        scaletime = SCALE_TIME_CODE[0]; // milliseconds
-        break;
-      case 1:
-        scaletime = SCALE_TIME_CODE[1]; // second
-        break;
-      case 2:
-        scaletime = SCALE_TIME_CODE[2]; // minutes
-        break;
-      case 3:
-        scaletime = SCALE_TIME_CODE[3]; // hours
-        break;
-      default:
-        scaletime = SCALE_TIME_CODE[1]; // seconds
-        break;
-    }
+    scaletime =
+        switch (scaleTimeIndex) {
+            // milliseconds
+          case 0 -> SCALE_TIME_CODE[0];
+            // minutes
+          case 2 -> SCALE_TIME_CODE[2];
+            // hours
+          case 3 -> SCALE_TIME_CODE[3];
+            // seconds
+          default -> SCALE_TIME_CODE[1];
+        };
   }
 
   public int getScaleTimeCode() {
-    int retval = 1; // DEFAULT: seconds
+    // DEFAULT: seconds
+    int retval = 1;
     if (scaletime == null) {
       return retval;
     }
+
     if (scaletime.equals(SCALE_TIME_CODE[0])) {
       retval = 0;
-    } else if (scaletime.equals(SCALE_TIME_CODE[1])) {
-      retval = 1;
     } else if (scaletime.equals(SCALE_TIME_CODE[2])) {
       retval = 2;
     } else if (scaletime.equals(SCALE_TIME_CODE[3])) {
       retval = 3;
     }
-
     return retval;
   }
 
@@ -131,8 +124,10 @@ public class DelayMeta extends BaseTransformMeta<Delay, 
DelayData> {
 
   @Override
   public void setDefault() {
-    timeout = "1"; // default one second
-    scaletime = DEFAULT_SCALE_TIME; // defaults to "seconds"
+    // default one second
+    timeout = "1";
+    // defaults to "seconds"
+    scaletime = DEFAULT_SCALE_TIME;
     timeoutField = null;
     scaleTimeFromField = false;
     scaleTimeField = null;
diff --git 
a/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
 
b/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
index 0a43c44447..9be0a93a32 100644
--- 
a/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
+++ 
b/plugins/transforms/delay/src/test/java/org/apache/hop/pipeline/transforms/delay/DelayMetaTest.java
@@ -17,6 +17,11 @@
 
 package org.apache.hop.pipeline.transforms.delay;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -24,13 +29,24 @@ import java.util.Map;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.junit.rules.RestoreHopEngineEnvironmentExtension;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
 
+/** Unit test for {@link DelayMeta} */
 class DelayMetaTest {
   @RegisterExtension
   static RestoreHopEngineEnvironmentExtension env = new 
RestoreHopEngineEnvironmentExtension();
 
+  private DelayMeta meta;
+
+  @BeforeEach
+  void setUp() {
+    meta = new DelayMeta();
+  }
+
   @Test
   void testTransformMeta() throws HopException {
     List<String> attributes =
@@ -55,4 +71,54 @@ class DelayMetaTest {
         new LoadSaveTester<>(DelayMeta.class, attributes, getterMap, 
setterMap);
     loadSaveTester.testSerialization();
   }
+
+  @Test
+  void testSetDefault() {
+    meta.setDefault();
+
+    assertEquals("1", meta.getTimeout());
+    assertEquals("seconds", meta.getScaletime());
+    assertNull(meta.getTimeoutField());
+    assertFalse(meta.isScaleTimeFromField());
+    assertNull(meta.getScaleTimeField());
+  }
+
+  @ParameterizedTest(name = "index={0} <-> scaleTime={1}")
+  @CsvSource({"0, milliseconds", "1, seconds", "2, minutes", "3, hours"})
+  void testSetAndGetScaleTimeCode_Normal(int index, String expected) {
+    meta.setScaleTimeCode(index);
+
+    assertEquals(expected, meta.getScaletime());
+    assertEquals(index, meta.getScaleTimeCode());
+  }
+
+  @Test
+  void testGetScaleTimeCodeWhenNull() {
+    meta.setScaletime(null);
+    assertEquals(1, meta.getScaleTimeCode());
+  }
+
+  @Test
+  void testSetTimeoutFieldEmpty() {
+    meta.setTimeoutField("");
+    assertNull(meta.getTimeoutField());
+  }
+
+  @Test
+  void testSetTimeoutFieldValue() {
+    meta.setTimeoutField("timeout_col");
+    assertEquals("timeout_col", meta.getTimeoutField());
+  }
+
+  @Test
+  void testSetScaleTimeFieldEmpty() {
+    meta.setScaleTimeField("  ");
+    assertNotNull(meta.getScaleTimeField());
+  }
+
+  @Test
+  void testSetScaleTimeFieldValue() {
+    meta.setScaleTimeField("scale_col");
+    assertEquals("scale_col", meta.getScaleTimeField());
+  }
 }

Reply via email to