This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 30e9946 CAMEL-15331 Cassandraql: refactor tests to use testcontainers (#4052) 30e9946 is described below commit 30e9946aa6d0929b06225fb76bc189cf0fbc2836 Author: JiriOndrusek <ondrusek.j...@gmail.com> AuthorDate: Tue Jul 28 16:03:11 2020 +0200 CAMEL-15331 Cassandraql: refactor tests to use testcontainers (#4052) --- components/camel-cassandraql/pom.xml | 11 +-- .../component/cassandra/BaseCassandraTest.java | 91 ++++++++++++++++++++-- .../component/cassandra/CassandraCQLUnit.java | 74 ------------------ .../cassandra/CassandraComponentBeanRefTest.java | 8 +- .../cassandra/CassandraComponentConsumerTest.java | 10 +-- .../cassandra/CassandraComponentProducerTest.java | 42 +++------- .../CassandraComponentProducerUnpreparedTest.java | 22 ++---- .../component/cassandra/CassandraUnitUtils.java | 76 ------------------ .../CassandraAggregationRepositoryTest.java | 65 +++++++--------- .../CassandraAggregationSerializedHeadersTest.java | 7 +- .../cassandra/CassandraAggregationTest.java | 8 +- .../NamedCassandraAggregationRepositoryTest.java | 72 ++++++++--------- .../CassandraIdempotentRepositoryTest.java | 28 +++---- .../cassandra/CassandraIdempotentTest.java | 8 +- .../NamedCassandraIdempotentRepositoryTest.java | 25 +++--- .../src/test/resources/AggregationDataSet.cql | 6 -- .../src/test/resources/BasicDataSet.cql | 9 +-- .../src/test/resources/IdempotentDataSet.cql | 12 ++- .../src/test/resources/NamedAggregationDataSet.cql | 7 -- .../src/test/resources/NamedIdempotentDataSet.cql | 9 +-- .../src/test/resources/driver.conf | 8 ++ .../src/test/resources/initScript.cql | 33 ++++++++ 22 files changed, 252 insertions(+), 379 deletions(-) diff --git a/components/camel-cassandraql/pom.xml b/components/camel-cassandraql/pom.xml index dfe7bf0..bcc0b4e 100644 --- a/components/camel-cassandraql/pom.xml +++ b/components/camel-cassandraql/pom.xml @@ -67,11 +67,6 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.cassandraunit</groupId> - <artifactId>cassandra-unit</artifactId> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.apache.cassandra</groupId> <artifactId>cassandra-all</artifactId> <version>${cassandra-version}</version> @@ -102,6 +97,12 @@ <version>${snakeyaml-version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>org.testcontainers</groupId> + <artifactId>cassandra</artifactId> + <version>${testcontainers-version}</version> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/BaseCassandraTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/BaseCassandraTest.java index a0880e3..b5b3783 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/BaseCassandraTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/BaseCassandraTest.java @@ -16,23 +16,98 @@ */ package org.apache.camel.component.cassandra; +import java.io.IOException; +import java.net.InetSocketAddress; +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.test.junit5.CamelTestSupport; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.ExtensionContext; +import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.shaded.org.apache.commons.io.IOUtils; public abstract class BaseCassandraTest extends CamelTestSupport { - public static boolean canTest() { - // we cannot test on CI - return System.getenv("BUILD_ID") == null; + public static final String KEYSPACE_NAME = "camel_ks"; + public static final String DATACENTER_NAME = "datacenter1"; + private static final int ORIGINAL_PORT = 9042; + + private static GenericContainer<?> container; + private CqlSession session; + + + @BeforeAll + public static void beforeAll() { + container = new CassandraContainer().withInitScript("initScript.cql").withNetworkAliases("cassandra").withExposedPorts(ORIGINAL_PORT); + container.start(); + } + + @AfterAll + public static void afterAll() { + try { + if (container != null) { + container.stop(); + } + } catch (Exception e) { + // ignored + } } @Override - public void afterAll(ExtensionContext context) { - super.afterAll(context); + public void beforeEach(ExtensionContext context) throws Exception { + super.beforeEach(context); + + executeScript("BasicDataSet.cql"); + } + + public void executeScript(String pathToScript) throws IOException { + String s = IOUtils.toString(getClass().getResourceAsStream("/" + pathToScript), "UTF-8"); + String[] statements = s.split(";"); + for (int i = 0; i < statements.length; i++) { + if (!statements[i].isEmpty()) { + executeCql(statements[i]); + } + } + } + + public void executeCql(String cql) { + getSession().execute(cql); + } + + @Override + protected void doPostTearDown() throws Exception { + super.doPostTearDown(); + try { - CassandraUnitUtils.cleanEmbeddedCassandra(); - } catch (Throwable e) { - // ignore shutdown errors + if (session != null) { + session.close(); + session = null; + } + } catch (Exception e) { + // ignored } } + + public CqlSession getSession() { + if (session == null) { + InetSocketAddress endpoint = new InetSocketAddress(container.getContainerIpAddress(), container.getMappedPort(ORIGINAL_PORT)); + //create a new session + session = CqlSession.builder() + .withLocalDatacenter(DATACENTER_NAME) + .withKeyspace(KEYSPACE_NAME) + .withConfigLoader(DriverConfigLoader.programmaticBuilder() + .withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(5)).build()) + .addContactPoint(endpoint).build(); + } + return session; + } + + public String getUrl() { + return container.getContainerIpAddress() + ":" + container.getMappedPort(ORIGINAL_PORT); + } } diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraCQLUnit.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraCQLUnit.java deleted file mode 100644 index 30558b9..0000000 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraCQLUnit.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.component.cassandra; - -import com.datastax.oss.driver.api.core.CqlIdentifier; -import com.datastax.oss.driver.api.core.CqlSession; -import com.datastax.oss.driver.internal.core.session.DefaultSession; -import org.cassandraunit.CQLDataLoader; -import org.cassandraunit.dataset.CQLDataSet; -import org.cassandraunit.utils.EmbeddedCassandraServerHelper; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; - -import static org.junit.jupiter.api.Assumptions.assumeTrue; - -public class CassandraCQLUnit implements BeforeAllCallback, BeforeEachCallback, AfterEachCallback { - - public CqlSession session; - protected CQLDataSet dataSet; - protected String configurationFileName; - protected long startupTimeoutMillis = EmbeddedCassandraServerHelper.DEFAULT_STARTUP_TIMEOUT; - - public CassandraCQLUnit(CQLDataSet dataSet, String configurationFileName) { - this.dataSet = dataSet; - this.configurationFileName = configurationFileName; - } - - @Override - public void beforeAll(ExtensionContext context) throws Exception { - assumeTrue(BaseCassandraTest.canTest(), - "Skipping test running in CI server - Fails sometimes on CI server with address already in use"); - - /* start an embedded Cassandra */ - if (configurationFileName != null) { - EmbeddedCassandraServerHelper.startEmbeddedCassandra(configurationFileName, startupTimeoutMillis); - } else { - EmbeddedCassandraServerHelper.startEmbeddedCassandra(startupTimeoutMillis); - } - } - - @Override - public void beforeEach(ExtensionContext context) throws Exception { - /* create structure and load data */ - session = CqlSession.builder().build(); - CQLDataLoader dataLoader = new CQLDataLoader(session); - dataLoader.load(dataSet); - } - - @Override - public void afterEach(ExtensionContext extensionContext) throws Exception { - try { - session.close(); - } catch (Throwable e) { - // ignore close errors - } - } -} diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentBeanRefTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentBeanRefTest.java index 5929318..44af092 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentBeanRefTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentBeanRefTest.java @@ -20,7 +20,6 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.spi.Registry; import org.apache.camel.support.SimpleRegistry; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -29,13 +28,10 @@ public class CassandraComponentBeanRefTest extends BaseCassandraTest { 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; - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit(); - @Override protected Registry createCamelRegistry() throws Exception { SimpleRegistry registry = new SimpleRegistry(); - registry.bind("cassandraSession", cassandra.session); + registry.bind("cassandraSession", getSession()); return registry; } @@ -52,7 +48,7 @@ public class CassandraComponentBeanRefTest extends BaseCassandraTest { public void testSession() throws Exception { CassandraEndpoint endpoint = getMandatoryEndpoint(SESSION_URI, CassandraEndpoint.class); - assertEquals(CassandraUnitUtils.KEYSPACE, endpoint.getKeyspace()); + assertEquals(KEYSPACE_NAME, endpoint.getKeyspace()); assertEquals(CQL, endpoint.getCql()); } } diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentConsumerTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentConsumerTest.java index 11bc1e8..f95f36c 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentConsumerTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentConsumerTest.java @@ -25,7 +25,6 @@ import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -33,9 +32,6 @@ public class CassandraComponentConsumerTest extends BaseCassandraTest { static final String CQL = "select login, first_name, last_name from camel_user"; - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit(); - @Test public void testConsumeAll() throws Exception { MockEndpoint mock = getMockEndpoint("mock:resultAll"); @@ -86,9 +82,9 @@ public class CassandraComponentConsumerTest extends BaseCassandraTest { protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() { - from("cql://localhost/camel_ks?cql=" + CQL).to("mock:resultAll"); - from("cql://localhost/camel_ks?cql=" + CQL + "&prepareStatements=false").to("mock:resultUnprepared"); - from("cql://localhost/camel_ks?cql=" + CQL + "&resultSetConversionStrategy=ONE").to("mock:resultOne"); + from(String.format("cql://%s/%s?cql=%s", getUrl(), KEYSPACE_NAME, CQL)).to("mock:resultAll"); + from(String.format("cql://%s/%s?cql=%s&prepareStatements=false", getUrl(), KEYSPACE_NAME, CQL)).to("mock:resultUnprepared"); + from(String.format("cql://%s/%s?cql=%s&resultSetConversionStrategy=ONE", getUrl(), KEYSPACE_NAME, CQL)).to("mock:resultOne"); } }; } diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerTest.java index 9dfade5..b0c23b7 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerTest.java @@ -21,7 +21,6 @@ import java.util.Collections; import java.util.List; import com.datastax.oss.driver.api.core.ConsistencyLevel; -import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.ResultSet; import com.datastax.oss.driver.api.core.cql.Row; import com.datastax.oss.driver.api.querybuilder.QueryBuilder; @@ -30,7 +29,6 @@ import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -42,10 +40,6 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { static final String CQL = "insert into camel_user(login, first_name, last_name) values (?, ?, ?)"; static final String NO_PARAMETER_CQL = "select login, first_name, last_name from camel_user"; - static final String NOT_CONSISTENT_URI = "cql://localhost/camel_ks?cql=" + CQL + "&consistencyLevel=ANY"; - - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit(); @Produce("direct:input") ProducerTemplate producerTemplate; @@ -67,11 +61,11 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { return new RouteBuilder() { public void configure() { - from("direct:input").to("cql://localhost/camel_ks?cql=" + CQL); - from("direct:inputNoParameter").to("cql://localhost/camel_ks?cql=" + NO_PARAMETER_CQL); - from("direct:loadBalancingPolicy").to("cql://localhost/camel_ks?cql=" + NO_PARAMETER_CQL + "&loadBalancingPolicyClass=org.apache.camel.component.cassandra.MockLoadBalancingPolicy"); - from("direct:inputNotConsistent").to(NOT_CONSISTENT_URI); - from("direct:inputNoEndpointCql").to("cql://localhost/camel_ks"); + from("direct:input").to(String.format("cql://%s/%s?cql=%s", getUrl(), KEYSPACE_NAME, CQL)); + from("direct:inputNoParameter").to(String.format("cql://%s/%s?cql=%s", getUrl(), KEYSPACE_NAME, NO_PARAMETER_CQL)); + from("direct:loadBalancingPolicy").to(String.format("cql://%s/%s?cql=%s&loadBalancingPolicyClass=org.apache.camel.component.cassandra.MockLoadBalancingPolicy", getUrl(), KEYSPACE_NAME, NO_PARAMETER_CQL)); + from("direct:inputNotConsistent").to(String.format("cql://%s/%s?cql=%s&consistencyLevel=ANY", getUrl(), KEYSPACE_NAME, CQL)); + from("direct:inputNoEndpointCql").to(String.format("cql://%s/%s", getUrl(), KEYSPACE_NAME)); } }; } @@ -80,13 +74,11 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { public void testRequestUriCql() throws Exception { producerTemplate.requestBody(Arrays.asList("w_jiang", "Willem", "Jiang")); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "w_jiang")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "w_jiang")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Willem", row.getString("first_name")); assertEquals("Jiang", row.getString("last_name")); - session.close(); } @Test @@ -110,13 +102,11 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { producerTemplate.requestBodyAndHeader(new Object[] {"Claus 2", "Ibsen 2", "c_ibsen"}, CassandraConstants.CQL_QUERY, "update camel_user set first_name=?, last_name=? where login=?"); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Claus 2", row.getString("first_name")); assertEquals("Ibsen 2", row.getString("last_name")); - session.close(); } @Test @@ -125,14 +115,11 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { "update camel_user set first_name=?, last_name=? where login=?"); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Claus 2", row.getString("first_name")); assertEquals("Ibsen 2", row.getString("last_name")); - session.close(); - assertTrue(MockLoadBalancingPolicy.used); } @@ -149,13 +136,11 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { .whereColumn("login").isEqualTo(bindMarker()); producerTemplate.requestBodyAndHeader(new Object[] {"Claus 2", "Ibsen 2", "c_ibsen"}, CassandraConstants.CQL_QUERY, update.build()); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Claus 2", row.getString("first_name")); assertEquals("Ibsen 2", row.getString("last_name")); - session.close(); } /** @@ -170,8 +155,7 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { .whereColumn("login").isEqualTo(bindMarker()); producerTemplateNoEndpointCql.sendBodyAndHeader(new Object[] {"Claus 2", "c_ibsen"}, CassandraConstants.CQL_QUERY, update.build()); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet1 = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet1 = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row1 = resultSet1.one(); assertNotNull(row1); assertEquals("Claus 2", row1.getString("first_name")); @@ -182,18 +166,16 @@ public class CassandraComponentProducerTest extends BaseCassandraTest { .whereColumn("login").isEqualTo(bindMarker()); producerTemplateNoEndpointCql.sendBodyAndHeader(new Object[] {"Ibsen 2", "c_ibsen"}, CassandraConstants.CQL_QUERY, update.build()); - ResultSet resultSet2 = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet2 = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row2 = resultSet2.one(); assertNotNull(row2); assertEquals("Claus 2", row2.getString("first_name")); assertEquals("Ibsen 2", row2.getString("last_name")); - - session.close(); } @Test public void testRequestNotConsistent() throws Exception { - CassandraEndpoint endpoint = getMandatoryEndpoint(NOT_CONSISTENT_URI, CassandraEndpoint.class); + CassandraEndpoint endpoint = getMandatoryEndpoint(String.format("cql://%s/%s?cql=%s&consistencyLevel=ANY", getUrl(), KEYSPACE_NAME, CQL), CassandraEndpoint.class); assertEquals(ConsistencyLevel.ANY, endpoint.getConsistencyLevel()); notConsistentProducerTemplate.requestBody(Arrays.asList("j_anstey", "Jonathan", "Anstey")); diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerUnpreparedTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerUnpreparedTest.java index c6a16fae..0242569 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerUnpreparedTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraComponentProducerUnpreparedTest.java @@ -19,7 +19,6 @@ package org.apache.camel.component.cassandra; import java.util.Arrays; import java.util.List; -import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.cql.ResultSet; import com.datastax.oss.driver.api.core.cql.Row; import com.datastax.oss.driver.api.querybuilder.QueryBuilder; @@ -28,9 +27,7 @@ import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; -import static com.datastax.oss.driver.api.querybuilder.QueryBuilder.bindMarker; import static com.datastax.oss.driver.api.querybuilder.QueryBuilder.literal; import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -41,9 +38,6 @@ public class CassandraComponentProducerUnpreparedTest extends BaseCassandraTest static final String CQL = "insert into camel_user(login, first_name, last_name) values (?, ?, ?)"; static final String NO_PARAMETER_CQL = "select login, first_name, last_name from camel_user"; - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit(); - @Produce("direct:input") ProducerTemplate producerTemplate; @@ -55,8 +49,8 @@ public class CassandraComponentProducerUnpreparedTest extends BaseCassandraTest return new RouteBuilder() { public void configure() { - from("direct:input").to("cql://localhost/camel_ks?cql=" + CQL + "&prepareStatements=false"); - from("direct:inputNoParameter").to("cql://localhost/camel_ks?cql=" + NO_PARAMETER_CQL + "&prepareStatements=false"); + from("direct:input").to(String.format("cql://%s/%s?cql=%s&prepareStatements=false", getUrl(), KEYSPACE_NAME, CQL)); + from("direct:inputNoParameter").to(String.format("cql://%s/%s?cql=%s&prepareStatements=false", getUrl(), KEYSPACE_NAME, NO_PARAMETER_CQL)); } }; } @@ -65,13 +59,11 @@ public class CassandraComponentProducerUnpreparedTest extends BaseCassandraTest public void testRequestUriCql() throws Exception { producerTemplate.requestBody(Arrays.asList("w_jiang", "Willem", "Jiang")); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "w_jiang")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "w_jiang")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Willem", row.getString("first_name")); assertEquals("Jiang", row.getString("last_name")); - session.close(); } @Test @@ -95,13 +87,11 @@ public class CassandraComponentProducerUnpreparedTest extends BaseCassandraTest producerTemplate.requestBodyAndHeader(new Object[] {"Claus 2", "Ibsen 2", "c_ibsen"}, CassandraConstants.CQL_QUERY, "update camel_user set first_name=?, last_name=? where login=?"); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Claus 2", row.getString("first_name")); assertEquals("Ibsen 2", row.getString("last_name")); - session.close(); } /** @@ -115,13 +105,11 @@ public class CassandraComponentProducerUnpreparedTest extends BaseCassandraTest .whereColumn("login").isEqualTo(literal("c_ibsen")); producerTemplate.requestBodyAndHeader(null, CassandraConstants.CQL_QUERY, update.build()); - CqlSession session = CassandraUnitUtils.cassandraSession(); - ResultSet resultSet = session.execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); + ResultSet resultSet = getSession().execute(String.format("select login, first_name, last_name from camel_user where login = '%s'", "c_ibsen")); Row row = resultSet.one(); assertNotNull(row); assertEquals("Claus 2", row.getString("first_name")); assertEquals("Ibsen 2", row.getString("last_name")); - session.close(); } } diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraUnitUtils.java b/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraUnitUtils.java deleted file mode 100644 index fd85f54..0000000 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/component/cassandra/CassandraUnitUtils.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.component.cassandra; - -import java.net.InetSocketAddress; - -import com.datastax.oss.driver.api.core.CqlSession; -import org.cassandraunit.dataset.CQLDataSet; -import org.cassandraunit.dataset.cql.ClassPathCQLDataSet; -import org.cassandraunit.utils.EmbeddedCassandraServerHelper; - -/** - * Util methods to manage Cassandra in Unit tests - */ -public final class CassandraUnitUtils { - public static final String HOST = "127.0.0.1"; - public static final String KEYSPACE = "camel_ks"; - - private CassandraUnitUtils() { - } - - /** - * Create Cassandra JUnit Rule. - */ - public static CassandraCQLUnit cassandraCQLUnit() { - return cassandraCQLUnit("BasicDataSet.cql"); - } - - public static CassandraCQLUnit cassandraCQLUnit(String dataSetCql) { - return cassandraCQLUnit(cqlDataSet(dataSetCql)); - } - - public static CQLDataSet cqlDataSet(String dataSetCql) { - return new ClassPathCQLDataSet(dataSetCql, KEYSPACE); - } - - public static CassandraCQLUnit cassandraCQLUnit(CQLDataSet dataset) { - return cassandraCQLUnit(dataset, "/camel-cassandra.yaml"); - } - - public static CassandraCQLUnit cassandraCQLUnit(CQLDataSet dataset, String configurationFileName) { - return new CassandraCQLUnit(dataset, "/camel-cassandra.yaml"); - } - - /** - * Start embedded Cassandra. - */ - public static void startEmbeddedCassandra() throws Exception { - EmbeddedCassandraServerHelper.startEmbeddedCassandra("/camel-cassandra.yaml", "target/camel-cassandra", 30000); - } - - /** - * Clean embedded Cassandra. - */ - public static void cleanEmbeddedCassandra() throws Exception { - EmbeddedCassandraServerHelper.cleanEmbeddedCassandra(); - } - - public static CqlSession cassandraSession() { - return CqlSession.builder().addContactPoint(new InetSocketAddress(HOST, 9042)).withKeyspace(KEYSPACE).withLocalDatacenter("datacenter1").build(); - } -} diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryTest.java index 09f7221..e28a7c6 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationRepositoryTest.java @@ -18,16 +18,11 @@ package org.apache.camel.processor.aggregate.cassandra; import java.util.Set; -import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; -import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.support.DefaultExchange; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -40,28 +35,24 @@ import static org.junit.jupiter.api.Assertions.assertTrue; */ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("AggregationDataSet.cql"); - private CassandraAggregationRepository aggregationRepository; - private CamelContext camelContext; @Override protected void doPreSetup() throws Exception { - camelContext = new DefaultCamelContext(); - aggregationRepository = new CassandraAggregationRepository(cassandra.session); + aggregationRepository = new CassandraAggregationRepository(getSession()); aggregationRepository.start(); super.doPreSetup(); } -// @Override -// @AfterEach -// public void tearDown() throws Exception { -// aggregationRepository.stop(); -// } + @Override + @AfterEach + public void tearDown() throws Exception { + super.tearDown(); + aggregationRepository.stop(); + } private boolean exists(String key) { - return cassandra.session.execute(String.format("select KEY from CAMEL_AGGREGATION where KEY='%s'", key)).one() != null; + return getSession().execute(String.format("select KEY from CAMEL_AGGREGATION where KEY='%s'", key)).one() != null; } @Test @@ -69,9 +60,9 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { // Given String key = "Add"; assertFalse(exists(key)); - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); // When - aggregationRepository.add(camelContext, key, exchange); + aggregationRepository.add(context, key, exchange); // Then assertTrue(exists(key)); } @@ -80,11 +71,11 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { public void testGetExists() { // Given String key = "Get_Exists"; - Exchange exchange = new DefaultExchange(camelContext); - aggregationRepository.add(camelContext, key, exchange); + Exchange exchange = new DefaultExchange(context); + aggregationRepository.add(context, key, exchange); assertTrue(exists(key)); // When - Exchange exchange2 = aggregationRepository.get(camelContext, key); + Exchange exchange2 = aggregationRepository.get(context, key); // Then assertNotNull(exchange2); assertEquals(exchange.getExchangeId(), exchange2.getExchangeId()); @@ -96,7 +87,7 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { String key = "Get_NotExists"; assertFalse(exists(key)); // When - Exchange exchange2 = aggregationRepository.get(camelContext, key); + Exchange exchange2 = aggregationRepository.get(context, key); // Then assertNull(exchange2); } @@ -105,11 +96,11 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { public void testRemoveExists() { // Given String key = "Remove_Exists"; - Exchange exchange = new DefaultExchange(camelContext); - aggregationRepository.add(camelContext, key, exchange); + Exchange exchange = new DefaultExchange(context); + aggregationRepository.add(context, key, exchange); assertTrue(exists(key)); // When - aggregationRepository.remove(camelContext, key, exchange); + aggregationRepository.remove(context, key, exchange); // Then assertFalse(exists(key)); } @@ -118,10 +109,10 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { public void testRemoveNotExists() { // Given String key = "RemoveNotExists"; - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); assertFalse(exists(key)); // When - aggregationRepository.remove(camelContext, key, exchange); + aggregationRepository.remove(context, key, exchange); // Then assertFalse(exists(key)); } @@ -144,13 +135,13 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { // Given for (int i = 1; i < 4; i++) { String key = "Confirm_" + i; - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); exchange.setExchangeId("Exchange_" + i); - aggregationRepository.add(camelContext, key, exchange); + aggregationRepository.add(context, key, exchange); assertTrue(exists(key)); } // When - aggregationRepository.confirm(camelContext, "Exchange_2"); + aggregationRepository.confirm(context, "Exchange_2"); // Then assertTrue(exists("Confirm_1")); assertFalse(exists("Confirm_2")); @@ -169,7 +160,7 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { assertTrue(exists(key)); } // When - aggregationRepository.confirm(camelContext, "Exchange-Confirm5"); + aggregationRepository.confirm(context, "Exchange-Confirm5"); // Then for (String key : keys) { assertTrue(exists(key)); @@ -178,9 +169,9 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { private void addExchanges(String... keys) { for (String key : keys) { - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); exchange.setExchangeId("Exchange-" + key); - aggregationRepository.add(camelContext, key, exchange); + aggregationRepository.add(context, key, exchange); } } @@ -190,7 +181,7 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { String[] keys = {"Scan1", "Scan2"}; addExchanges(keys); // When - Set<String> exchangeIdSet = aggregationRepository.scan(camelContext); + Set<String> exchangeIdSet = aggregationRepository.scan(context); // Then for (String key : keys) { assertTrue(exchangeIdSet.contains("Exchange-" + key)); @@ -203,8 +194,8 @@ public class CassandraAggregationRepositoryTest extends BaseCassandraTest { String[] keys = {"Recover1", "Recover2"}; addExchanges(keys); // When - Exchange exchange2 = aggregationRepository.recover(camelContext, "Exchange-Recover2"); - Exchange exchange3 = aggregationRepository.recover(camelContext, "Exchange-Recover3"); + Exchange exchange2 = aggregationRepository.recover(context, "Exchange-Recover2"); + Exchange exchange3 = aggregationRepository.recover(context, "Exchange-Recover3"); // Then assertNotNull(exchange2); assertNull(exchange3); diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersTest.java index f2f8697..76a92a4 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationSerializedHeadersTest.java @@ -20,27 +20,22 @@ import org.apache.camel.AggregationStrategy; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; 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.Test; -import org.junit.jupiter.api.extension.RegisterExtension; /** * Unite test for {@link CassandraAggregationRepository} */ public class CassandraAggregationSerializedHeadersTest extends BaseCassandraTest { - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("NamedAggregationDataSet.cql"); private CassandraAggregationRepository aggregationRepository; @Override protected void doPreSetup() throws Exception { - aggregationRepository = new NamedCassandraAggregationRepository(cassandra.session, "ID"); + aggregationRepository = new NamedCassandraAggregationRepository(getSession(), "ID"); aggregationRepository.setTable("NAMED_CAMEL_AGGREGATION"); aggregationRepository.setAllowSerializedHeaders(true); aggregationRepository.start(); diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationTest.java index 059a7ef..3965f70 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/CassandraAggregationTest.java @@ -20,26 +20,20 @@ import org.apache.camel.AggregationStrategy; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; import org.apache.camel.component.mock.MockEndpoint; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; /** * Unite test for {@link CassandraAggregationRepository} */ public class CassandraAggregationTest extends BaseCassandraTest { - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("NamedAggregationDataSet.cql"); - private CassandraAggregationRepository aggregationRepository; @Override protected void doPreSetup() throws Exception { - aggregationRepository = new NamedCassandraAggregationRepository(cassandra.session, "ID"); + aggregationRepository = new NamedCassandraAggregationRepository(getSession(), "ID"); aggregationRepository.setTable("NAMED_CAMEL_AGGREGATION"); aggregationRepository.start(); super.doPreSetup(); diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryTest.java index 17efe20..c3e9266 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/aggregate/cassandra/NamedCassandraAggregationRepositoryTest.java @@ -18,17 +18,11 @@ package org.apache.camel.processor.aggregate.cassandra; import java.util.Set; -import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; -import org.apache.camel.impl.DefaultCamelContext; 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.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -41,30 +35,26 @@ import static org.junit.jupiter.api.Assertions.assertTrue; */ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { - @RegisterExtension - - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("NamedAggregationDataSet.cql"); - private CassandraAggregationRepository aggregationRepository; - private CamelContext camelContext; @Override - @BeforeEach - public void setUp() throws Exception { - camelContext = new DefaultCamelContext(); - aggregationRepository = new NamedCassandraAggregationRepository(cassandra.session, "ID"); + protected void doPreSetup() throws Exception { + aggregationRepository = new NamedCassandraAggregationRepository(getSession(), "ID"); aggregationRepository.setTable("NAMED_CAMEL_AGGREGATION"); aggregationRepository.start(); + + super.doPreSetup(); } -// @Override -// @AfterEach -// public void tearDown() throws Exception { -// aggregationRepository.stop(); -// } + @Override + @AfterEach + public void tearDown() throws Exception { + super.tearDown(); + aggregationRepository.stop(); + } private boolean exists(String key) { - return cassandra.session.execute(String.format("select KEY from NAMED_CAMEL_AGGREGATION where NAME='ID' and KEY='%s'", key)).one() != null; + return getSession().execute(String.format("select KEY from NAMED_CAMEL_AGGREGATION where NAME='ID' and KEY='%s'", key)).one() != null; } @Test @@ -72,9 +62,9 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { // Given String key = "Add"; assertFalse(exists(key)); - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); // When - aggregationRepository.add(camelContext, key, exchange); + aggregationRepository.add(context, key, exchange); // Then assertTrue(exists(key)); } @@ -83,11 +73,11 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { public void testGetExists() { // Given String key = "Get_Exists"; - Exchange exchange = new DefaultExchange(camelContext); - aggregationRepository.add(camelContext, key, exchange); + Exchange exchange = new DefaultExchange(context); + aggregationRepository.add(context, key, exchange); assertTrue(exists(key)); // When - Exchange exchange2 = aggregationRepository.get(camelContext, key); + Exchange exchange2 = aggregationRepository.get(context, key); // Then assertNotNull(exchange2); assertEquals(exchange.getExchangeId(), exchange2.getExchangeId()); @@ -99,7 +89,7 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { String key = "Get_NotExists"; assertFalse(exists(key)); // When - Exchange exchange2 = aggregationRepository.get(camelContext, key); + Exchange exchange2 = aggregationRepository.get(context, key); // Then assertNull(exchange2); } @@ -108,11 +98,11 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { public void testRemoveExists() { // Given String key = "Remove_Exists"; - Exchange exchange = new DefaultExchange(camelContext); - aggregationRepository.add(camelContext, key, exchange); + Exchange exchange = new DefaultExchange(context); + aggregationRepository.add(context, key, exchange); assertTrue(exists(key)); // When - aggregationRepository.remove(camelContext, key, exchange); + aggregationRepository.remove(context, key, exchange); // Then assertFalse(exists(key)); } @@ -121,10 +111,10 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { public void testRemoveNotExists() { // Given String key = "RemoveNotExists"; - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); assertFalse(exists(key)); // When - aggregationRepository.remove(camelContext, key, exchange); + aggregationRepository.remove(context, key, exchange); // Then assertFalse(exists(key)); } @@ -147,13 +137,13 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { // Given for (int i = 1; i < 4; i++) { String key = "Confirm_" + i; - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); exchange.setExchangeId("Exchange_" + i); - aggregationRepository.add(camelContext, key, exchange); + aggregationRepository.add(context, key, exchange); assertTrue(exists(key)); } // When - aggregationRepository.confirm(camelContext, "Exchange_2"); + aggregationRepository.confirm(context, "Exchange_2"); // Then assertTrue(exists("Confirm_1")); assertFalse(exists("Confirm_2")); @@ -172,7 +162,7 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { assertTrue(exists(key)); } // When - aggregationRepository.confirm(camelContext, "Exchange-Confirm5"); + aggregationRepository.confirm(context, "Exchange-Confirm5"); // Then for (String key : keys) { assertTrue(exists(key)); @@ -181,9 +171,9 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { private void addExchanges(String... keys) { for (String key : keys) { - Exchange exchange = new DefaultExchange(camelContext); + Exchange exchange = new DefaultExchange(context); exchange.setExchangeId("Exchange-" + key); - aggregationRepository.add(camelContext, key, exchange); + aggregationRepository.add(context, key, exchange); } } @@ -193,7 +183,7 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { String[] keys = {"Scan1", "Scan2"}; addExchanges(keys); // When - Set<String> exchangeIdSet = aggregationRepository.scan(camelContext); + Set<String> exchangeIdSet = aggregationRepository.scan(context); // Then for (String key : keys) { assertTrue(exchangeIdSet.contains("Exchange-" + key)); @@ -206,8 +196,8 @@ public class NamedCassandraAggregationRepositoryTest extends BaseCassandraTest { String[] keys = {"Recover1", "Recover2"}; addExchanges(keys); // When - Exchange exchange2 = aggregationRepository.recover(camelContext, "Exchange-Recover2"); - Exchange exchange3 = aggregationRepository.recover(camelContext, "Exchange-Recover3"); + Exchange exchange2 = aggregationRepository.recover(context, "Exchange-Recover2"); + Exchange exchange3 = aggregationRepository.recover(context, "Exchange-Recover3"); // Then assertNotNull(exchange2); assertNull(exchange3); diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryTest.java index 6524386..ca3c479 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentRepositoryTest.java @@ -17,12 +17,9 @@ package org.apache.camel.processor.idempotent.cassandra; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.api.extension.ExtensionContext; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -32,29 +29,32 @@ import static org.junit.jupiter.api.Assertions.assertTrue; */ public class CassandraIdempotentRepositoryTest extends BaseCassandraTest { - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("IdempotentDataSet.cql"); - private CassandraIdempotentRepository idempotentRepository; @Override - @BeforeEach - public void setUp() throws Exception { - idempotentRepository = new CassandraIdempotentRepository(cassandra.session); - + protected void doPreSetup() throws Exception { + idempotentRepository = new CassandraIdempotentRepository(getSession()); idempotentRepository.start(); - super.setUp(); + + super.doPreSetup(); + } + + @Override + public void beforeEach(ExtensionContext context) throws Exception { + super.beforeEach(context); + + executeScript("IdempotentDataSet.cql"); } @Override @AfterEach public void tearDown() throws Exception { - idempotentRepository.stop(); super.tearDown(); + idempotentRepository.stop(); } private boolean exists(String key) { - return cassandra.session.execute(String.format("select KEY from CAMEL_IDEMPOTENT where KEY='%s'", key)).one() != null; + return getSession().execute(String.format("select KEY from CAMEL_IDEMPOTENT where KEY='%s'", key)).one() != null; } @Test diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentTest.java index 2559dee..3a9333d 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/CassandraIdempotentTest.java @@ -18,26 +18,20 @@ package org.apache.camel.processor.idempotent.cassandra; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; import org.apache.camel.component.mock.MockEndpoint; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; /** * Unite test for {@link CassandraIdempotentRepository} */ public class CassandraIdempotentTest extends BaseCassandraTest { - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("NamedIdempotentDataSet.cql"); - private CassandraIdempotentRepository idempotentRepository; @Override protected void doPreSetup() throws Exception { - idempotentRepository = new NamedCassandraIdempotentRepository(cassandra.session, "ID"); + idempotentRepository = new NamedCassandraIdempotentRepository(getSession(), "ID"); idempotentRepository.setTable("NAMED_CAMEL_IDEMPOTENT"); idempotentRepository.start(); super.doPreSetup(); diff --git a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryTest.java b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryTest.java index 09bc08c..d67e661 100644 --- a/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryTest.java +++ b/components/camel-cassandraql/src/test/java/org/apache/camel/processor/idempotent/cassandra/NamedCassandraIdempotentRepositoryTest.java @@ -17,12 +17,9 @@ package org.apache.camel.processor.idempotent.cassandra; import org.apache.camel.component.cassandra.BaseCassandraTest; -import org.apache.camel.component.cassandra.CassandraCQLUnit; -import org.apache.camel.component.cassandra.CassandraUnitUtils; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.api.extension.ExtensionContext; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -32,18 +29,22 @@ import static org.junit.jupiter.api.Assertions.assertTrue; */ public class NamedCassandraIdempotentRepositoryTest extends BaseCassandraTest { - @RegisterExtension - static CassandraCQLUnit cassandra = CassandraUnitUtils.cassandraCQLUnit("NamedIdempotentDataSet.cql"); - private CassandraIdempotentRepository idempotentRepository; @Override - @BeforeEach - public void setUp() throws Exception { - idempotentRepository = new NamedCassandraIdempotentRepository(cassandra.session, "ID"); + protected void doPreSetup() throws Exception { + idempotentRepository = new NamedCassandraIdempotentRepository(getSession(), "ID"); idempotentRepository.setTable("NAMED_CAMEL_IDEMPOTENT"); idempotentRepository.start(); - super.setUp(); + + super.doPreSetup(); + } + + @Override + public void beforeEach(ExtensionContext context) throws Exception { + super.beforeEach(context); + + executeScript("NamedIdempotentDataSet.cql"); } @Override @@ -54,7 +55,7 @@ public class NamedCassandraIdempotentRepositoryTest extends BaseCassandraTest { } private boolean exists(String key) { - return cassandra.session.execute(String.format("select KEY from NAMED_CAMEL_IDEMPOTENT where NAME='ID' and KEY='%s'", key)).one() != null; + return getSession().execute(String.format("select KEY from NAMED_CAMEL_IDEMPOTENT where NAME='ID' and KEY='%s'", key)).one() != null; } @Test diff --git a/components/camel-cassandraql/src/test/resources/AggregationDataSet.cql b/components/camel-cassandraql/src/test/resources/AggregationDataSet.cql deleted file mode 100644 index 0ff543a..0000000 --- a/components/camel-cassandraql/src/test/resources/AggregationDataSet.cql +++ /dev/null @@ -1,6 +0,0 @@ -CREATE TABLE CAMEL_AGGREGATION ( - KEY varchar, - EXCHANGE_ID varchar, - EXCHANGE blob, - PRIMARY KEY (KEY) -); diff --git a/components/camel-cassandraql/src/test/resources/BasicDataSet.cql b/components/camel-cassandraql/src/test/resources/BasicDataSet.cql index a47d42d..9054e40 100644 --- a/components/camel-cassandraql/src/test/resources/BasicDataSet.cql +++ b/components/camel-cassandraql/src/test/resources/BasicDataSet.cql @@ -1,9 +1,6 @@ -CREATE TABLE camel_user ( - login varchar PRIMARY KEY, - first_name varchar, - last_name varchar -); +TRUNCATE camel_user; + INSERT INTO camel_user(login, first_name, last_name) VALUES('j_strachan','James','Strachan'); INSERT INTO camel_user(login, first_name, last_name) - VALUES('c_ibsen','Claus','Ibsen'); + VALUES('c_ibsen','Claus','Ibsen'); \ No newline at end of file diff --git a/components/camel-cassandraql/src/test/resources/IdempotentDataSet.cql b/components/camel-cassandraql/src/test/resources/IdempotentDataSet.cql index 50a09a7..2d4b974 100644 --- a/components/camel-cassandraql/src/test/resources/IdempotentDataSet.cql +++ b/components/camel-cassandraql/src/test/resources/IdempotentDataSet.cql @@ -1,10 +1,8 @@ -CREATE TABLE CAMEL_IDEMPOTENT ( - KEY varchar, - PRIMARY KEY (KEY) -); +TRUNCATE CAMEL_IDEMPOTENT; + INSERT INTO CAMEL_IDEMPOTENT(KEY) VALUES('Add_Exists'); -INSERT INTO CAMEL_IDEMPOTENT(KEY) +INSERT INTO camel_ks.CAMEL_IDEMPOTENT(KEY) VALUES('Contains_Exists'); -INSERT INTO CAMEL_IDEMPOTENT(KEY) - VALUES('Remove_Exists'); +INSERT INTO camel_ks.CAMEL_IDEMPOTENT(KEY) + VALUES('Remove_Exists'); \ No newline at end of file diff --git a/components/camel-cassandraql/src/test/resources/NamedAggregationDataSet.cql b/components/camel-cassandraql/src/test/resources/NamedAggregationDataSet.cql deleted file mode 100644 index 2b53326..0000000 --- a/components/camel-cassandraql/src/test/resources/NamedAggregationDataSet.cql +++ /dev/null @@ -1,7 +0,0 @@ -CREATE TABLE NAMED_CAMEL_AGGREGATION ( - NAME varchar, - KEY varchar, - EXCHANGE_ID varchar, - EXCHANGE blob, - PRIMARY KEY (NAME, KEY) -); diff --git a/components/camel-cassandraql/src/test/resources/NamedIdempotentDataSet.cql b/components/camel-cassandraql/src/test/resources/NamedIdempotentDataSet.cql index 14a8e52..a8adebd 100644 --- a/components/camel-cassandraql/src/test/resources/NamedIdempotentDataSet.cql +++ b/components/camel-cassandraql/src/test/resources/NamedIdempotentDataSet.cql @@ -1,11 +1,8 @@ -CREATE TABLE NAMED_CAMEL_IDEMPOTENT ( - NAME varchar, - KEY varchar, - PRIMARY KEY (NAME, KEY) -); +TRUNCATE NAMED_CAMEL_IDEMPOTENT; + INSERT INTO NAMED_CAMEL_IDEMPOTENT(NAME, KEY) VALUES('ID','Add_Exists'); INSERT INTO NAMED_CAMEL_IDEMPOTENT(NAME, KEY) VALUES('ID','Contains_Exists'); INSERT INTO NAMED_CAMEL_IDEMPOTENT(NAME, KEY) - VALUES('ID','Remove_Exists'); + VALUES('ID','Remove_Exists'); \ No newline at end of file diff --git a/components/camel-cassandraql/src/test/resources/driver.conf b/components/camel-cassandraql/src/test/resources/driver.conf new file mode 100644 index 0000000..9d47707 --- /dev/null +++ b/components/camel-cassandraql/src/test/resources/driver.conf @@ -0,0 +1,8 @@ +datastax-java-driver { + advanced.protocol.version = V4 + profiles { + slow { + basic.request.timeout = 10 seconds + } + } +} \ No newline at end of file diff --git a/components/camel-cassandraql/src/test/resources/initScript.cql b/components/camel-cassandraql/src/test/resources/initScript.cql new file mode 100644 index 0000000..0253f9b --- /dev/null +++ b/components/camel-cassandraql/src/test/resources/initScript.cql @@ -0,0 +1,33 @@ +CREATE KEYSPACE IF NOT EXISTS camel_ks WITH replication = {'class':'SimpleStrategy', 'replication_factor':1}; + +CREATE TABLE camel_ks.camel_user ( + login varchar PRIMARY KEY, + first_name varchar, + last_name varchar +); + +CREATE TABLE camel_ks.NAMED_CAMEL_AGGREGATION ( + NAME varchar, + KEY varchar, + EXCHANGE_ID varchar, + EXCHANGE blob, + PRIMARY KEY (NAME, KEY) +); + +CREATE TABLE camel_ks.NAMED_CAMEL_IDEMPOTENT ( + NAME varchar, + KEY varchar, + PRIMARY KEY (NAME, KEY) +); + +CREATE TABLE camel_ks.CAMEL_IDEMPOTENT ( + KEY varchar, + PRIMARY KEY (KEY) +); + +CREATE TABLE camel_ks.CAMEL_AGGREGATION ( + KEY varchar, + EXCHANGE_ID varchar, + EXCHANGE blob, + PRIMARY KEY (KEY) +);