You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/01/28 08:44:07 UTC

[camel] 03/03: CAMEL-18957: converted camel-cassandra to camel-test-infra-core

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

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

commit 25101fe5e92bfbe2e30cfb6440ad71eb174e6761
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Fri Jan 27 17:35:51 2023 +0100

    CAMEL-18957: converted camel-cassandra to camel-test-infra-core
---
 components/camel-cassandraql/pom.xml               |  8 ++++
 .../cassandra/integration/BaseCassandra.java       | 48 +++++++++++++++++-----
 .../integration/CassandraComponentBeanRefIT.java   | 12 ++----
 .../cassandra/CassandraAggregationIT.java          | 12 +++---
 .../CassandraAggregationRepositoryIT.java          | 11 +++--
 .../CassandraAggregationSerializedHeadersIT.java   | 13 +++---
 .../NamedCassandraAggregationRepositoryIT.java     | 16 ++++----
 .../cassandra/CassandraIdempotentIT.java           | 17 ++++----
 .../cassandra/CassandraIdempotentRepositoryIT.java | 24 +++++------
 .../NamedCassandraIdempotentRepositoryIT.java      | 25 ++++++-----
 10 files changed, 108 insertions(+), 78 deletions(-)

diff --git a/components/camel-cassandraql/pom.xml b/components/camel-cassandraql/pom.xml
index e64e0bfe27c..1c02cd508bf 100644
--- a/components/camel-cassandraql/pom.xml
+++ b/components/camel-cassandraql/pom.xml
@@ -69,6 +69,14 @@
         </dependency>
 
         <!-- test infra -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-infra-core</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-test-infra-cassandra</artifactId>
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/BaseCassandra.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/BaseCassandra.java
index 5ab31d71668..ec8f76b9e4c 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/BaseCassandra.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/BaseCassandra.java
@@ -23,20 +23,35 @@ import java.time.Duration;
 import com.datastax.oss.driver.api.core.CqlSession;
 import com.datastax.oss.driver.api.core.config.DefaultDriverOption;
 import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.infra.cassandra.services.CassandraLocalContainerService;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.extension.ExtensionContext;
+import org.apache.camel.test.infra.core.CamelContextExtension;
+import org.apache.camel.test.infra.core.DefaultCamelContextExtension;
+import org.apache.camel.test.infra.core.annotations.RouteFixture;
+import org.apache.camel.test.infra.core.api.CamelTestSupportHelper;
+import org.apache.camel.test.infra.core.api.ConfigurableRoute;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.testcontainers.shaded.org.apache.commons.io.IOUtils;
 
-public abstract class BaseCassandra extends CamelTestSupport {
+public abstract class BaseCassandra implements ConfigurableRoute, CamelTestSupportHelper {
 
+    @Order(1)
     @RegisterExtension
     public static CassandraLocalContainerService service;
 
+    @Order(2)
+    @RegisterExtension
+    public static CamelContextExtension camelContextExtension = new DefaultCamelContextExtension();
+
     public static final String KEYSPACE_NAME = "camel_ks";
     public static final String DATACENTER_NAME = "datacenter1";
 
+    protected CamelContext context = camelContextExtension.getContext();
+
     private CqlSession session;
 
     static {
@@ -47,10 +62,8 @@ public abstract class BaseCassandra extends CamelTestSupport {
                 .withNetworkAliases("cassandra");
     }
 
-    @Override
-    public void beforeEach(ExtensionContext context) throws Exception {
-        super.beforeEach(context);
-
+    @BeforeEach
+    public void executeScript() throws Exception {
         executeScript("BasicDataSet.cql");
     }
 
@@ -68,10 +81,8 @@ public abstract class BaseCassandra extends CamelTestSupport {
         getSession().execute(cql);
     }
 
-    @Override
+    @AfterEach
     protected void doPostTearDown() throws Exception {
-        super.doPostTearDown();
-
         try {
             if (session != null) {
                 session.close();
@@ -100,4 +111,21 @@ public abstract class BaseCassandra extends CamelTestSupport {
     public String getUrl() {
         return service.getCQL3Endpoint();
     }
+
+    protected abstract RouteBuilder createRouteBuilder();
+
+    @Override
+    @RouteFixture
+    public void createRouteBuilder(CamelContext context) throws Exception {
+        final RouteBuilder routeBuilder = createRouteBuilder();
+
+        if (routeBuilder != null) {
+            context.addRoutes(routeBuilder);
+        }
+    }
+
+    @Override
+    public CamelContextExtension getCamelContextExtension() {
+        return camelContextExtension;
+    }
 }
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/CassandraComponentBeanRefIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/CassandraComponentBeanRefIT.java
index dfad578f354..8163290ae00 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/CassandraComponentBeanRefIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/integration/CassandraComponentBeanRefIT.java
@@ -16,10 +16,10 @@
  */
 package org.apache.camel.component.cassandra.integration;
 
+import com.datastax.oss.driver.api.core.CqlSession;
+import org.apache.camel.BindToRegistry;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cassandra.CassandraEndpoint;
-import org.apache.camel.spi.Registry;
-import org.apache.camel.support.SimpleRegistry;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -29,12 +29,8 @@ public class CassandraComponentBeanRefIT extends BaseCassandra {
     public static final String CQL = "insert into camel_user(login, first_name, last_name) values (?, ?, ?)";
     public static final String SESSION_URI = "cql:bean:cassandraSession?cql=" + CQL;
 
-    @Override
-    protected Registry createCamelRegistry() {
-        SimpleRegistry registry = new SimpleRegistry();
-        registry.bind("cassandraSession", getSession());
-        return registry;
-    }
+    @BindToRegistry("cassandraSession")
+    private CqlSession session = getSession();
 
     @Override
     protected RouteBuilder createRouteBuilder() {
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationIT.java
index 82701ea2b53..002341ebcaf 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationIT.java
@@ -22,6 +22,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cassandra.integration.BaseCassandra;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -31,18 +32,15 @@ public class CassandraAggregationIT extends BaseCassandra {
 
     private CassandraAggregationRepository aggregationRepository;
 
-    @Override
-    protected void doPreSetup() throws Exception {
+    @BeforeEach
+    protected void doPreSetup() {
         aggregationRepository = new NamedCassandraAggregationRepository(getSession(), "ID");
         aggregationRepository.setTable("NAMED_CAMEL_AGGREGATION");
         aggregationRepository.start();
-        super.doPreSetup();
     }
 
-    @Override
     @AfterEach
-    public void tearDown() throws Exception {
-        super.tearDown();
+    public void tearDown() {
         aggregationRepository.stop();
     }
 
@@ -71,7 +69,7 @@ public class CassandraAggregationIT extends BaseCassandra {
     }
 
     private void send(String aggregationId, String body) {
-        super.template.sendBodyAndHeader("direct:input", body, "aggregationId", aggregationId);
+        camelContextExtension.getProducerTemplate().sendBodyAndHeader("direct:input", body, "aggregationId", aggregationId);
     }
 
     @Test
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryIT.java
index 09a2fab4f83..ce9999c07ba 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryIT.java
@@ -19,9 +19,11 @@ package org.apache.camel.processor.aggregate.cassandra;
 import java.util.Set;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cassandra.integration.BaseCassandra;
 import org.apache.camel.support.DefaultExchange;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.OS;
@@ -39,17 +41,14 @@ public class CassandraAggregationRepositoryIT extends BaseCassandra {
 
     private CassandraAggregationRepository aggregationRepository;
 
-    @Override
+    @BeforeEach
     protected void doPreSetup() throws Exception {
         aggregationRepository = new CassandraAggregationRepository(getSession());
         aggregationRepository.start();
-        super.doPreSetup();
     }
 
-    @Override
     @AfterEach
     public void tearDown() throws Exception {
-        super.tearDown();
         aggregationRepository.stop();
     }
 
@@ -204,4 +203,8 @@ public class CassandraAggregationRepositoryIT extends BaseCassandra {
         assertNull(exchange3);
     }
 
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return null;
+    }
 }
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersIT.java
index 0f845ad306b..fa50d7c35a8 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersIT.java
@@ -23,6 +23,7 @@ import org.apache.camel.component.cassandra.integration.BaseCassandra;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.processor.aggregate.util.HeaderDto;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -32,19 +33,16 @@ public class CassandraAggregationSerializedHeadersIT extends BaseCassandra {
 
     private CassandraAggregationRepository aggregationRepository;
 
-    @Override
-    protected void doPreSetup() throws Exception {
+    @BeforeEach
+    protected void doPreSetup() {
         aggregationRepository = new NamedCassandraAggregationRepository(getSession(), "ID");
         aggregationRepository.setTable("NAMED_CAMEL_AGGREGATION");
         aggregationRepository.setAllowSerializedHeaders(true);
         aggregationRepository.start();
-        super.doPreSetup();
     }
 
-    @Override
     @AfterEach
-    public void tearDown() throws Exception {
-        super.tearDown();
+    public void tearDown() {
         aggregationRepository.stop();
     }
 
@@ -73,7 +71,8 @@ public class CassandraAggregationSerializedHeadersIT extends BaseCassandra {
     }
 
     private void send(HeaderDto aggregationId, String body) {
-        super.template.sendBodyAndHeader("direct:input", body, "aggregationId", aggregationId);
+        camelContextExtension.getProducerTemplate()
+                .sendBodyAndHeader("direct:input", body, "aggregationId", aggregationId);
     }
 
     @Test
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryIT.java
index a09b7696ae0..f8088cf2711 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryIT.java
@@ -19,9 +19,11 @@ package org.apache.camel.processor.aggregate.cassandra;
 import java.util.Set;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cassandra.integration.BaseCassandra;
 import org.apache.camel.support.DefaultExchange;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.OS;
@@ -39,19 +41,15 @@ public class NamedCassandraAggregationRepositoryIT extends BaseCassandra {
 
     private CassandraAggregationRepository aggregationRepository;
 
-    @Override
-    protected void doPreSetup() throws Exception {
+    @BeforeEach
+    protected void doPreSetup() {
         aggregationRepository = new NamedCassandraAggregationRepository(getSession(), "ID");
         aggregationRepository.setTable("NAMED_CAMEL_AGGREGATION");
         aggregationRepository.start();
-
-        super.doPreSetup();
     }
 
-    @Override
     @AfterEach
-    public void tearDown() throws Exception {
-        super.tearDown();
+    public void tearDown() {
         aggregationRepository.stop();
     }
 
@@ -206,4 +204,8 @@ public class NamedCassandraAggregationRepositoryIT extends BaseCassandra {
         assertNull(exchange3);
     }
 
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return null;
+    }
 }
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentIT.java
index 1f5ca44e802..7502f382b70 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentIT.java
@@ -27,20 +27,18 @@ import org.junit.jupiter.api.Test;
  */
 public class CassandraIdempotentIT extends BaseCassandra {
 
-    private CassandraIdempotentRepository idempotentRepository;
+    private CassandraIdempotentRepository idempotentRepository = createRepo();
 
-    @Override
-    protected void doPreSetup() throws Exception {
-        idempotentRepository = new NamedCassandraIdempotentRepository(getSession(), "ID");
+    protected CassandraIdempotentRepository createRepo() {
+        CassandraIdempotentRepository idempotentRepository = new NamedCassandraIdempotentRepository(getSession(), "ID");
         idempotentRepository.setTable("NAMED_CAMEL_IDEMPOTENT");
         idempotentRepository.start();
-        super.doPreSetup();
+
+        return idempotentRepository;
     }
 
-    @Override
     @AfterEach
-    public void tearDown() throws Exception {
-        super.tearDown();
+    public void tearDown() {
         idempotentRepository.stop();
     }
 
@@ -55,7 +53,8 @@ public class CassandraIdempotentIT extends BaseCassandra {
     }
 
     private void send(String idempotentId, String body) {
-        super.template.sendBodyAndHeader("direct:input", body, "idempotentId", idempotentId);
+        camelContextExtension.getProducerTemplate()
+                .sendBodyAndHeader("direct:input", body, "idempotentId", idempotentId);
     }
 
     @Test
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryIT.java
index b7525dedb28..c5b5c033fda 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryIT.java
@@ -16,10 +16,13 @@
  */
 package org.apache.camel.processor.idempotent.cassandra;
 
+import java.io.IOException;
+
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cassandra.integration.BaseCassandra;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtensionContext;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -31,25 +34,16 @@ public class CassandraIdempotentRepositoryIT extends BaseCassandra {
 
     private CassandraIdempotentRepository idempotentRepository;
 
-    @Override
-    protected void doPreSetup() throws Exception {
+    @BeforeEach
+    protected void doPreSetup() throws IOException {
         idempotentRepository = new CassandraIdempotentRepository(getSession());
         idempotentRepository.start();
 
-        super.doPreSetup();
-    }
-
-    @Override
-    public void beforeEach(ExtensionContext context) throws Exception {
-        super.beforeEach(context);
-
         executeScript("IdempotentDataSet.cql");
     }
 
-    @Override
     @AfterEach
-    public void tearDown() throws Exception {
-        super.tearDown();
+    public void tearDown() {
         idempotentRepository.stop();
     }
 
@@ -136,4 +130,8 @@ public class CassandraIdempotentRepositoryIT extends BaseCassandra {
         assertFalse(idempotentRepository.contains(key));
     }
 
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return null;
+    }
 }
diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryIT.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryIT.java
index c43db0c0c23..ab6f221b303 100644
--- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryIT.java
+++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryIT.java
@@ -16,10 +16,13 @@
  */
 package org.apache.camel.processor.idempotent.cassandra;
 
+import java.io.IOException;
+
+import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cassandra.integration.BaseCassandra;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtensionContext;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -31,27 +34,18 @@ public class NamedCassandraIdempotentRepositoryIT extends BaseCassandra {
 
     private CassandraIdempotentRepository idempotentRepository;
 
-    @Override
-    protected void doPreSetup() throws Exception {
+    @BeforeEach
+    protected void doPreSetup() throws IOException {
         idempotentRepository = new NamedCassandraIdempotentRepository(getSession(), "ID");
         idempotentRepository.setTable("NAMED_CAMEL_IDEMPOTENT");
         idempotentRepository.start();
 
-        super.doPreSetup();
-    }
-
-    @Override
-    public void beforeEach(ExtensionContext context) throws Exception {
-        super.beforeEach(context);
-
         executeScript("NamedIdempotentDataSet.cql");
     }
 
-    @Override
     @AfterEach
-    public void tearDown() throws Exception {
+    public void tearDown() {
         idempotentRepository.stop();
-        super.tearDown();
     }
 
     private boolean exists(String key) {
@@ -136,4 +130,9 @@ public class NamedCassandraIdempotentRepositoryIT extends BaseCassandra {
         // Then
         assertFalse(idempotentRepository.contains(key));
     }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() {
+        return null;
+    }
 }