Skip to content

Commit 9181df1

Browse files
committed
Polish Cassandra tests
1 parent 8b36391 commit 9181df1

File tree

5 files changed

+45
-95
lines changed

5 files changed

+45
-95
lines changed

docs/modules/databases/cassandra.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ This example connects to the Cassandra cluster:
66

77
1. Define a container:
88
<!--codeinclude-->
9-
[Container definition](../../../modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraDriver4Test.java) inside_block:container-definition
9+
[Container definition](../../../modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java) inside_block:container-definition
1010
<!--/codeinclude-->
1111

1212
2. Build a `CqlSession`:
1313
<!--codeinclude-->
14-
[Building CqlSession](../../../modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraDriver4Test.java) inside_block:cql-session
14+
[Building CqlSession](../../../modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java) inside_block:cql-session
1515
<!--/codeinclude-->
1616

1717
3. Define a container with custom `cassandra.yaml` located in a directory `cassandra-auth-required-configuration`:

modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraContainerTest.java

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.testcontainers.cassandra;
22

33
import com.datastax.oss.driver.api.core.CqlSession;
4-
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
54
import com.datastax.oss.driver.api.core.cql.ResultSet;
65
import com.datastax.oss.driver.api.core.cql.Row;
76
import org.junit.Test;
@@ -20,7 +19,10 @@ public class CassandraContainerTest {
2019

2120
@Test
2221
public void testSimple() {
23-
try (CassandraContainer cassandraContainer = new CassandraContainer(CASSANDRA_IMAGE)) {
22+
try ( // container-definition {
23+
CassandraContainer cassandraContainer = new CassandraContainer("cassandra:3.11.2")
24+
// }
25+
) {
2426
cassandraContainer.start();
2527
ResultSet resultSet = performQuery(cassandraContainer, BASIC_QUERY);
2628
assertThat(resultSet.wasApplied()).as("Query was applied").isTrue();
@@ -115,30 +117,39 @@ public void testInitScriptWithLegacyCassandra() {
115117
}
116118

117119
private void testInitScript(CassandraContainer cassandraContainer, boolean withCredentials) {
118-
ResultSet resultSet = performQuery(
119-
cassandraContainer,
120-
"SELECT * FROM keySpaceTest.catalog_category",
121-
withCredentials
122-
);
120+
String query = "SELECT * FROM keySpaceTest.catalog_category";
121+
ResultSet resultSet;
122+
123+
if (withCredentials) {
124+
resultSet = performQueryWithAuth(cassandraContainer, query);
125+
} else {
126+
resultSet = performQuery(cassandraContainer, query);
127+
}
128+
123129
assertThat(resultSet.wasApplied()).as("Query was applied").isTrue();
124130
Row row = resultSet.one();
125131
assertThat(row.getLong(0)).as("Inserted row is in expected state").isEqualTo(1);
126132
assertThat(row.getString(1)).as("Inserted row is in expected state").isEqualTo("test_category");
127133
}
128134

129135
private ResultSet performQuery(CassandraContainer cassandraContainer, String cql) {
130-
return performQuery(cassandraContainer, cql, false);
136+
// cql-session {
137+
final CqlSession cqlSession = CqlSession
138+
.builder()
139+
.addContactPoint(cassandraContainer.getContactPoint())
140+
.withLocalDatacenter(cassandraContainer.getLocalDatacenter())
141+
.build();
142+
// }
143+
return performQuery(cqlSession, cql);
131144
}
132145

133-
private ResultSet performQuery(CassandraContainer cassandraContainer, String cql, boolean withCredentials) {
134-
final CqlSessionBuilder cqlSessionBuilder = CqlSession
146+
private ResultSet performQueryWithAuth(CassandraContainer cassandraContainer, String cql) {
147+
final CqlSession cqlSession = CqlSession
135148
.builder()
136149
.addContactPoint(cassandraContainer.getContactPoint())
137-
.withLocalDatacenter(cassandraContainer.getLocalDatacenter());
138-
if (withCredentials) {
139-
cqlSessionBuilder.withAuthCredentials(cassandraContainer.getUsername(), cassandraContainer.getPassword());
140-
}
141-
final CqlSession cqlSession = cqlSessionBuilder.build();
150+
.withLocalDatacenter(cassandraContainer.getLocalDatacenter())
151+
.withAuthCredentials(cassandraContainer.getUsername(), cassandraContainer.getPassword())
152+
.build();
142153
return performQuery(cqlSession, cql);
143154
}
144155

modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraServer4Test.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraServer5Test.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

modules/cassandra/src/test/java/org/testcontainers/cassandra/CassandraDriver4Test.java renamed to modules/cassandra/src/test/java/org/testcontainers/cassandra/CompatibleCassandraImageTest.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,38 @@
33
import com.datastax.oss.driver.api.core.CqlIdentifier;
44
import com.datastax.oss.driver.api.core.CqlSession;
55
import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
6-
import org.junit.Rule;
76
import org.junit.Test;
7+
import org.junit.runner.RunWith;
8+
import org.junit.runners.Parameterized;
89

910
import static org.assertj.core.api.Assertions.assertThat;
1011

11-
public class CassandraDriver4Test {
12+
@RunWith(Parameterized.class)
13+
public class CompatibleCassandraImageTest {
1214

13-
@Rule
14-
// container-definition {
15-
public CassandraContainer cassandra = new CassandraContainer("cassandra:3.11.2");
15+
@Parameterized.Parameters(name = "{0}")
16+
public static String[] params() {
17+
return new String[] { "cassandra:3.11.2", "cassandra:4.1.1", "cassandra:5" };
18+
}
1619

17-
// }
20+
@Parameterized.Parameter
21+
public String imageName;
1822

1923
@Test
2024
public void testCassandraGetContactPoint() {
25+
try (CassandraContainer cassandra = new CassandraContainer(this.imageName)) {
26+
cassandra.start();
27+
extracted(cassandra);
28+
}
29+
}
30+
31+
private void extracted(CassandraContainer cassandra) {
2132
try (
22-
// cql-session {
2333
CqlSession session = CqlSession
2434
.builder()
2535
.addContactPoint(cassandra.getContactPoint())
2636
.withLocalDatacenter(cassandra.getLocalDatacenter())
2737
.build()
28-
// }
2938
) {
3039
session.execute(
3140
"CREATE KEYSPACE IF NOT EXISTS test WITH replication = \n" +

0 commit comments

Comments
 (0)