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 f711dcdaf9 Upgrade JUnit and migrate final tests (#6746)
f711dcdaf9 is described below
commit f711dcdaf9a31365bcf07f016352f3ddac095593
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Mon Mar 9 15:31:18 2026 +0100
Upgrade JUnit and migrate final tests (#6746)
---
core/pom.xml | 7 +-
.../hop/concurrency/ConcurrencyTestRunner.java | 4 +-
.../test/java/org/apache/hop/core/CounterTest.java | 11 +-
.../java/org/apache/hop/core/CountersTest.java | 9 +-
.../java/org/apache/hop/core/ResultFileTest.java | 10 +-
.../org/apache/hop/core/row/RowDataUtilTest.java | 14 +-
.../hop/core/row/value/ValueMetaStringTest.java | 6 +-
.../org/apache/hop/core/xml/XmlFormatterTest.java | 15 ++-
.../hop/junit/rules/RestoreHopEnvironment.java | 143 ---------------------
.../rules/RestoreHopEnvironmentExtension.java | 2 +-
.../serializer/multi/MetadataTestBase.java | 14 +-
.../multi/MultiMetadataProviderTest.java | 13 +-
.../multi/MultiMetadataSerializerTest.java | 15 ++-
engine-beam/pom.xml | 6 -
engine/pom.xml | 6 -
.../hop/core/reflection/StringSearcherTest.java | 13 +-
.../junit/rules/RestoreHopEngineEnvironment.java | 35 -----
.../RestoreHopEngineEnvironmentExtension.java | 3 +-
.../pipeline/transform/DynamicWaitTimesTest.java | 10 +-
.../test/java/org/apache/hop/utils/TestUtils.java | 4 +-
.../apache/test/util/impl/DotEqualsValidator.java | 2 +-
.../test/util/impl/EqualsEqualsValidator.java | 4 +-
plugins/misc/git/pom.xml | 8 ++
pom.xml | 6 +-
rap/pom.xml | 6 -
rcp/pom.xml | 6 -
ui/pom.xml | 6 -
27 files changed, 113 insertions(+), 265 deletions(-)
diff --git a/core/pom.xml b/core/pom.xml
index 780c4d38a3..93d89c5864 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -366,6 +366,7 @@
<artifactId>jackson-dataformat-xml</artifactId>
<scope>test</scope>
</dependency>
+
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
@@ -378,12 +379,6 @@
</exclusions>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>xmlunit</groupId>
<artifactId>xmlunit</artifactId>
diff --git
a/core/src/test/java/org/apache/hop/concurrency/ConcurrencyTestRunner.java
b/core/src/test/java/org/apache/hop/concurrency/ConcurrencyTestRunner.java
index 2d9b4e2484..95684efc2e 100644
--- a/core/src/test/java/org/apache/hop/concurrency/ConcurrencyTestRunner.java
+++ b/core/src/test/java/org/apache/hop/concurrency/ConcurrencyTestRunner.java
@@ -31,7 +31,7 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicBoolean;
-import org.junit.Assert;
+import org.junit.jupiter.api.Assertions;
/**
* This class is aimed to be a general runner for concurrency tests. You need
to follow a convention
@@ -196,7 +196,7 @@ class ConcurrencyTestRunner<M, B> {
String stacktrace = Throwables.getStackTraceAsString(throwable);
message.append('\n').append(stacktrace);
}
- Assert.fail(message.toString());
+ Assertions.fail(message.toString());
}
}
diff --git a/core/src/test/java/org/apache/hop/core/CounterTest.java
b/core/src/test/java/org/apache/hop/core/CounterTest.java
index f9799b6296..909d9fc0e1 100644
--- a/core/src/test/java/org/apache/hop/core/CounterTest.java
+++ b/core/src/test/java/org/apache/hop/core/CounterTest.java
@@ -17,11 +17,16 @@
package org.apache.hop.core;
-import junit.framework.TestCase;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
/** Test class for counter functionality. */
-public class CounterTest extends TestCase {
+class CounterTest {
/** Constructor test 1. */
+ @Test
public void testConstructor1() {
Counter cnt1 = new Counter();
assertEquals(1L, cnt1.getCounter());
@@ -53,6 +58,7 @@ public class CounterTest extends TestCase {
}
/** Test the setting of stuff. */
+ @Test
public void testSets() {
Counter cnt1 = new Counter();
cnt1.setCounter(5L);
@@ -69,6 +75,7 @@ public class CounterTest extends TestCase {
}
/** Test next(). */
+ @Test
public void testNext() {
Counter cnt1 = new Counter();
cnt1.setCounter(2L);
diff --git a/core/src/test/java/org/apache/hop/core/CountersTest.java
b/core/src/test/java/org/apache/hop/core/CountersTest.java
index 1df3a1a619..6c171df14b 100644
--- a/core/src/test/java/org/apache/hop/core/CountersTest.java
+++ b/core/src/test/java/org/apache/hop/core/CountersTest.java
@@ -17,11 +17,16 @@
package org.apache.hop.core;
-import junit.framework.TestCase;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+
+import org.junit.jupiter.api.Test;
/** Test class for counters functionality. */
-public class CountersTest extends TestCase {
+class CountersTest {
/** Test about all. Class is not too big. */
+ @Test
public void testGeneralFunctionality() {
Counters cntrs = Counters.getInstance();
assertNull(cntrs.getCounter("counter1"));
diff --git a/core/src/test/java/org/apache/hop/core/ResultFileTest.java
b/core/src/test/java/org/apache/hop/core/ResultFileTest.java
index 29eea3b7aa..243c9863ca 100644
--- a/core/src/test/java/org/apache/hop/core/ResultFileTest.java
+++ b/core/src/test/java/org/apache/hop/core/ResultFileTest.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
+import java.nio.file.Path;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.vfs2.FileObject;
@@ -34,11 +35,13 @@ import
org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.io.TempDir;
@ExtendWith(RestoreHopEnvironmentExtension.class)
class ResultFileTest {
+ @TempDir Path tempDirPath;
+
@BeforeEach
void before() throws Exception {
HopClientEnvironment.init();
@@ -46,8 +49,8 @@ class ResultFileTest {
@Test
void testGetRow() throws HopFileException, FileSystemException {
- File tempDir = new File(new TemporaryFolder().toString());
- FileObject tempFile = HopVfs.createTempFile("prefix", "suffix",
tempDir.toString());
+ File tempDir = tempDirPath.toFile();
+ FileObject tempFile = HopVfs.createTempFile("prefix", "suffix",
tempDir.getAbsolutePath());
Date timeBeforeFile = Calendar.getInstance().getTime();
ResultFile resultFile =
new ResultFile(ResultFile.FILE_TYPE_GENERAL, tempFile,
"myOriginParent", "myOrigin");
@@ -73,6 +76,5 @@ class ResultFileTest {
"ResultFile timestamp is created in the expected window");
tempFile.delete();
- tempDir.delete();
}
}
diff --git a/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
b/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
index ce28626c94..14b78230cd 100644
--- a/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/RowDataUtilTest.java
@@ -17,9 +17,14 @@
package org.apache.hop.core.row;
-import junit.framework.TestCase;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
-public class RowDataUtilTest extends TestCase {
+import org.junit.jupiter.api.Test;
+
+class RowDataUtilTest {
public boolean arrayCompare(Object[] arr1, int start1, Object[] arr2, int
start2, int len) {
boolean rcode = true;
@@ -36,6 +41,7 @@ public class RowDataUtilTest extends TestCase {
return rcode;
}
+ @Test
public void testResizeArray() {
Object[] arr1 = new Object[] {"test", Boolean.TRUE, 100L, 101L, new
String("test1")};
Object[] nullArr =
@@ -65,6 +71,7 @@ public class RowDataUtilTest extends TestCase {
assertTrue(arrayCompare(arr1, 0, arr4, 0, arr1.length)); // Elements of
arr1 are copied
}
+ @Test
public void testRemoveItem() {
Object[] arr = new Object[] {1L, 2L, 3L, 4L, 5L};
@@ -98,6 +105,7 @@ public class RowDataUtilTest extends TestCase {
assertTrue(arrayCompare(newArr4, 0, comp4, 0, newArr4.length));
}
+ @Test
public void testAddRowData() {
Object[] arr = new Object[] {1L, 2L, 3L};
@@ -120,6 +128,7 @@ public class RowDataUtilTest extends TestCase {
assertTrue(arrayCompare(newArr4, 0, arr, 0, arr.length));
}
+ @Test
public void testAddValueData() {
Object[] arr1 = new Object[] {1L};
Object[] arr2 = new Object[] {1L, 2L};
@@ -133,6 +142,7 @@ public class RowDataUtilTest extends TestCase {
assertTrue(arrayCompare(newArr2, 0, arr2, 0, arr2.length));
}
+ @Test
public void testRemoveItems() {
Object[] arr1 = new Object[] {1L, 2L, 3L, 4L, 5L};
Object[] comp1 = new Object[] {2L, 4L};
diff --git
a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaStringTest.java
b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaStringTest.java
index e7479c3894..7b49af9665 100644
--- a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaStringTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaStringTest.java
@@ -17,11 +17,11 @@
package org.apache.hop.core.row.value;
-import static junit.framework.TestCase.failNotEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import java.math.BigDecimal;
import java.sql.Timestamp;
@@ -949,11 +949,11 @@ class ValueMetaStringTest {
private static void assertSignum(String msg, int expected, int actual) {
if (expected < 0) {
if (actual >= 0) {
- failNotEquals(msg, "(<0)", actual);
+ fail(msg + " expected negative but was: " + actual);
}
} else if (expected > 0) {
if (actual <= 0) {
- failNotEquals(msg, "(>0)", actual);
+ fail(msg + " expected positive but was: " + actual);
}
} else {
assertEquals(expected, actual, msg);
diff --git a/core/src/test/java/org/apache/hop/core/xml/XmlFormatterTest.java
b/core/src/test/java/org/apache/hop/core/xml/XmlFormatterTest.java
index 2692240ba5..60aaaf9209 100644
--- a/core/src/test/java/org/apache/hop/core/xml/XmlFormatterTest.java
+++ b/core/src/test/java/org/apache/hop/core/xml/XmlFormatterTest.java
@@ -16,12 +16,13 @@
*/
package org.apache.hop.core.xml;
-import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
+import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.XMLUnit;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -47,7 +48,8 @@ class XmlFormatterTest {
}
String result = XmlFormatter.format(inXml);
- assertXMLEqual(expectedXml, result);
+ Diff diff = XMLUnit.compareXML(expectedXml, result);
+ assertTrue(diff.similar(), "XML documents are not equal: " +
diff.toString());
}
@Test
@@ -64,7 +66,8 @@ class XmlFormatterTest {
}
String result = XmlFormatter.format(inXml);
- assertXMLEqual(expectedXml, result);
+ Diff diff = XMLUnit.compareXML(expectedXml, result);
+ assertTrue(diff.similar(), "XML documents are not equal: " +
diff.toString());
}
@Test
@@ -82,7 +85,8 @@ class XmlFormatterTest {
}
String result = XmlFormatter.format(inXml);
- assertXMLEqual(expectedXml, result);
+ Diff diff = XMLUnit.compareXML(expectedXml, result);
+ assertTrue(diff.similar(), "XML documents are not equal: " +
diff.toString());
}
@Test
@@ -100,6 +104,7 @@ class XmlFormatterTest {
}
String result = XmlFormatter.format(inXml);
- assertXMLEqual(expectedXml, result);
+ Diff diff = XMLUnit.compareXML(expectedXml, result);
+ assertTrue(diff.similar(), "XML documents are not equal: " +
diff.toString());
}
}
diff --git
a/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironment.java
b/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironment.java
deleted file mode 100644
index c9c40be346..0000000000
--- a/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironment.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hop.junit.rules;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.TimeZone;
-import org.apache.commons.io.FileUtils;
-import org.apache.hop.core.Const;
-import org.apache.hop.core.HopClientEnvironment;
-import org.apache.hop.core.database.Database;
-import org.apache.hop.core.database.DatabaseMeta;
-import org.apache.hop.core.extension.ExtensionPointMap;
-import org.apache.hop.core.logging.HopLogStore;
-import org.apache.hop.core.logging.LogChannel;
-import org.apache.hop.core.logging.LogChannelFactory;
-import org.apache.hop.core.logging.MetricsRegistry;
-import org.apache.hop.core.plugins.PluginRegistry;
-import org.apache.hop.core.row.value.ValueMetaBase;
-import org.apache.hop.core.row.value.ValueMetaFactory;
-import org.apache.hop.core.row.value.timestamp.SimpleTimestampFormat;
-import org.apache.hop.core.vfs.HopVfs;
-import org.apache.hop.core.xml.XmlHandler;
-import org.apache.hop.core.xml.XmlHandlerCache;
-import org.apache.hop.i18n.LanguageChoice;
-import org.junit.rules.ExternalResource;
-
-public class RestoreHopEnvironment extends ExternalResource {
- private Properties originalProperties;
- private Locale originalLocale;
- private Locale originalFormatLocale;
- private TimeZone originalTimezone;
- private Path tmpHopHome;
-
- /**
- * Creates a {@code RestoreHopEnvironment} rule that restores all system
properties and resets any
- * Hop related environment instances.
- */
- public RestoreHopEnvironment() {
- // Do nothing
- }
-
- void defaultInit() throws Throwable {
- // make sure static class initializers are correctly initialized
- // re-init
- cleanUp();
- HopClientEnvironment.init();
-
- // initialize some classes, this will fail if some tests init this classes
before any Hop init()
- // the best thing to do is to invoke this ClassRule in every test
- Class.forName(Database.class.getName());
- Class.forName(Timestamp.class.getName());
- Class.forName(ValueMetaBase.class.getName());
- Class.forName(SimpleTimestampFormat.class.getName());
- Class.forName(SimpleDateFormat.class.getName());
- Class.forName(XmlHandler.class.getName());
- Class.forName(LogChannel.class.getName());
- DatabaseMeta.init();
- ExtensionPointMap.getInstance().reInitialize();
- HopVfs.reset(); // reinit
- }
-
- void cleanUp() {
- HopClientEnvironment.reset();
- PluginRegistry.getInstance().reset();
- MetricsRegistry.getInstance().reset();
- ExtensionPointMap.getInstance().reset();
- if (HopLogStore.isInitialized()) {
- HopLogStore.getInstance().reset();
- }
- HopLogStore.setLogChannelFactory(new LogChannelFactory());
- HopVfs.reset();
- XmlHandlerCache.getInstance().clear();
- ValueMetaFactory.pluginRegistry = PluginRegistry.getInstance();
- }
-
- @Override
- protected void before() throws Throwable {
- originalProperties = System.getProperties();
- System.setProperties(copyOf(originalProperties));
-
- originalLocale = Locale.getDefault();
- originalFormatLocale = Locale.getDefault(Locale.Category.FORMAT);
- originalTimezone = TimeZone.getDefault();
- TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
- Locale.setDefault(Locale.US);
- Locale.setDefault(Locale.Category.FORMAT, Locale.US);
- LanguageChoice.getInstance().setDefaultLocale(Locale.US);
-
- tmpHopHome = Files.createTempDirectory(Long.toString(System.nanoTime()));
- System.setProperty("file.encoding", "UTF-8");
- System.setProperty("user.timezone", "UTC");
- System.setProperty("HOP_HOME", tmpHopHome.toString());
- System.setProperty(Const.HOP_DISABLE_CONSOLE_LOGGING, "Y");
- System.clearProperty(Const.VFS_USER_DIR_IS_ROOT);
- System.clearProperty(Const.HOP_LENIENT_STRING_TO_NUMBER_CONVERSION);
- System.clearProperty(Const.HOP_DEFAULT_INTEGER_FORMAT);
- System.clearProperty(Const.HOP_DEFAULT_NUMBER_FORMAT);
- System.clearProperty(Const.HOP_DEFAULT_BIGNUMBER_FORMAT);
- System.clearProperty(Const.HOP_DEFAULT_DATE_FORMAT);
- System.clearProperty(Const.HOP_DEFAULT_TIMESTAMP_FORMAT);
- System.clearProperty(Const.HOP_EMPTY_STRING_DIFFERS_FROM_NULL);
-
- defaultInit();
- }
-
- private Properties copyOf(Properties originalProperties) {
- Properties copy = new Properties();
- copy.putAll(originalProperties);
- return copy;
- }
-
- @Override
- protected void after() {
- cleanUp();
-
- System.setProperties(originalProperties);
- Locale.setDefault(originalLocale);
- Locale.setDefault(Locale.Category.FORMAT, originalFormatLocale);
- LanguageChoice.getInstance().setDefaultLocale(originalLocale);
- TimeZone.setDefault(originalTimezone);
- FileUtils.deleteQuietly(tmpHopHome.toFile());
- }
-}
diff --git
a/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironmentExtension.java
b/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironmentExtension.java
index 8dee942c4a..a340d575ba 100644
---
a/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironmentExtension.java
+++
b/core/src/test/java/org/apache/hop/junit/rules/RestoreHopEnvironmentExtension.java
@@ -48,7 +48,7 @@ import org.junit.jupiter.api.extension.ExtensionContext;
/**
* JUnit 5 Extension that restores all system properties and resets any Hop
related environment
- * instances. This is the JUnit 5 equivalent of the JUnit 4
RestoreHopEnvironment rule.
+ * instances.
*/
public class RestoreHopEnvironmentExtension implements BeforeAllCallback,
AfterAllCallback {
private Properties originalProperties;
diff --git
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MetadataTestBase.java
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MetadataTestBase.java
index fc76f4ea6c..3d89550faf 100644
---
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MetadataTestBase.java
+++
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MetadataTestBase.java
@@ -18,10 +18,11 @@
package org.apache.hop.metadata.serializer.multi;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import junit.framework.TestCase;
import org.apache.hop.core.HopClientEnvironment;
import org.apache.hop.core.encryption.HopTwoWayPasswordEncoder;
import org.apache.hop.core.encryption.ITwoWayPasswordEncoder;
@@ -32,17 +33,18 @@ import org.apache.hop.metadata.api.HopMetadata;
import org.apache.hop.metadata.api.IHopMetadataProvider;
import org.apache.hop.metadata.plugin.MetadataPluginType;
import org.apache.hop.metadata.serializer.memory.MemoryMetadataProvider;
-import org.junit.Ignore;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
-@Ignore("This test needs to be reviewed")
-public class MetadataTestBase extends TestCase {
+@Disabled("This test needs to be reviewed")
+class MetadataTestBase {
protected MultiMetadataProvider multiMetadataProvider;
protected MemoryMetadataProvider provider1;
protected MemoryMetadataProvider provider2;
protected MemoryMetadataProvider provider3;
- @Override
- protected void setUp() throws Exception {
+ @BeforeEach
+ void setUp() throws Exception {
HopClientEnvironment.init();
PluginRegistry registry = PluginRegistry.getInstance();
registry.registerPluginType(MetadataPluginType.class);
diff --git
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
index e5499823d1..9c8cf4af54 100644
---
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
+++
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataProviderTest.java
@@ -18,6 +18,10 @@
package org.apache.hop.metadata.serializer.multi;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.util.List;
import org.apache.hop.core.encryption.HopTwoWayPasswordEncoder;
import org.apache.hop.core.exception.HopException;
@@ -25,9 +29,11 @@ import org.apache.hop.core.variables.Variables;
import org.apache.hop.metadata.api.IHopMetadata;
import org.apache.hop.metadata.api.IHopMetadataProvider;
import org.apache.hop.metadata.serializer.memory.MemoryMetadataProvider;
+import org.junit.jupiter.api.Test;
-public class MultiMetadataProviderTest extends MetadataTestBase {
+class MultiMetadataProviderTest extends MetadataTestBase {
+ @Test
public void testGetDescription() {
String description = multiMetadataProvider.getDescription();
assertNotNull(description);
@@ -35,6 +41,7 @@ public class MultiMetadataProviderTest extends
MetadataTestBase {
"Multi Metadata Provider with 3 providers: Provider1, Provider2,
Provider3", description);
}
+ @Test
public void testGetMetadataClasses() {
List<Class<IHopMetadata>> list =
multiMetadataProvider.getMetadataClasses();
assertEquals(2, list.size());
@@ -42,11 +49,13 @@ public class MultiMetadataProviderTest extends
MetadataTestBase {
assertTrue(list.contains(MetadataType2.class));
}
+ @Test
public void testGetMetadataClassForKey() throws HopException {
assertEquals(MetadataType1.class,
multiMetadataProvider.getMetadataClassForKey("type-1"));
assertEquals(MetadataType2.class,
multiMetadataProvider.getMetadataClassForKey("type-2"));
}
+ @Test
public void testFindProvider() {
IHopMetadataProvider look1 =
multiMetadataProvider.findProvider("Provider1");
assertNotNull(look1);
@@ -59,11 +68,13 @@ public class MultiMetadataProviderTest extends
MetadataTestBase {
assertEquals(provider3, look3);
}
+ @Test
public void testGetProviders() {
List<IHopMetadataProvider> list = multiMetadataProvider.getProviders();
assertEquals(3, list.size());
}
+ @Test
public void testSetProviders() {
List<IHopMetadataProvider> list = multiMetadataProvider.getProviders();
MemoryMetadataProvider provider4 =
diff --git
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
index 998c472296..c8bf0e2ad8 100644
---
a/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
+++
b/core/src/test/java/org/apache/hop/metadata/serializer/multi/MultiMetadataSerializerTest.java
@@ -18,11 +18,17 @@
package org.apache.hop.metadata.serializer.multi;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.util.List;
import org.apache.hop.core.exception.HopException;
import org.apache.hop.metadata.api.IHopMetadataSerializer;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
-public class MultiMetadataSerializerTest extends MetadataTestBase {
+class MultiMetadataSerializerTest extends MetadataTestBase {
protected MetadataType1 object1;
protected MetadataType2 object2;
@@ -31,7 +37,8 @@ public class MultiMetadataSerializerTest extends
MetadataTestBase {
protected MetadataType1 object5;
@Override
- protected void setUp() throws Exception {
+ @BeforeEach
+ void setUp() throws Exception {
super.setUp();
// Throw a few objects in providers 1, 2 and 3
@@ -52,6 +59,7 @@ public class MultiMetadataSerializerTest extends
MetadataTestBase {
provider3.getSerializer(type1).save(object5); // same name as in provider 1
}
+ @Test
public void testLoad() throws HopException {
IHopMetadataSerializer<MetadataType1> s1 =
multiMetadataProvider.getSerializer(MetadataType1.class);
@@ -81,6 +89,7 @@ public class MultiMetadataSerializerTest extends
MetadataTestBase {
assertEquals("v4", m4.getValue());
}
+ @Test
public void testSave() throws HopException {
MetadataType1 m6 = new MetadataType1("t1o6", "d6", "v6");
@@ -112,6 +121,7 @@ public class MultiMetadataSerializerTest extends
MetadataTestBase {
assertEquals(m7, t1o7);
}
+ @Test
public void testListObjectNames() throws HopException {
IHopMetadataSerializer<MetadataType1> s1 =
multiMetadataProvider.getSerializer(MetadataType1.class);
@@ -128,6 +138,7 @@ public class MultiMetadataSerializerTest extends
MetadataTestBase {
assertTrue(names2.contains("t2o4"));
}
+ @Test
public void testExists() throws HopException {
IHopMetadataSerializer<MetadataType1> s1 =
multiMetadataProvider.getSerializer(MetadataType1.class);
diff --git a/engine-beam/pom.xml b/engine-beam/pom.xml
index a4441f4531..c2dc0c2bff 100644
--- a/engine-beam/pom.xml
+++ b/engine-beam/pom.xml
@@ -115,12 +115,6 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/engine/pom.xml b/engine/pom.xml
index 696c231ccd..f5bad594c8 100644
--- a/engine/pom.xml
+++ b/engine/pom.xml
@@ -222,12 +222,6 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
diff --git
a/engine/src/test/java/org/apache/hop/core/reflection/StringSearcherTest.java
b/engine/src/test/java/org/apache/hop/core/reflection/StringSearcherTest.java
index d3d5ecd999..387e904c62 100644
---
a/engine/src/test/java/org/apache/hop/core/reflection/StringSearcherTest.java
+++
b/engine/src/test/java/org/apache/hop/core/reflection/StringSearcherTest.java
@@ -16,20 +16,13 @@
*/
package org.apache.hop.core.reflection;
-import org.apache.hop.core.HopEnvironment;
-import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
+import org.apache.hop.junit.rules.RestoreHopEngineEnvironmentExtension;
+import org.junit.jupiter.api.extension.ExtendWith;
// import org.apache.hop.pipeline.transforms.filterrows.FilterRowsMeta;
+@ExtendWith(RestoreHopEngineEnvironmentExtension.class)
public class StringSearcherTest {
- @ClassRule public static RestoreHopEngineEnvironment env = new
RestoreHopEngineEnvironment();
-
- @BeforeClass
- public static void setUpBeforeClass() throws
org.apache.hop.core.exception.HopException {
- HopEnvironment.init();
- }
// TODO: Move Test
/* @Test
diff --git
a/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironment.java
b/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironment.java
deleted file mode 100644
index 93965f0a52..0000000000
---
a/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironment.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hop.junit.rules;
-
-import org.apache.hop.core.HopEnvironment;
-
-public class RestoreHopEngineEnvironment extends RestoreHopEnvironment {
-
- @Override
- void defaultInit() throws Throwable {
- super.defaultInit();
- HopEnvironment.init();
- }
-
- @Override
- void cleanUp() {
- HopEnvironment.reset();
- super.cleanUp();
- }
-}
diff --git
a/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironmentExtension.java
b/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironmentExtension.java
index 436b7096f0..f88982a69b 100644
---
a/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironmentExtension.java
+++
b/engine/src/test/java/org/apache/hop/junit/rules/RestoreHopEngineEnvironmentExtension.java
@@ -21,8 +21,7 @@ import org.apache.hop.core.HopEnvironment;
/**
* JUnit 5 Extension that restores all system properties and resets any Hop
related environment
- * instances, including full engine initialization. This is the JUnit 5
equivalent of the JUnit 4
- * RestoreHopEngineEnvironment rule.
+ * instances, including full engine initialization.
*/
public class RestoreHopEngineEnvironmentExtension extends
RestoreHopEnvironmentExtension {
diff --git
a/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
b/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
index 2dc2072799..15fb608b91 100644
---
a/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
+++
b/engine/src/test/java/org/apache/hop/pipeline/transform/DynamicWaitTimesTest.java
@@ -17,20 +17,25 @@
package org.apache.hop.pipeline.transform;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
-import junit.framework.TestCase;
import org.apache.hop.core.BlockingRowSet;
import org.apache.hop.core.IRowSet;
+import org.junit.jupiter.api.Test;
-public class DynamicWaitTimesTest extends TestCase {
+class DynamicWaitTimesTest {
DynamicWaitTimes.SingleStreamStatus status;
AtomicInteger activeStreamIndex = new AtomicInteger();
+ @Test
public void testSingleStreamStatus() {
IRowSet rowSet = new BlockingRowSet(3);
status = DynamicWaitTimes.build(Collections.singletonList(rowSet), () ->
0, 20);
@@ -43,6 +48,7 @@ public class DynamicWaitTimesTest extends TestCase {
assertEquals(20, status.get());
}
+ @Test
public void testMultiStreamStatus() {
List<IRowSet> rowSetList =
new ArrayList<>(
diff --git a/engine/src/test/java/org/apache/hop/utils/TestUtils.java
b/engine/src/test/java/org/apache/hop/utils/TestUtils.java
index 1400a439f2..821a8d4ef8 100644
--- a/engine/src/test/java/org/apache/hop/utils/TestUtils.java
+++ b/engine/src/test/java/org/apache/hop/utils/TestUtils.java
@@ -17,7 +17,7 @@
package org.apache.hop.utils;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
import java.io.IOException;
@@ -106,7 +106,7 @@ public class TestUtils {
public static void checkEqualsHashCodeConsistency(Object object1, Object
object2) {
if (object1.equals(object2)) {
- assertEquals("inconsistent hashcode and equals", object1.hashCode(),
object2.hashCode());
+ assertEquals(object1.hashCode(), object2.hashCode(), "inconsistent
hashcode and equals");
}
}
}
diff --git
a/engine/src/test/java/org/apache/test/util/impl/DotEqualsValidator.java
b/engine/src/test/java/org/apache/test/util/impl/DotEqualsValidator.java
index 8fdbcc5723..864c74239d 100644
--- a/engine/src/test/java/org/apache/test/util/impl/DotEqualsValidator.java
+++ b/engine/src/test/java/org/apache/test/util/impl/DotEqualsValidator.java
@@ -17,7 +17,7 @@
package org.apache.test.util.impl;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.test.util.IObjectValidator;
diff --git
a/engine/src/test/java/org/apache/test/util/impl/EqualsEqualsValidator.java
b/engine/src/test/java/org/apache/test/util/impl/EqualsEqualsValidator.java
index 7ad03090aa..6434e927cc 100644
--- a/engine/src/test/java/org/apache/test/util/impl/EqualsEqualsValidator.java
+++ b/engine/src/test/java/org/apache/test/util/impl/EqualsEqualsValidator.java
@@ -17,7 +17,7 @@
package org.apache.test.util.impl;
-import static org.junit.Assert.assertSame;
+import static org.junit.jupiter.api.Assertions.assertSame;
import org.apache.test.util.IObjectValidator;
@@ -26,6 +26,6 @@ public class EqualsEqualsValidator<T> implements
IObjectValidator<T> {
@Override
public void validate(T expected, Object actual) {
assertSame(
- "Expected " + expected + " == " + actual + " to evaluate to true.",
expected, actual);
+ expected, actual, "Expected " + expected + " == " + actual + " to
evaluate to true.");
}
}
diff --git a/plugins/misc/git/pom.xml b/plugins/misc/git/pom.xml
index 5f9cdd113c..8410a75434 100644
--- a/plugins/misc/git/pom.xml
+++ b/plugins/misc/git/pom.xml
@@ -60,12 +60,20 @@
<artifactId>org.eclipse.jgit.ssh.apache</artifactId>
<version>${dependency.jgit.revision}</version>
</dependency>
+ <!-- JUnit 4 API needed by org.eclipse.jgit.junit.RepositoryTestCase
(TemporaryFolder, etc.) -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit.junit</artifactId>
<version>${dependency.jgit.revision}</version>
<scope>test</scope>
</dependency>
+ <!-- Required to run UIGitTest:
org.eclipse.jgit.junit.RepositoryTestCase expects JUnit 4 TestName rule -->
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
diff --git a/pom.xml b/pom.xml
index b3b17c1c0e..bff202c52b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -110,7 +110,7 @@
<jandex.version>3.5.3</jandex.version>
<java-hamcrest.version>2.0.0.0</java-hamcrest.version>
<javadoc.failOnWarnings>false</javadoc.failOnWarnings>
- <junit.version>5.14.3</junit.version>
+ <junit.version>6.0.3</junit.version>
<license.bundleLicenseFile>META-INF/LICENSE.txt</license.bundleLicenseFile>
<license.failOnLicenseCheck>false</license.failOnLicenseCheck>
<license.inceptionYear>2020</license.inceptionYear>
@@ -121,7 +121,9 @@
<maven-failsafe-plugin.forkCount>1</maven-failsafe-plugin.forkCount>
<maven-failsafe-plugin.reuseForks>true</maven-failsafe-plugin.reuseForks>
<maven-javadoc-plugin.version>3.10.0</maven-javadoc-plugin.version>
- <maven-surefire-plugin.argLine>-Duser.timezone=UTC
+
<maven-surefire-plugin.argLine>-javaagent:${settings.localRepository}/org/mockito/mockito-core/${mockito-core.version}/mockito-core-${mockito-core.version}.jar
+ -Xshare:off
+ -Duser.timezone=UTC
-Dfile.encoding=UTF-8
-Duser.language=en -Duser.country=US
--add-opens java.xml/jdk.xml.internal=ALL-UNNAMED
diff --git a/rap/pom.xml b/rap/pom.xml
index 4479d1aca5..73d0fa0064 100644
--- a/rap/pom.xml
+++ b/rap/pom.xml
@@ -56,11 +56,5 @@
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/rcp/pom.xml b/rcp/pom.xml
index 68ad5bcd2e..ab910a9328 100644
--- a/rcp/pom.xml
+++ b/rcp/pom.xml
@@ -54,11 +54,5 @@
<version>${org.eclipse.platform.version}</version>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git a/ui/pom.xml b/ui/pom.xml
index e03261d42c..d03949386b 100644
--- a/ui/pom.xml
+++ b/ui/pom.xml
@@ -119,12 +119,6 @@
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<repositories>