diff --git a/extensions-contrib/cassandra-storage/pom.xml b/extensions-contrib/cassandra-storage/pom.xml
index f1a93f561da6..d32866062a2a 100644
--- a/extensions-contrib/cassandra-storage/pom.xml
+++ b/extensions-contrib/cassandra-storage/pom.xml
@@ -166,12 +166,6 @@
provided
-
-
- junit
- junit
- test
-
diff --git a/extensions-contrib/consul-extensions/pom.xml b/extensions-contrib/consul-extensions/pom.xml
index 4dd1764f1da0..3fbc60cbd610 100644
--- a/extensions-contrib/consul-extensions/pom.xml
+++ b/extensions-contrib/consul-extensions/pom.xml
@@ -40,6 +40,21 @@
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
org.apache.druid
druid-server
@@ -112,11 +127,6 @@
-
- junit
- junit
- test
-
org.easymock
easymock
diff --git a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulClientsSecurityTest.java b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulClientsSecurityTest.java
index d8e79ecc3e68..1a049102b33e 100644
--- a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulClientsSecurityTest.java
+++ b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulClientsSecurityTest.java
@@ -20,8 +20,8 @@
package org.apache.druid.consul.discovery;
import com.ecwid.consul.v1.ConsulClient;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
/**
* Tests for Consul client security validation, especially around basic auth over HTTP.
@@ -38,22 +38,22 @@ public void testBasicAuthOverHttpFailsFastByDefault()
// No TLS configured
.build();
- IllegalStateException exception = Assert.assertThrows(
+ IllegalStateException exception = Assertions.assertThrows(
IllegalStateException.class,
() -> ConsulClients.create(config)
);
- Assert.assertTrue(
- "Exception should mention TLS not enabled",
- exception.getMessage().contains("TLS is not enabled")
+ Assertions.assertTrue(
+ exception.getMessage().contains("TLS is not enabled"),
+ "Exception should mention TLS not enabled"
);
- Assert.assertTrue(
- "Exception should mention cleartext transmission",
- exception.getMessage().contains("cleartext")
+ Assertions.assertTrue(
+ exception.getMessage().contains("cleartext"),
+ "Exception should mention cleartext transmission"
);
- Assert.assertTrue(
- "Exception should mention allowBasicAuthOverHttp flag",
- exception.getMessage().contains("allowBasicAuthOverHttp")
+ Assertions.assertTrue(
+ exception.getMessage().contains("allowBasicAuthOverHttp"),
+ "Exception should mention allowBasicAuthOverHttp flag"
);
}
@@ -70,7 +70,7 @@ public void testBasicAuthOverHttpSucceedsWithExplicitFlag()
// Should not throw with the flag enabled
ConsulClient client = ConsulClients.create(config);
- Assert.assertNotNull(client);
+ Assertions.assertNotNull(client);
}
@Test
@@ -84,14 +84,14 @@ public void testBasicAuthOverHttpFailsWhenExplicitlyDisabled()
// No TLS configured
.build();
- IllegalStateException exception = Assert.assertThrows(
+ IllegalStateException exception = Assertions.assertThrows(
IllegalStateException.class,
() -> ConsulClients.create(config)
);
- Assert.assertTrue(
- "Exception should mention TLS not enabled",
- exception.getMessage().contains("TLS is not enabled")
+ Assertions.assertTrue(
+ exception.getMessage().contains("TLS is not enabled"),
+ "Exception should mention TLS not enabled"
);
}
@@ -105,7 +105,7 @@ public void testNoBasicAuthOverHttpSucceeds()
// Should succeed without basic auth even without TLS
ConsulClient client = ConsulClients.create(config);
- Assert.assertNotNull(client);
+ Assertions.assertNotNull(client);
}
@Test
@@ -119,7 +119,7 @@ public void testBasicAuthUserWithoutPasswordDoesNotTriggerValidation()
// Should succeed - validation only applies when both user and password are set
ConsulClient client = ConsulClients.create(config);
- Assert.assertNotNull(client);
+ Assertions.assertNotNull(client);
}
@Test
@@ -133,7 +133,7 @@ public void testBasicAuthPasswordWithoutUserDoesNotTriggerValidation()
// Should succeed - validation only applies when both user and password are set
ConsulClient client = ConsulClients.create(config);
- Assert.assertNotNull(client);
+ Assertions.assertNotNull(client);
}
@Test
@@ -143,9 +143,9 @@ public void testAllowBasicAuthOverHttpDefaultsToFalse()
.servicePrefix("druid")
.build();
- Assert.assertFalse(
- "allowBasicAuthOverHttp should default to false",
- config.getAuth().getAllowBasicAuthOverHttp()
+ Assertions.assertFalse(
+ config.getAuth().getAllowBasicAuthOverHttp(),
+ "allowBasicAuthOverHttp should default to false"
);
}
}
diff --git a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDiscoveryConfigTest.java b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDiscoveryConfigTest.java
index c4c5df5ffb47..92466d10a580 100644
--- a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDiscoveryConfigTest.java
+++ b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDiscoveryConfigTest.java
@@ -22,8 +22,10 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.druid.jackson.DefaultObjectMapper;
import org.joda.time.Duration;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
public class ConsulDiscoveryConfigTest
{
@@ -80,7 +82,7 @@ public void testAllowBasicAuthOverHttpDefaultsToFalse() throws Exception
+ " \"service\": { \"servicePrefix\": \"druid\" }\n"
+ "}\n"
);
- Assert.assertFalse(config.getAuth().getAllowBasicAuthOverHttp());
+ Assertions.assertFalse(config.getAuth().getAllowBasicAuthOverHttp());
}
@Test
@@ -92,7 +94,7 @@ public void testAllowBasicAuthOverHttpExplicitlySet() throws Exception
+ " \"service\": { \"servicePrefix\": \"druid\" }\n"
+ "}\n"
);
- Assert.assertTrue(config.getAuth().getAllowBasicAuthOverHttp());
+ Assertions.assertTrue(config.getAuth().getAllowBasicAuthOverHttp());
}
@Test
@@ -104,19 +106,21 @@ public void testNegativeMaxWatchRetriesMeansUnlimited() throws Exception
+ " \"watch\": { \"maxWatchRetries\": -1 }\n"
+ "}\n"
);
- Assert.assertEquals(Long.MAX_VALUE, config.getWatch().getMaxWatchRetries());
+ Assertions.assertEquals(Long.MAX_VALUE, config.getWatch().getMaxWatchRetries());
}
- @Test(expected = IllegalArgumentException.class)
+ @Test
public void testNullServicePrefixThrows()
{
- TestUtils.builder().servicePrefix(null).build();
+ assertThrows(IllegalArgumentException.class, () ->
+ TestUtils.builder().servicePrefix(null).build());
}
- @Test(expected = IllegalArgumentException.class)
+ @Test
public void testEmptyServicePrefixThrows()
{
- TestUtils.builder().servicePrefix("").build();
+ assertThrows(IllegalArgumentException.class, () ->
+ TestUtils.builder().servicePrefix("").build());
}
@Test
@@ -128,8 +132,8 @@ public void testLeaderRetryOverrides() throws Exception
+ " \"leader\": { \"leaderMaxErrorRetries\": 5, \"leaderRetryBackoffMax\": \"PT30S\" }\n"
+ "}\n"
);
- Assert.assertEquals(5L, config.getLeader().getLeaderMaxErrorRetries());
- Assert.assertEquals(Duration.millis(30000), config.getLeader().getLeaderRetryBackoffMax());
+ Assertions.assertEquals(5L, config.getLeader().getLeaderMaxErrorRetries());
+ Assertions.assertEquals(Duration.millis(30000), config.getLeader().getLeaderRetryBackoffMax());
}
@Test
@@ -141,7 +145,7 @@ public void testSocketTimeoutMustExceedWatchSeconds()
.socketTimeout(Duration.millis(5000))
.watchSeconds(Duration.millis(60000))
.build();
- Assert.fail("Expected IllegalArgumentException for socketTimeout <= watchSeconds");
+ Assertions.fail("Expected IllegalArgumentException for socketTimeout <= watchSeconds");
}
catch (IllegalArgumentException expected) {
// expected
@@ -156,7 +160,7 @@ public void testDefaultSocketTimeoutGreaterThanWatchSeconds()
.watchSeconds(Duration.millis(60000))
.build();
- Assert.assertTrue(config.getConnection().getSocketTimeout().isLongerThan(config.getWatch().getWatchSeconds()));
+ Assertions.assertTrue(config.getConnection().getSocketTimeout().isLongerThan(config.getWatch().getWatchSeconds()));
}
@Test
@@ -175,12 +179,12 @@ public void testToStringMasksSensitiveData()
String toString = config.toString();
- Assert.assertFalse(toString.contains("secret-acl-token"));
- Assert.assertFalse(toString.contains("password"));
- Assert.assertFalse(toString.contains("admin"));
- Assert.assertTrue(toString.contains("*****"));
- Assert.assertTrue(toString.contains("localhost"));
- Assert.assertTrue(toString.contains("druid"));
+ Assertions.assertFalse(toString.contains("secret-acl-token"));
+ Assertions.assertFalse(toString.contains("password"));
+ Assertions.assertFalse(toString.contains("admin"));
+ Assertions.assertTrue(toString.contains("*****"));
+ Assertions.assertTrue(toString.contains("localhost"));
+ Assertions.assertTrue(toString.contains("druid"));
}
@Test
@@ -192,7 +196,7 @@ public void testLeaderSessionTtlDefault() throws Exception
.build();
// Default should be max(45s, 3 * healthCheckInterval)
- Assert.assertEquals(Duration.standardSeconds(45), config.getLeader().getLeaderSessionTtl());
+ Assertions.assertEquals(Duration.standardSeconds(45), config.getLeader().getLeaderSessionTtl());
}
@Test
@@ -205,16 +209,17 @@ public void testLeaderSessionTtlCustom() throws Exception
+ "}\n"
);
- Assert.assertEquals(Duration.standardSeconds(60), config.getLeader().getLeaderSessionTtl());
+ Assertions.assertEquals(Duration.standardSeconds(60), config.getLeader().getLeaderSessionTtl());
}
- @Test(expected = IllegalArgumentException.class)
+ @Test
public void testLeaderSessionTtlTooLow()
{
- TestUtils.builder()
- .servicePrefix("druid")
- .leaderSessionTtl(Duration.standardSeconds(5))
- .build();
+ assertThrows(IllegalArgumentException.class, () ->
+ TestUtils.builder()
+ .servicePrefix("druid")
+ .leaderSessionTtl(Duration.standardSeconds(5))
+ .build());
}
@Test
@@ -238,7 +243,7 @@ public void testLeaderSessionTtlDependsOnHealthCheckInterval() throws Exception
.build();
// Should be 3 * healthCheckInterval = 60s (greater than minimum 45s)
- Assert.assertEquals(Duration.standardSeconds(60), config.getLeader().getLeaderSessionTtl());
+ Assertions.assertEquals(Duration.standardSeconds(60), config.getLeader().getLeaderSessionTtl());
}
@Test
@@ -258,11 +263,11 @@ public void testServiceTagsDefensiveCopyAndUnmodifiable()
// Original map modifications should not affect stored map
originalTags.put("key1", "mutated");
- Assert.assertEquals("value1", serviceConfig.getServiceTags().get("key1"));
+ Assertions.assertEquals("value1", serviceConfig.getServiceTags().get("key1"));
try {
serviceConfig.getServiceTags().put("key2", "value2");
- Assert.fail("Expected UnsupportedOperationException when mutating serviceTags");
+ Assertions.fail("Expected UnsupportedOperationException when mutating serviceTags");
}
catch (UnsupportedOperationException expected) {
// expected
@@ -276,7 +281,7 @@ private void testSerde(String jsonStr) throws Exception
jsonMapper.writeValueAsString(config),
ConsulDiscoveryConfig.class
);
- Assert.assertEquals(config, roundTrip);
+ Assertions.assertEquals(config, roundTrip);
}
private ConsulDiscoveryConfig testSerdeAndReturn(String jsonStr) throws Exception
@@ -286,7 +291,7 @@ private ConsulDiscoveryConfig testSerdeAndReturn(String jsonStr) throws Exceptio
jsonMapper.writeValueAsString(config),
ConsulDiscoveryConfig.class
);
- Assert.assertEquals(config, roundTrip);
+ Assertions.assertEquals(config, roundTrip);
return config;
}
}
diff --git a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeAnnouncerTest.java b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeAnnouncerTest.java
index 65c4dcdb085a..506b6c4da2a3 100644
--- a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeAnnouncerTest.java
+++ b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeAnnouncerTest.java
@@ -26,17 +26,14 @@
import org.easymock.Capture;
import org.easymock.EasyMock;
import org.joda.time.Duration;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-@RunWith(JUnit4.class)
public class ConsulDruidNodeAnnouncerTest
{
private final DiscoveryDruidNode testNode = new DiscoveryDruidNode(
@@ -56,13 +53,13 @@ public class ConsulDruidNodeAnnouncerTest
private ConsulApiClient mockConsulApiClient;
private ConsulDruidNodeAnnouncer announcer;
- @Before
+ @BeforeEach
public void setUp()
{
mockConsulApiClient = EasyMock.createMock(ConsulApiClient.class);
}
- @After
+ @AfterEach
public void tearDown()
{
// Don't call stop() here - each test will handle its own lifecycle
@@ -88,7 +85,7 @@ public void testAnnounce() throws Exception
announcer = new ConsulDruidNodeAnnouncer(mockConsulApiClient, config);
announcer.start();
announcer.announce(testNode);
- Assert.assertEquals(testNode, nodeCapture.getValue());
+ Assertions.assertEquals(testNode, nodeCapture.getValue());
// Explicitly stop to trigger cleanup
announcer.stop();
@@ -149,7 +146,7 @@ public void testUnannounce() throws Exception
// Verify service ID format
String expectedServiceId = "druid-broker-test-host-8082";
- Assert.assertEquals(expectedServiceId, deregisterCapture.getValue());
+ Assertions.assertEquals(expectedServiceId, deregisterCapture.getValue());
}
@Test
@@ -173,10 +170,10 @@ public void testAnnounceFails() throws Exception
try {
announcer.announce(testNode);
- Assert.fail("Expected RuntimeException");
+ Assertions.fail("Expected RuntimeException");
}
catch (RuntimeException e) {
- Assert.assertTrue(e.getMessage().contains("Failed to announce"));
+ Assertions.assertTrue(e.getMessage().contains("Failed to announce"));
}
// Don't need to stop since no nodes were announced
@@ -238,10 +235,10 @@ public void testAnnounceFailureTriggersCleanup() throws Exception
try {
announcer.announce(testNode);
- Assert.fail("Expected failure on first announce");
+ Assertions.fail("Expected failure on first announce");
}
catch (RuntimeException expected) {
- Assert.assertTrue(expected.getMessage().contains("Failed to announce"));
+ Assertions.assertTrue(expected.getMessage().contains("Failed to announce"));
}
announcer.announce(testNode); // succeeds
@@ -285,7 +282,7 @@ public void testConcurrentAnnounceOnlyRegistersOnce() throws Exception
t1.start();
t2.start();
- Assert.assertTrue("Announce tasks did not finish", latch.await(5, TimeUnit.SECONDS));
+ Assertions.assertTrue(latch.await(5, TimeUnit.SECONDS), "Announce tasks did not finish");
announcer.stop();
diff --git a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeDiscoveryProviderTest.java b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeDiscoveryProviderTest.java
index 9520d29fdedb..a648bbd89804 100644
--- a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeDiscoveryProviderTest.java
+++ b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulDruidNodeDiscoveryProviderTest.java
@@ -26,10 +26,10 @@
import org.apache.druid.server.DruidNode;
import org.easymock.EasyMock;
import org.joda.time.Duration;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.Collection;
import java.util.List;
@@ -61,14 +61,14 @@ public class ConsulDruidNodeDiscoveryProviderTest
private ConsulApiClient mockConsulApiClient;
private ConsulDruidNodeDiscoveryProvider provider;
- @Before
+ @BeforeEach
public void setUp()
{
mockConsulApiClient = EasyMock.createMock(ConsulApiClient.class);
provider = new ConsulDruidNodeDiscoveryProvider(mockConsulApiClient, config);
}
- @After
+ @AfterEach
public void tearDown()
{
if (provider != null) {
@@ -90,7 +90,7 @@ public void testGetForNode() throws Exception
provider.start();
boolean found = provider.getForNode(node1.getDruidNode(), NodeRole.BROKER).getAsBoolean();
- Assert.assertTrue(found);
+ Assertions.assertTrue(found);
EasyMock.verify(mockConsulApiClient);
}
@@ -127,14 +127,14 @@ public void testGetForNodeRole() throws Exception
provider.start();
DruidNodeDiscovery discovery = provider.getForNodeRole(NodeRole.BROKER);
- Assert.assertNotNull(discovery);
+ Assertions.assertNotNull(discovery);
// Wait a bit for cache to initialize
Thread.sleep(500);
Collection nodes = discovery.getAllNodes();
- Assert.assertEquals(1, nodes.size());
- Assert.assertTrue(nodes.contains(node1));
+ Assertions.assertEquals(1, nodes.size());
+ Assertions.assertTrue(nodes.contains(node1));
EasyMock.verify(mockConsulApiClient);
}
@@ -208,8 +208,8 @@ public void nodeViewInitialized()
}
});
- Assert.assertTrue("Initialization timed out", initLatch.await(5, TimeUnit.SECONDS));
- Assert.assertTrue("Node addition not detected", addedLatch.await(5, TimeUnit.SECONDS));
+ Assertions.assertTrue(initLatch.await(5, TimeUnit.SECONDS), "Initialization timed out");
+ Assertions.assertTrue(addedLatch.await(5, TimeUnit.SECONDS), "Node addition not detected");
EasyMock.verify(mockConsulApiClient);
}
diff --git a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulLeaderSelectorTest.java b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulLeaderSelectorTest.java
index abc2cb73159f..4fffc916eef1 100644
--- a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulLeaderSelectorTest.java
+++ b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulLeaderSelectorTest.java
@@ -30,10 +30,10 @@
import org.apache.druid.server.DruidNode;
import org.easymock.Capture;
import org.easymock.EasyMock;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
@@ -51,7 +51,7 @@ public class ConsulLeaderSelectorTest
private ConsulDiscoveryConfig testConfig;
private DruidNode selfNode;
- @Before
+ @BeforeEach
public void setUp()
{
selfNode = new DruidNode(
@@ -70,7 +70,7 @@ public void setUp()
leaderSelector = new ConsulLeaderSelector(selfNode, LOCK_KEY, testConfig, mockConsulClient);
}
- @After
+ @AfterEach
public void tearDown()
{
// Only unregister if we actually registered a listener
@@ -96,7 +96,7 @@ public void testGetCurrentLeader()
EasyMock.replay(mockConsulClient);
String currentLeader = leaderSelector.getCurrentLeader();
- Assert.assertEquals(leaderValue, currentLeader);
+ Assertions.assertEquals(leaderValue, currentLeader);
EasyMock.verify(mockConsulClient);
}
@@ -117,7 +117,7 @@ public void testGetCurrentLeaderNoValue()
EasyMock.replay(mockConsulClient);
String currentLeader = leaderSelector.getCurrentLeader();
- Assert.assertNull(currentLeader);
+ Assertions.assertNull(currentLeader);
EasyMock.verify(mockConsulClient);
}
@@ -125,13 +125,13 @@ public void testGetCurrentLeaderNoValue()
@Test
public void testIsLeaderInitiallyFalse()
{
- Assert.assertFalse(leaderSelector.isLeader());
+ Assertions.assertFalse(leaderSelector.isLeader());
}
@Test
public void testLocalTermInitiallyZero()
{
- Assert.assertEquals(0, leaderSelector.localTerm());
+ Assertions.assertEquals(0, leaderSelector.localTerm());
}
@Test
@@ -200,22 +200,22 @@ public void stopBeingLeader()
leaderSelector.registerListener(listener);
// Wait for session creation and leader election
- Assert.assertTrue("Session not created", sessionCreatedLatch.await(5, TimeUnit.SECONDS));
- Assert.assertTrue("Did not become leader", becameLeaderLatch.await(5, TimeUnit.SECONDS));
+ Assertions.assertTrue(sessionCreatedLatch.await(5, TimeUnit.SECONDS), "Session not created");
+ Assertions.assertTrue(becameLeaderLatch.await(5, TimeUnit.SECONDS), "Did not become leader");
// Verify we became leader
- Assert.assertTrue(leaderSelector.isLeader());
- Assert.assertEquals(1, leaderSelector.localTerm());
+ Assertions.assertTrue(leaderSelector.isLeader());
+ Assertions.assertEquals(1, leaderSelector.localTerm());
// Verify session was created correctly
NewSession createdSession = sessionCapture.getValue();
- Assert.assertNotNull(createdSession);
- Assert.assertEquals(Session.Behavior.DELETE, createdSession.getBehavior());
- Assert.assertEquals(5L, createdSession.getLockDelay());
+ Assertions.assertNotNull(createdSession);
+ Assertions.assertEquals(Session.Behavior.DELETE, createdSession.getBehavior());
+ Assertions.assertEquals(5L, createdSession.getLockDelay());
// Verify lock acquisition used the session
PutParams putParams = putParamsCapture.getValue();
- Assert.assertEquals(SESSION_ID, putParams.getAcquireSession());
+ Assertions.assertEquals(SESSION_ID, putParams.getAcquireSession());
EasyMock.verify(mockConsulClient);
}
@@ -293,7 +293,7 @@ public void stopBeingLeader()
leaderSelector.unregisterListener();
// Verify session was destroyed
- Assert.assertEquals(SESSION_ID, sessionIdCapture.getValue());
+ Assertions.assertEquals(SESSION_ID, sessionIdCapture.getValue());
EasyMock.verify(mockConsulClient);
}
diff --git a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulServiceIdsTest.java b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulServiceIdsTest.java
index b11c5c2e15ca..aa41963f994d 100644
--- a/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulServiceIdsTest.java
+++ b/extensions-contrib/consul-extensions/src/test/java/org/apache/druid/consul/discovery/ConsulServiceIdsTest.java
@@ -23,8 +23,8 @@
import org.apache.druid.discovery.NodeRole;
import org.apache.druid.server.DruidNode;
import org.joda.time.Duration;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulServiceIdsTest
{
@@ -49,15 +49,15 @@ public void testServiceNameAndIdAndKvKey()
NodeRole role = NodeRole.PEON;
String serviceName = ConsulServiceIds.serviceName(config, role);
- Assert.assertEquals("druid-peon", serviceName);
+ Assertions.assertEquals("druid-peon", serviceName);
DruidNode druidNode = new DruidNode("service", "host", false, 8080, null, true, false);
DiscoveryDruidNode discoveryNode = new DiscoveryDruidNode(druidNode, role, null);
String serviceId = ConsulServiceIds.serviceId(config, discoveryNode);
- Assert.assertEquals("druid-peon-host-8080", serviceId);
+ Assertions.assertEquals("druid-peon-host-8080", serviceId);
String kvKey = ConsulServiceIds.nodeKvKey(config, serviceId);
- Assert.assertEquals("druid/nodes/druid-peon-host-8080", kvKey);
+ Assertions.assertEquals("druid/nodes/druid-peon-host-8080", kvKey);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/pom.xml b/extensions-contrib/druid-deltalake-extensions/pom.xml
index ff0b89412d20..3149728adfb7 100644
--- a/extensions-contrib/druid-deltalake-extensions/pom.xml
+++ b/extensions-contrib/druid-deltalake-extensions/pom.xml
@@ -39,6 +39,21 @@
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
io.delta
delta-kernel-api
@@ -118,36 +133,6 @@
-
- junit
- junit
- test
-
-
- org.junit.jupiter
- junit-jupiter-api
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- test
-
-
- org.junit.jupiter
- junit-jupiter-migrationsupport
- test
-
-
- org.junit.jupiter
- junit-jupiter-params
- test
-
-
- org.junit.vintage
- junit-vintage-engine
- test
-
org.apache.druid
druid-processing
@@ -155,16 +140,6 @@
test-jar
test
-
- org.hamcrest
- hamcrest
- test
-
-
- org.hamcrest
- hamcrest-core
- test
-
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/DeltaAssertions.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/DeltaAssertions.java
new file mode 100644
index 000000000000..0c9f81f7708b
--- /dev/null
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/DeltaAssertions.java
@@ -0,0 +1,40 @@
+/*
+ * 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.druid.delta;
+
+import org.apache.druid.error.DruidException;
+import org.junit.jupiter.api.Assertions;
+
+public class DeltaAssertions
+{
+ private DeltaAssertions()
+ {
+ }
+
+ public static void assertInvalidInput(final DruidException exception, final String expectedMessage)
+ {
+ Assertions.assertAll(
+ () -> Assertions.assertEquals(DruidException.Persona.USER, exception.getTargetPersona()),
+ () -> Assertions.assertEquals(DruidException.Category.INVALID_INPUT, exception.getCategory()),
+ () -> Assertions.assertEquals("invalidInput", exception.getErrorCode()),
+ () -> Assertions.assertEquals(expectedMessage, exception.getMessage())
+ );
+ }
+}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaAndFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaAndFilterTest.java
index 946a832f0780..fcf27e1909fd 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaAndFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaAndFilterTest.java
@@ -25,12 +25,11 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
import org.apache.druid.java.util.common.StringUtils;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collections;
@@ -54,8 +53,8 @@ public void testAndFilter()
Predicate predicate = andFilter.getFilterPredicate(SCHEMA);
- Assert.assertTrue(predicate instanceof And);
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertTrue(predicate instanceof And);
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
@Test
@@ -68,33 +67,29 @@ public void testAndFilterWithInvalidColumn()
)
);
- MatcherAssert.assertThat(
- Assert.assertThrows(DruidException.class, () -> andFilter.getFilterPredicate(SCHEMA)),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- StringUtils.format("column[name2] doesn't exist in schema[%s]", SCHEMA)
- )
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(DruidException.class, () -> andFilter.getFilterPredicate(SCHEMA)),
+ StringUtils.format("column[name2] doesn't exist in schema[%s]", SCHEMA)
);
}
@Test
public void testAndFilterWithNoFilterPredicates()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaAndFilter(null)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "Delta and filter requires 2 filter predicates and must be non-empty. None provided."
- )
+ "Delta and filter requires 2 filter predicates and must be non-empty. None provided."
);
}
@Test
public void testAndFilterWithOneFilterPredicate()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaAndFilter(
Collections.singletonList(
@@ -102,9 +97,7 @@ public void testAndFilterWithOneFilterPredicate()
)
)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "Delta and filter requires 2 filter predicates, but provided [1]."
- )
+ "Delta and filter requires 2 filter predicates, but provided [1]."
);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaEqualsFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaEqualsFilterTest.java
index 26761b73da5f..b5a7eb38e18f 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaEqualsFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaEqualsFilterTest.java
@@ -29,11 +29,10 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class DeltaEqualsFilterTest
{
@@ -53,35 +52,31 @@ public void testEqualsFilter()
Predicate predicate = eqFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals("=", predicate.getName());
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertEquals("=", predicate.getName());
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
@Test
public void testFilterWithNullColumn()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaEqualsFilter(null, "Employee1")
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "column is a required field for = filter."
- )
+ "column is a required field for = filter."
);
}
@Test
public void testFilterWithNullValue()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaEqualsFilter("str_col", null)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "value is a required field for = filter. None provided for column[str_col]."
- )
+ "value is a required field for = filter. None provided for column[str_col]."
);
}
@@ -90,14 +85,12 @@ public void testFilterWithInvalidNumericValue()
{
DeltaEqualsFilter eqFilter = new DeltaEqualsFilter("long_col", "twentyOne");
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> eqFilter.getFilterPredicate(SCHEMA)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "column[long_col] has an invalid value[twentyOne]. The value must be a number, as the column's data type is [long]."
- )
+ "column[long_col] has an invalid value[twentyOne]. The value must be a number, as the column's data type is [long]."
);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanFilterTest.java
index 53bf42a7e71a..4814fe6c7802 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanFilterTest.java
@@ -29,8 +29,8 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class DeltaGreaterThanFilterTest
{
@@ -50,7 +50,7 @@ public void testGreaterThanFilter()
Predicate predicate = gtFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals(">", predicate.getName());
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertEquals(">", predicate.getName());
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanOrEqualsFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanOrEqualsFilterTest.java
index cf9fdf9c8bc7..308b228a1f58 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanOrEqualsFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaGreaterThanOrEqualsFilterTest.java
@@ -29,8 +29,8 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class DeltaGreaterThanOrEqualsFilterTest
{
@@ -51,7 +51,7 @@ public void testGreaterThanOrEqualsFilter()
Predicate predicate = gteFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals(">=", predicate.getName());
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertEquals(">=", predicate.getName());
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanFilterTest.java
index 2d716214e61a..6f6cf11a4c78 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanFilterTest.java
@@ -29,8 +29,8 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class DeltaLessThanFilterTest
{
@@ -50,7 +50,7 @@ public void testLessThanFilter()
Predicate predicate = ltFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals("<", predicate.getName());
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertEquals("<", predicate.getName());
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanOrEqualsFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanOrEqualsFilterTest.java
index a526c57e3893..288b35704eca 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanOrEqualsFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaLessThanOrEqualsFilterTest.java
@@ -29,11 +29,10 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class DeltaLessThanOrEqualsFilterTest
{
@@ -53,8 +52,8 @@ public void testLessThanOrEqualsFilter()
Predicate predicate = lteFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals("<=", predicate.getName());
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertEquals("<=", predicate.getName());
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
@Test
@@ -62,14 +61,12 @@ public void testFilterWithInvalidNumericValue()
{
DeltaLessThanOrEqualsFilter lteFilter = new DeltaLessThanOrEqualsFilter("long_col", "twentyOne");
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> lteFilter.getFilterPredicate(SCHEMA)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "column[long_col] has an invalid value[twentyOne]. The value must be a number, as the column's data type is [long]."
- )
+ "column[long_col] has an invalid value[twentyOne]. The value must be a number, as the column's data type is [long]."
);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java
index dae3d37d2522..4325fd347c32 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaNotFilterTest.java
@@ -24,12 +24,11 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
import org.apache.druid.java.util.common.StringUtils;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import java.util.Arrays;
@@ -51,8 +50,8 @@ public void testNotFilterWithEqualsExpression()
Predicate predicate = notFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals(predicate.getName(), "NOT");
- Assert.assertEquals(1, predicate.getChildren().size());
+ Assertions.assertEquals(predicate.getName(), "NOT");
+ Assertions.assertEquals(1, predicate.getChildren().size());
}
@Test
@@ -74,8 +73,8 @@ public void testNotFilterWithAndExpression()
Predicate predicate = notFilter.getFilterPredicate(SCHEMA);
- Assert.assertEquals(predicate.getName(), "NOT");
- Assert.assertEquals(1, predicate.getChildren().size());
+ Assertions.assertEquals(predicate.getName(), "NOT");
+ Assertions.assertEquals(1, predicate.getChildren().size());
}
@Test
@@ -87,25 +86,21 @@ public void testNotFilterWithInvalidColumn()
);
DeltaNotFilter notFilter = new DeltaNotFilter(equalsFilter);
- MatcherAssert.assertThat(
- Assert.assertThrows(DruidException.class, () -> notFilter.getFilterPredicate(SCHEMA)),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- StringUtils.format("column[name2] doesn't exist in schema[%s]", SCHEMA)
- )
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(DruidException.class, () -> notFilter.getFilterPredicate(SCHEMA)),
+ StringUtils.format("column[name2] doesn't exist in schema[%s]", SCHEMA)
);
}
@Test
public void testNotFilterWithNoFilterPredicates()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaNotFilter(null)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "Delta not filter requiers 1 filter predicate and must be non-empty. None provided."
- )
+ "Delta not filter requiers 1 filter predicate and must be non-empty. None provided."
);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaOrFilterTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaOrFilterTest.java
index 402c679dcd63..d79650eab12c 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaOrFilterTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/filter/DeltaOrFilterTest.java
@@ -25,12 +25,11 @@
import io.delta.kernel.types.StringType;
import io.delta.kernel.types.StructField;
import io.delta.kernel.types.StructType;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
import org.apache.druid.java.util.common.StringUtils;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Collections;
@@ -54,8 +53,8 @@ public void testOrFilter()
Predicate predicate = orFilter.getFilterPredicate(SCHEMA);
- Assert.assertTrue(predicate instanceof Or);
- Assert.assertEquals(2, predicate.getChildren().size());
+ Assertions.assertTrue(predicate instanceof Or);
+ Assertions.assertEquals(2, predicate.getChildren().size());
}
@Test
@@ -68,33 +67,29 @@ public void testOrFilterWithInvalidColumn()
)
);
- MatcherAssert.assertThat(
- Assert.assertThrows(DruidException.class, () -> orFilter.getFilterPredicate(SCHEMA)),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- StringUtils.format("column[name2] doesn't exist in schema[%s]", SCHEMA)
- )
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(DruidException.class, () -> orFilter.getFilterPredicate(SCHEMA)),
+ StringUtils.format("column[name2] doesn't exist in schema[%s]", SCHEMA)
);
}
@Test
public void testOrFilterWithNoFilterPredicates()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaOrFilter(null)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "Delta or filter requires 2 filter predicates and must be non-empty. None provided."
- )
+ "Delta or filter requires 2 filter predicates and must be non-empty. None provided."
);
}
@Test
public void testOrFilterWithOneFilterPredicate()
{
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> new DeltaOrFilter(
Collections.singletonList(
@@ -102,9 +97,7 @@ public void testOrFilterWithOneFilterPredicate()
)
)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "Delta or filter requires 2 filter predicates, but provided [1]."
- )
+ "Delta or filter requires 2 filter predicates, but provided [1]."
);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputRowTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputRowTest.java
index 4de745b1927b..9e270bdab107 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputRowTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputRowTest.java
@@ -33,11 +33,10 @@
import io.delta.kernel.utils.CloseableIterator;
import io.delta.kernel.utils.FileStatus;
import org.apache.druid.data.input.InputRowSchema;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
import org.apache.hadoop.conf.Configuration;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
+import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
@@ -102,23 +101,23 @@ public void testDeltaInputRow(
FilteredColumnarBatch dataReadResult = dataIter.next();
Row next = dataReadResult.getRows().next();
DeltaInputRow deltaInputRow = new DeltaInputRow(next, schema);
- Assert.assertNotNull(deltaInputRow);
- Assert.assertEquals(dimensions, deltaInputRow.getDimensions());
+ Assertions.assertNotNull(deltaInputRow);
+ Assertions.assertEquals(dimensions, deltaInputRow.getDimensions());
Map expectedRow = expectedRows.get(totalRecordCount);
for (String key : expectedRow.keySet()) {
if (schema.getTimestampSpec().getTimestampColumn().equals(key)) {
final long expectedMillis = ((Long) expectedRow.get(key)) * 1000;
- Assert.assertEquals(expectedMillis, deltaInputRow.getTimestampFromEpoch());
+ Assertions.assertEquals(expectedMillis, deltaInputRow.getTimestampFromEpoch());
} else {
- Assert.assertEquals(expectedRow.get(key), deltaInputRow.getRaw(key));
+ Assertions.assertEquals(expectedRow.get(key), deltaInputRow.getRaw(key));
}
}
totalRecordCount += 1;
}
}
}
- Assert.assertEquals(expectedRows.size(), totalRecordCount);
+ Assertions.assertEquals(expectedRows.size(), totalRecordCount);
}
@MethodSource("data")
@@ -127,14 +126,12 @@ public void testReadNonExistentTable()
{
final DeltaInputSource deltaInputSource = new DeltaInputSource("non-existent-table", null, null, null);
- MatcherAssert.assertThat(
- Assert.assertThrows(
+ DeltaAssertions.assertInvalidInput(
+ Assertions.assertThrows(
DruidException.class,
() -> deltaInputSource.reader(null, null, null)
),
- DruidExceptionMatcher.invalidInput().expectMessageIs(
- "tablePath[non-existent-table] not found."
- )
+ "tablePath[non-existent-table] not found."
);
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceSerdeTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceSerdeTest.java
index d8eb083cf57b..cc6a071f1026 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceSerdeTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceSerdeTest.java
@@ -26,8 +26,8 @@
import org.apache.druid.delta.filter.DeltaAndFilter;
import org.apache.druid.delta.filter.DeltaLessThanFilter;
import org.apache.druid.jackson.DefaultObjectMapper;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class DeltaInputSourceSerdeTest
{
@@ -43,8 +43,8 @@ public void testDeltaInputSourceDeserializationWithNoFilter() throws JsonProcess
+ " }";
final DeltaInputSource deltaInputSource = OBJECT_MAPPER.readValue(payload, DeltaInputSource.class);
- Assert.assertEquals("foo/bar", deltaInputSource.getTablePath());
- Assert.assertNull(deltaInputSource.getFilter());
+ Assertions.assertEquals("foo/bar", deltaInputSource.getTablePath());
+ Assertions.assertNull(deltaInputSource.getFilter());
}
@Test
@@ -61,8 +61,8 @@ public void testDeltaInputSourceDeserializationWithLessThanFilter() throws JsonP
+ " }";
final DeltaInputSource deltaInputSource = OBJECT_MAPPER.readValue(payload, DeltaInputSource.class);
- Assert.assertEquals("foo/bar", deltaInputSource.getTablePath());
- Assert.assertTrue(deltaInputSource.getFilter() instanceof DeltaLessThanFilter);
+ Assertions.assertEquals("foo/bar", deltaInputSource.getTablePath());
+ Assertions.assertTrue(deltaInputSource.getFilter() instanceof DeltaLessThanFilter);
}
@Test
@@ -89,8 +89,8 @@ public void testDeltaInputSourceDeserializationWithAndFilter() throws JsonProces
+ " }";
final DeltaInputSource deltaInputSource = OBJECT_MAPPER.readValue(payload, DeltaInputSource.class);
- Assert.assertEquals("s3://foo/bar/baz", deltaInputSource.getTablePath());
- Assert.assertTrue(deltaInputSource.getFilter() instanceof DeltaAndFilter);
+ Assertions.assertEquals("s3://foo/bar/baz", deltaInputSource.getTablePath());
+ Assertions.assertTrue(deltaInputSource.getFilter() instanceof DeltaAndFilter);
}
@Test
@@ -105,12 +105,12 @@ public void testDeltaInputSourceDeserializationWithNoTablePath()
+ " }\n"
+ " }";
- final ValueInstantiationException exception = Assert.assertThrows(
+ final ValueInstantiationException exception = Assertions.assertThrows(
ValueInstantiationException.class,
() -> OBJECT_MAPPER.readValue(payload, DeltaInputSource.class)
);
- Assert.assertTrue(
+ Assertions.assertTrue(
exception.getCause().getMessage().contains(
"tablePath cannot be null."
)
@@ -129,12 +129,12 @@ public void testDeltaInputSourceDeserializationWithNoFilterColumn()
+ " }\n"
+ " }";
- final ValueInstantiationException exception = Assert.assertThrows(
+ final ValueInstantiationException exception = Assertions.assertThrows(
ValueInstantiationException.class,
() -> OBJECT_MAPPER.readValue(payload, DeltaInputSource.class)
);
- Assert.assertEquals(
+ Assertions.assertEquals(
"column is a required field for >= filter.",
exception.getCause().getMessage()
);
@@ -150,7 +150,7 @@ public void testDeltaInputSourceWithSnapshotVersion() throws JsonProcessingExcep
+ " }";
final DeltaInputSource deltaInputSource = OBJECT_MAPPER.readValue(payload, DeltaInputSource.class);
- Assert.assertEquals("foo/bar", deltaInputSource.getTablePath());
- Assert.assertEquals((Long) 56L, deltaInputSource.getSnapshotVersion());
+ Assertions.assertEquals("foo/bar", deltaInputSource.getTablePath());
+ Assertions.assertEquals((Long) 56L, deltaInputSource.getSnapshotVersion());
}
}
diff --git a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceTest.java b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceTest.java
index 6a689f31df59..68f770fdda81 100644
--- a/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceTest.java
+++ b/extensions-contrib/druid-deltalake-extensions/src/test/java/org/apache/druid/delta/input/DeltaInputSourceTest.java
@@ -24,6 +24,7 @@
import org.apache.druid.data.input.InputRowListPlusRawValues;
import org.apache.druid.data.input.InputRowSchema;
import org.apache.druid.data.input.InputSourceReader;
+import org.apache.druid.delta.DeltaAssertions;
import org.apache.druid.delta.filter.DeltaAndFilter;
import org.apache.druid.delta.filter.DeltaEqualsFilter;
import org.apache.druid.delta.filter.DeltaFilter;
@@ -33,15 +34,14 @@
import org.apache.druid.delta.filter.DeltaNotFilter;
import org.apache.druid.delta.filter.DeltaOrFilter;
import org.apache.druid.error.DruidException;
-import org.apache.druid.error.DruidExceptionMatcher;
import org.apache.druid.java.util.common.DateTimes;
import org.apache.druid.java.util.common.parsers.CloseableIterator;
-import org.hamcrest.MatcherAssert;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
import java.io.IOException;
import java.util.ArrayList;
@@ -53,16 +53,15 @@
public class DeltaInputSourceTest
{
- @Before
+ @BeforeEach
public void setUp()
{
System.setProperty("user.timezone", "UTC");
}
- @RunWith(Parameterized.class)
- public static class TablePathParameterTests
+ @Nested
+ public class TablePathParameterTests
{
- @Parameterized.Parameters
public static Object[][] data()
{
return new Object[][]{
@@ -128,64 +127,66 @@ public static Object[][] data()
}
};
}
-
- @Parameterized.Parameter(0)
- public String deltaTablePath;
- @Parameterized.Parameter(1)
- public InputRowSchema schema;
- @Parameterized.Parameter(2)
- public Long snapshotVersion;
- @Parameterized.Parameter(3)
- public List