You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2019/08/05 13:35:38 UTC
[camel] 05/09: CAMEL-13342: Implemented a first version of a
proof-of-concept for camel-testcontainers with JUnit 5
This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch CAMEL-13342-JUNIT5-EXPLORATORY
in repository https://gitbox.apache.org/repos/asf/camel.git
commit e044da13e5e7687730619071cedba84e4170ac7e
Author: aldettinger <al...@gmail.com>
AuthorDate: Thu Jul 4 11:35:54 2019 +0200
CAMEL-13342: Implemented a first version of a proof-of-concept for camel-testcontainers with JUnit 5
---
.../camel/component/consul/ConsulCatalogTest.java | 16 +--
.../component/consul/ConsulClientKeyValueTest.java | 7 +-
.../component/consul/ConsulCoordinatesTest.java | 20 ++--
.../camel/component/consul/ConsulEventTest.java | 9 +-
.../component/consul/ConsulEventWatchTest.java | 2 +-
.../camel/component/consul/ConsulHealthTest.java | 14 +--
.../camel/component/consul/ConsulKeyValueTest.java | 7 +-
.../component/consul/ConsulKeyValueWatchTest.java | 2 +-
.../camel/component/consul/ConsulRegistryTest.java | 32 +++---
.../component/consul/ConsulRegistryUtilsTest.java | 6 +-
.../camel/component/consul/ConsulSessionTest.java | 18 ++--
.../camel/component/consul/ConsulTestSupport.java | 17 ++--
.../cloud/ConsulDefaultServiceCallRouteTest.java | 2 +-
.../cloud/ConsulRibbonServiceCallRouteTest.java | 2 +-
.../ConsulServiceCallWithRegistrationTest.java | 60 ++++++-----
.../consul/cloud/ConsulServiceDiscoveryTest.java | 5 +-
.../cloud/ConsulServiceRegistrationTestBase.java | 5 +-
.../consul/cloud/ConsulServiceRegistryTest.java | 4 +-
.../ConsulClusteredRoutePolicyFactoryTest.java | 14 +--
.../cluster/ConsulClusteredRoutePolicyTest.java | 14 +--
.../component/consul/cluster/ConsulMasterTest.java | 14 +--
components/camel-testcontainers/pom.xml | 6 +-
.../testcontainers/ContainerAwareTestSupport.java | 112 +++++++++++++++++++++
.../ContainerAwareTestSupportIT.java | 54 ++++++++++
24 files changed, 315 insertions(+), 127 deletions(-)
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCatalogTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCatalogTest.java
index d96305b..097daec 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCatalogTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCatalogTest.java
@@ -21,8 +21,8 @@ import java.util.List;
import com.orbitz.consul.model.health.Node;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulCatalogActions;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulCatalogTest extends ConsulTestSupport {
@@ -34,9 +34,9 @@ public class ConsulCatalogTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertFalse(ref.isEmpty());
- Assert.assertFalse(res.isEmpty());
- Assert.assertEquals(ref, res);
+ Assertions.assertFalse(ref.isEmpty());
+ Assertions.assertFalse(res.isEmpty());
+ Assertions.assertEquals(ref, res);
}
@Test
@@ -47,9 +47,9 @@ public class ConsulCatalogTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertFalse(ref.isEmpty());
- Assert.assertFalse(res.isEmpty());
- Assert.assertEquals(ref, res);
+ Assertions.assertFalse(ref.isEmpty());
+ Assertions.assertFalse(res.isEmpty());
+ Assertions.assertEquals(ref, res);
}
@Override
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulClientKeyValueTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulClientKeyValueTest.java
index ef6cc27..0835d8c 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulClientKeyValueTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulClientKeyValueTest.java
@@ -24,7 +24,8 @@ import org.apache.camel.BindToRegistry;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulKeyValueActions;
import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulClientKeyValueTest extends ConsulTestSupport {
@@ -49,8 +50,8 @@ public class ConsulClientKeyValueTest extends ConsulTestSupport {
Optional<String> keyVal = getConsul().keyValueClient().getValueAsString(key);
- assertTrue(keyVal.isPresent());
- assertEquals(val, keyVal.get());
+ Assertions.assertTrue(keyVal.isPresent());
+ Assertions.assertEquals(val, keyVal.get());
}
@BindToRegistry("consulClient")
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCoordinatesTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCoordinatesTest.java
index 1b9d280..fc8a855 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCoordinatesTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulCoordinatesTest.java
@@ -22,9 +22,9 @@ import com.orbitz.consul.model.coordinate.Coordinate;
import com.orbitz.consul.model.coordinate.Datacenter;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulCoordinatesActions;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
public class ConsulCoordinatesTest extends ConsulTestSupport {
@@ -36,12 +36,12 @@ public class ConsulCoordinatesTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertFalse(ref.isEmpty());
- Assert.assertFalse(res.isEmpty());
- Assert.assertEquals(ref, res);
+ Assertions.assertFalse(ref.isEmpty());
+ Assertions.assertFalse(res.isEmpty());
+ Assertions.assertEquals(ref, res);
}
- @Ignore("Disabled as it seems that nodes is always 0")
+ @Disabled("Disabled as it seems that nodes is always 0")
@Test
public void testNodes() throws Exception {
List<Coordinate> ref = getConsul().coordinateClient().getNodes();
@@ -50,9 +50,9 @@ public class ConsulCoordinatesTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertFalse(ref.isEmpty());
- Assert.assertFalse(res.isEmpty());
- Assert.assertEquals(ref, res);
+ Assertions.assertFalse(ref.isEmpty());
+ Assertions.assertFalse(res.isEmpty());
+ Assertions.assertEquals(ref, res);
}
@Override
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventTest.java
index 6daed84..5050343 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventTest.java
@@ -23,7 +23,8 @@ import com.orbitz.consul.model.event.Event;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulEventActions;
import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulEventTest extends ConsulTestSupport {
@@ -48,9 +49,9 @@ public class ConsulEventTest extends ConsulTestSupport {
EventResponse response = getConsul().eventClient().listEvents(key);
List<Event> events = response.getEvents();
- assertFalse(events.isEmpty());
- assertTrue(events.get(0).getPayload().isPresent());
- assertEquals(val, events.get(0).getPayload().get());
+ Assertions.assertFalse(events.isEmpty());
+ Assertions.assertTrue(events.get(0).getPayload().isPresent());
+ Assertions.assertEquals(val, events.get(0).getPayload().get());
}
@Override
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventWatchTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventWatchTest.java
index 8550295..b546e1c 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventWatchTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulEventWatchTest.java
@@ -21,7 +21,7 @@ import java.util.List;
import com.orbitz.consul.EventClient;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
public class ConsulEventWatchTest extends ConsulTestSupport {
private String key;
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulHealthTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulHealthTest.java
index 79e2cfe..79855b7 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulHealthTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulHealthTest.java
@@ -27,8 +27,8 @@ import com.orbitz.consul.model.agent.Registration;
import com.orbitz.consul.model.health.ServiceHealth;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulHealthActions;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulHealthTest extends ConsulTestSupport {
private AgentClient client;
@@ -85,14 +85,14 @@ public class ConsulHealthTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertEquals(2, ref.size());
- Assert.assertEquals(2, res.size());
- Assert.assertEquals(ref, res);
+ Assertions.assertEquals(2, ref.size());
+ Assertions.assertEquals(2, res.size());
+ Assertions.assertEquals(ref, res);
- assertTrue(registrations.stream().anyMatch(
+ Assertions.assertTrue(registrations.stream().anyMatch(
r -> r.getPort().isPresent() && r.getPort().get() == res.get(0).getService().getPort() && r.getId().equalsIgnoreCase(res.get(0).getService().getId())
));
- assertTrue(registrations.stream().anyMatch(
+ Assertions.assertTrue(registrations.stream().anyMatch(
r -> r.getPort().isPresent() && r.getPort().get() == res.get(1).getService().getPort() && r.getId().equalsIgnoreCase(res.get(1).getService().getId())
));
}
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueTest.java
index dc03889..1a61f29 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueTest.java
@@ -21,7 +21,8 @@ import java.util.Optional;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulKeyValueActions;
import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulKeyValueTest extends ConsulTestSupport {
@@ -46,8 +47,8 @@ public class ConsulKeyValueTest extends ConsulTestSupport {
Optional<String> keyVal = getConsul().keyValueClient().getValueAsString(key);
- assertTrue(keyVal.isPresent());
- assertEquals(val, keyVal.get());
+ Assertions.assertTrue(keyVal.isPresent());
+ Assertions.assertEquals(val, keyVal.get());
}
@Override
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueWatchTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueWatchTest.java
index 716e25e..7dcfab9 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueWatchTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulKeyValueWatchTest.java
@@ -22,7 +22,7 @@ import java.util.Random;
import com.orbitz.consul.KeyValueClient;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
public class ConsulKeyValueWatchTest extends ConsulTestSupport {
private String key;
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryTest.java
index 67cc2fd..68e94fd 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryTest.java
@@ -23,14 +23,14 @@ import java.util.Set;
import com.orbitz.consul.Consul;
import org.apache.camel.NoSuchBeanException;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import org.testcontainers.containers.GenericContainer;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
/**
* Unit test for Camel Registry implementation for Consul
@@ -49,7 +49,7 @@ public class ConsulRegistryTest implements Serializable {
}
}
- @BeforeClass
+ @BeforeAll
public static void setUp() {
container = ConsulTestSupport.consulContainer();
container.start();
@@ -57,7 +57,7 @@ public class ConsulRegistryTest implements Serializable {
registry = new ConsulRegistry(container.getContainerIpAddress(), container.getMappedPort(Consul.DEFAULT_HTTP_PORT));
}
- @AfterClass
+ @AfterAll
public static void tearDown() {
container.stop();
}
@@ -67,7 +67,7 @@ public class ConsulRegistryTest implements Serializable {
registry.put("stringTestKey", "stringValue");
String result = (String) registry.lookupByName("stringTestKey");
registry.remove("stringTestKey");
- assertNotNull(result);
+ Assertions.assertNotNull(result);
assertEquals("stringValue", result);
}
@@ -77,7 +77,7 @@ public class ConsulRegistryTest implements Serializable {
registry.put("uniqueKey", "stringValueTwo");
String result = (String) registry.lookupByName("uniqueKey");
registry.remove("uniqueKey");
- assertNotNull(result);
+ Assertions.assertNotNull(result);
assertEquals("stringValueTwo", result);
}
@@ -86,7 +86,7 @@ public class ConsulRegistryTest implements Serializable {
registry.put("namedKey", "namedValue");
String result = (String) registry.lookupByName("namedKey");
registry.remove("namedKey");
- assertNotNull(result);
+ Assertions.assertNotNull(result);
assertEquals("namedValue", result);
}
@@ -104,7 +104,7 @@ public class ConsulRegistryTest implements Serializable {
registry.put("testClass", consulTestClass);
ConsulTestClass consulTestClassClone = registry.lookupByNameAndType("testClass", consulTestClass.getClass());
registry.remove("testClass");
- assertNotNull(consulTestClassClone);
+ Assertions.assertNotNull(consulTestClassClone);
assertEquals(consulTestClass.getClass(), consulTestClassClone.getClass());
}
@@ -128,7 +128,7 @@ public class ConsulRegistryTest implements Serializable {
registry.remove("testClassOne");
registry.remove("testClassTwo");
HashMap<String, ConsulTestClass> emptyHashMap = new HashMap<>();
- assertNotNull(consulTestClassMap);
+ Assertions.assertNotNull(consulTestClassMap);
assertEquals(consulTestClassMap.getClass(), emptyHashMap.getClass());
assertEquals(2, consulTestClassMap.size());
}
@@ -153,7 +153,7 @@ public class ConsulRegistryTest implements Serializable {
ConsulTestClass classTwo = new ConsulTestClass();
registry.put("classTwo", classTwo);
Set<? extends ConsulTestClass> results = registry.findByType(classOne.getClass());
- assertNotNull(results);
+ Assertions.assertNotNull(results);
HashSet<ConsulTestClass> hashSet = new HashSet<>();
registry.remove("classOne");
registry.remove("classTwo");
@@ -165,8 +165,8 @@ public class ConsulRegistryTest implements Serializable {
}
- @Test(expected = NoSuchBeanException.class)
+ @Test
public void deleteNonExisting() {
- registry.remove("nonExisting");
+ Assertions.assertThrows(NoSuchBeanException.class, () -> registry.remove("nonExisting"));
}
}
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryUtilsTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryUtilsTest.java
index f56045d..221e569 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryUtilsTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulRegistryUtilsTest.java
@@ -21,10 +21,10 @@ import java.util.Arrays;
import java.util.List;
import org.apache.camel.component.consul.ConsulRegistry.ConsulRegistryUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author <a href="https://github.com/ppalaga">Peter Palaga</a>
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulSessionTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulSessionTest.java
index 63fa765..300feaa 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulSessionTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulSessionTest.java
@@ -24,8 +24,8 @@ import com.orbitz.consul.model.session.SessionCreatedResponse;
import com.orbitz.consul.model.session.SessionInfo;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.endpoint.ConsulSessionActions;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
public class ConsulSessionTest extends ConsulTestSupport {
@@ -40,8 +40,8 @@ public class ConsulSessionTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertEquals(sessions, list.size());
- Assert.assertFalse(list.stream().anyMatch(s -> s.getName().isPresent() && s.getName().get().equals(name)));
+ Assertions.assertEquals(sessions, list.size());
+ Assertions.assertFalse(list.stream().anyMatch(s -> s.getName().isPresent() && s.getName().get().equals(name)));
}
SessionCreatedResponse res = fluentTemplate()
@@ -50,7 +50,7 @@ public class ConsulSessionTest extends ConsulTestSupport {
.to("direct:consul")
.request(SessionCreatedResponse.class);
- Assert.assertNotNull(res.getId());
+ Assertions.assertNotNull(res.getId());
{
List<SessionInfo> list = fluentTemplate()
@@ -58,8 +58,8 @@ public class ConsulSessionTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertEquals(sessions + 1, list.size());
- Assert.assertTrue(list.stream().anyMatch(s -> s.getName().isPresent() && s.getName().get().equals(name)));
+ Assertions.assertEquals(sessions + 1, list.size());
+ Assertions.assertTrue(list.stream().anyMatch(s -> s.getName().isPresent() && s.getName().get().equals(name)));
}
{
@@ -74,8 +74,8 @@ public class ConsulSessionTest extends ConsulTestSupport {
.to("direct:consul")
.request(List.class);
- Assert.assertEquals(sessions, list.size());
- Assert.assertFalse(list.stream().anyMatch(s -> s.getName().isPresent() && s.getName().get().equals(name)));
+ Assertions.assertEquals(sessions, list.size());
+ Assertions.assertFalse(list.stream().anyMatch(s -> s.getName().isPresent() && s.getName().get().equals(name)));
}
}
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java
index bc1d6cd..a5e8831 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java
@@ -24,10 +24,10 @@ import com.orbitz.consul.Consul;
import com.orbitz.consul.KeyValueClient;
import org.apache.camel.BindToRegistry;
-import org.apache.camel.test.testcontainers.ContainerAwareTestSupport;
+import org.apache.camel.test.junit5.testcontainers.ContainerAwareTestSupport;
import org.apache.camel.test.testcontainers.Wait;
-import org.junit.Rule;
-import org.junit.rules.TestName;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.TestInfo;
import org.testcontainers.containers.GenericContainer;
public class ConsulTestSupport extends ContainerAwareTestSupport {
@@ -35,8 +35,13 @@ public class ConsulTestSupport extends ContainerAwareTestSupport {
public static final String CONTAINER_NAME = "consul";
public static final String KV_PREFIX = "/camel";
- @Rule
- public final TestName testName = new TestName();
+ protected String testName;
+
+ @BeforeEach
+ public void setUp(TestInfo testInfo) throws Exception {
+ super.setUp();
+ testName = testInfo.getDisplayName();
+ }
@BindToRegistry("consul")
public ConsulComponent getConsulComponent() {
@@ -69,7 +74,7 @@ public class ConsulTestSupport extends ContainerAwareTestSupport {
}
protected String generateKey() {
- return KV_PREFIX + "/" + testName.getMethodName() + "/" + generateRandomString();
+ return KV_PREFIX + "/" + testName + "/" + generateRandomString();
}
protected String consulUrl() {
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulDefaultServiceCallRouteTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulDefaultServiceCallRouteTest.java
index c21ed04..1f054d0 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulDefaultServiceCallRouteTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulDefaultServiceCallRouteTest.java
@@ -26,7 +26,7 @@ import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
public class ConsulDefaultServiceCallRouteTest extends ConsulTestSupport {
private static final String SERVICE_NAME = "http-service";
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteTest.java
index eb7c769..ec26483 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulRibbonServiceCallRouteTest.java
@@ -26,7 +26,7 @@ import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
public class ConsulRibbonServiceCallRouteTest extends ConsulTestSupport {
private static final String SERVICE_NAME = "http-service";
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceCallWithRegistrationTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceCallWithRegistrationTest.java
index e7f6a80..9cb0334 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceCallWithRegistrationTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceCallWithRegistrationTest.java
@@ -23,9 +23,12 @@ import org.apache.camel.CamelExecutionException;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import org.springframework.util.SocketUtils;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
public class ConsulServiceCallWithRegistrationTest extends ConsulTestSupport {
private static final String SERVICE_HOST = "localhost";
@@ -90,43 +93,36 @@ public class ConsulServiceCallWithRegistrationTest extends ConsulTestSupport {
context.start();
- assertEquals("ping on " + port, template.requestBody("direct:start", "ping", String.class));
+ Assertions.assertEquals("ping on " + port, template.requestBody("direct:start", "ping", String.class));
}
- @Test(expected = CamelExecutionException.class)
+ @Test
public void testServiceCallFailure() throws Exception {
- final int port = SocketUtils.findAvailableTcpPort();
- final String serviceId = UUID.randomUUID().toString();
- final String serviceName = UUID.randomUUID().toString();
- context.addRoutes(new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- // context path is had coded so it should fail as it not exposed
- // by jetty
- from("direct:start")
- .serviceCall()
- .name(serviceName + "/bad/path")
- .component("http")
- .defaultLoadBalancer()
- .consulServiceDiscovery()
- .url(consulUrl())
- .end()
- .end()
- .log("${body}");
+ assertThrows(CamelExecutionException.class, () -> {
- fromF("undertow:http://%s:%d/service/path", SERVICE_HOST, port)
- .routeId(serviceId)
- .routeGroup(serviceName)
- .routePolicy(new ServiceRegistrationRoutePolicy())
- .transform()
- .simple("${in.body} on " + port);
- }
- });
+ final int port = SocketUtils.findAvailableTcpPort();
+ final String serviceId = UUID.randomUUID().toString();
+ final String serviceName = UUID.randomUUID().toString();
- context.start();
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ // context path is had coded so it should fail as it not
+ // exposed
+ // by jetty
+ from("direct:start").serviceCall().name(serviceName + "/bad/path").component("http").defaultLoadBalancer().consulServiceDiscovery().url(consulUrl()).end().end()
+ .log("${body}");
- template.requestBody("direct:start", "ping", String.class);
- fail("Should have failed");
+ fromF("undertow:http://%s:%d/service/path", SERVICE_HOST, port).routeId(serviceId).routeGroup(serviceName).routePolicy(new ServiceRegistrationRoutePolicy())
+ .transform().simple("${in.body} on " + port);
+ }
+ });
+
+ context.start();
+
+ template.requestBody("direct:start", "ping", String.class);
+ Assertions.fail("Should have failed");
+ });
}
}
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceDiscoveryTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceDiscoveryTest.java
index 8023c29..196500f 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceDiscoveryTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceDiscoveryTest.java
@@ -29,9 +29,12 @@ import org.apache.camel.cloud.ServiceDiscovery;
import org.apache.camel.component.consul.ConsulConfiguration;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.springframework.util.SocketUtils;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
public class ConsulServiceDiscoveryTest extends ConsulTestSupport {
private AgentClient client;
private List<Registration> registrations;
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistrationTestBase.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistrationTestBase.java
index b9a3bed..231cf88 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistrationTestBase.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistrationTestBase.java
@@ -28,9 +28,12 @@ import com.orbitz.consul.model.health.ServiceHealth;
import org.apache.camel.CamelContext;
import org.apache.camel.cloud.ServiceDefinition;
import org.apache.camel.component.consul.ConsulTestSupport;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.springframework.util.SocketUtils;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
public abstract class ConsulServiceRegistrationTestBase extends ConsulTestSupport {
protected static final String SERVICE_ID = UUID.randomUUID().toString();
protected static final String SERVICE_NAME = "my-service";
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistryTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistryTest.java
index 2c7f574..b4e0df0 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistryTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cloud/ConsulServiceRegistryTest.java
@@ -24,7 +24,9 @@ import com.orbitz.consul.model.catalog.CatalogService;
import com.orbitz.consul.model.health.ServiceHealth;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.impl.cloud.DefaultServiceDefinition;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class ConsulServiceRegistryTest extends ConsulTestSupport {
@Override
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyFactoryTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyFactoryTest.java
index bdd59df..7d996d5 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyFactoryTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyFactoryTest.java
@@ -31,16 +31,18 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.cluster.ClusteredRoutePolicyFactory;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+@Testcontainers
public class ConsulClusteredRoutePolicyFactoryTest {
- @ClassRule
+ @Container
public static GenericContainer container = ConsulTestSupport.consulContainer();
private static final Logger LOGGER = LoggerFactory.getLogger(ConsulClusteredRoutePolicyFactoryTest.class);
@@ -62,8 +64,8 @@ public class ConsulClusteredRoutePolicyFactoryTest {
LATCH.await(1, TimeUnit.MINUTES);
SCHEDULER.shutdownNow();
- Assert.assertEquals(CLIENTS.size(), RESULTS.size());
- Assert.assertTrue(RESULTS.containsAll(CLIENTS));
+ Assertions.assertEquals(CLIENTS.size(), RESULTS.size());
+ Assertions.assertTrue(RESULTS.containsAll(CLIENTS));
}
// ************************************
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyTest.java
index cb06bb6..a7867d3 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulClusteredRoutePolicyTest.java
@@ -31,16 +31,18 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.cluster.ClusteredRoutePolicy;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+@Testcontainers
public class ConsulClusteredRoutePolicyTest {
- @ClassRule
+ @Container
public static GenericContainer container = ConsulTestSupport.consulContainer();
private static final Logger LOGGER = LoggerFactory.getLogger(ConsulClusteredRoutePolicyTest.class);
@@ -62,8 +64,8 @@ public class ConsulClusteredRoutePolicyTest {
LATCH.await(1, TimeUnit.MINUTES);
SCHEDULER.shutdownNow();
- Assert.assertEquals(CLIENTS.size(), RESULTS.size());
- Assert.assertTrue(RESULTS.containsAll(CLIENTS));
+ Assertions.assertEquals(CLIENTS.size(), RESULTS.size());
+ Assertions.assertTrue(RESULTS.containsAll(CLIENTS));
}
// ************************************
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulMasterTest.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulMasterTest.java
index 90129b2..0a609ff 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulMasterTest.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/cluster/ConsulMasterTest.java
@@ -30,16 +30,18 @@ import com.orbitz.consul.Consul;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.consul.ConsulTestSupport;
import org.apache.camel.impl.DefaultCamelContext;
-import org.junit.Assert;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+@Testcontainers
public class ConsulMasterTest {
- @ClassRule
+ @Container
public static GenericContainer container = ConsulTestSupport.consulContainer();
private static final Logger LOGGER = LoggerFactory.getLogger(ConsulMasterTest.class);
@@ -61,8 +63,8 @@ public class ConsulMasterTest {
LATCH.await(1, TimeUnit.MINUTES);
SCHEDULER.shutdownNow();
- Assert.assertEquals(CLIENTS.size(), RESULTS.size());
- Assert.assertTrue(RESULTS.containsAll(CLIENTS));
+ Assertions.assertEquals(CLIENTS.size(), RESULTS.size());
+ Assertions.assertTrue(RESULTS.containsAll(CLIENTS));
}
// ************************************
diff --git a/components/camel-testcontainers/pom.xml b/components/camel-testcontainers/pom.xml
index c882cf5..7686ef5 100644
--- a/components/camel-testcontainers/pom.xml
+++ b/components/camel-testcontainers/pom.xml
@@ -49,7 +49,11 @@
<artifactId>testcontainers</artifactId>
<version>${testcontainers-version}</version>
</dependency>
-
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <version>${testcontainers-version}</version>
+ </dependency>
<!-- optional dependencies for running tests -->
<dependency>
<groupId>org.assertj</groupId>
diff --git a/components/camel-testcontainers/src/main/java/org/apache/camel/test/junit5/testcontainers/ContainerAwareTestSupport.java b/components/camel-testcontainers/src/main/java/org/apache/camel/test/junit5/testcontainers/ContainerAwareTestSupport.java
new file mode 100644
index 0000000..c5381ff
--- /dev/null
+++ b/components/camel-testcontainers/src/main/java/org/apache/camel/test/junit5/testcontainers/ContainerAwareTestSupport.java
@@ -0,0 +1,112 @@
+/*
+ * 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.camel.test.junit5.testcontainers;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.properties.PropertiesComponent;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.apache.camel.test.testcontainers.ContainerPropertiesFunction;
+import org.apache.camel.test.testcontainers.Containers;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.Network;
+
+public class ContainerAwareTestSupport extends CamelTestSupport {
+ private List<GenericContainer<?>> containers = new CopyOnWriteArrayList<>();
+
+ // ******************
+ // Setup
+ // ******************
+
+ @Override
+ protected void setupResources() throws Exception {
+ super.setupResources();
+
+ containers.clear();
+ containers.addAll(createContainers());
+
+ final Network network = containerNetwork();
+ final long timeout = containersStartupTimeout();
+
+ Containers.start(containers, network, timeout);
+ }
+
+ @Override
+ protected void cleanupResources() throws Exception {
+ super.cleanupResources();
+
+ Containers.stop(containers, containerShutdownTimeout());
+ }
+
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ final CamelContext context = super.createCamelContext();
+ final PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
+
+ pc.addFunction(new ContainerPropertiesFunction(containers));
+
+ return context;
+ }
+
+ // ******************
+ // Containers set-up
+ // ******************
+
+ protected GenericContainer<?> createContainer() {
+ return null;
+ }
+
+ protected List<GenericContainer<?>> createContainers() {
+ GenericContainer<?> container = createContainer();
+
+ return container == null
+ ? Collections.emptyList()
+ : Collections.singletonList(container);
+ }
+
+ protected long containersStartupTimeout() {
+ return TimeUnit.MINUTES.toSeconds(1);
+ }
+
+ protected long containerShutdownTimeout() {
+ return TimeUnit.MINUTES.toSeconds(1);
+ }
+
+ protected Network containerNetwork() {
+ return null;
+ }
+
+ // ******************
+ // Helpers
+ // ******************
+
+ protected GenericContainer<?> getContainer(String containerName) {
+ return Containers.lookup(containers, containerName);
+ }
+
+ protected String getContainerHost(String containerName) {
+ return getContainer(containerName).getContainerIpAddress();
+ }
+
+ protected int getContainerPort(String containerName, int originalPort) {
+ return getContainer(containerName).getMappedPort(originalPort);
+ }
+}
diff --git a/components/camel-testcontainers/src/test/java/org/apache/camel/test/junit5/testcontainers/ContainerAwareTestSupportIT.java b/components/camel-testcontainers/src/test/java/org/apache/camel/test/junit5/testcontainers/ContainerAwareTestSupportIT.java
new file mode 100644
index 0000000..1a608ea
--- /dev/null
+++ b/components/camel-testcontainers/src/test/java/org/apache/camel/test/junit5/testcontainers/ContainerAwareTestSupportIT.java
@@ -0,0 +1,54 @@
+/*
+ * 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.camel.test.junit5.testcontainers;
+
+import org.apache.camel.test.testcontainers.Wait;
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.testcontainers.containers.GenericContainer;
+
+public class ContainerAwareTestSupportIT extends ContainerAwareTestSupport {
+ @Test
+ public void testPropertyPlaceholders() throws Exception {
+ final GenericContainer<?> container = getContainer("myconsul");
+
+ final String host = context.resolvePropertyPlaceholders("{{container:host:myconsul}}");
+ Assertions.assertThat(host).isEqualTo(container.getContainerIpAddress());
+
+ final String port = context.resolvePropertyPlaceholders("{{container:port:8500@myconsul}}");
+ Assertions.assertThat(port).isEqualTo("" + container.getMappedPort(8500));
+ }
+
+ @Override
+ protected GenericContainer<?> createContainer() {
+ return new GenericContainer<>("consul:1.5.1")
+ .withNetworkAliases("myconsul")
+ .withExposedPorts(8500)
+ .waitingFor(Wait.forLogMessageContaining("Synced node info", 1))
+ .withCommand(
+ "agent",
+ "-dev",
+ "-server",
+ "-bootstrap",
+ "-client",
+ "0.0.0.0",
+ "-log-level",
+ "trace"
+ );
+ }
+
+}