You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2020/02/28 03:12:34 UTC
[james-project] 04/06: JAMES-3059 Instrument regular statements for
testing purposes
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 33c0507a05fcc77af16cae77ec01d60f591b9ebe
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Feb 27 15:00:40 2020 +0700
JAMES-3059 Instrument regular statements for testing purposes
---
.../org/apache/james/backends/cassandra/Scenario.java | 12 +++++++++---
.../james/backends/cassandra/TestingSessionTest.java | 17 +++++++++++++++++
2 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/Scenario.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/Scenario.java
index 4bc8746..efbf6a8 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/Scenario.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/Scenario.java
@@ -26,6 +26,7 @@ import java.util.stream.Stream;
import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
import com.datastax.driver.core.BoundStatement;
+import com.datastax.driver.core.RegularStatement;
import com.datastax.driver.core.ResultSetFuture;
import com.datastax.driver.core.Session;
import com.datastax.driver.core.Statement;
@@ -54,10 +55,10 @@ public class Scenario {
@FunctionalInterface
interface StatementPredicate {
- class BoundStatementStartingWith implements StatementPredicate {
+ class StatementStartingWith implements StatementPredicate {
private final String queryStringPrefix;
- BoundStatementStartingWith(String queryStringPrefix) {
+ StatementStartingWith(String queryStringPrefix) {
this.queryStringPrefix = queryStringPrefix;
}
@@ -69,6 +70,11 @@ public class Scenario {
.getQueryString()
.startsWith(queryStringPrefix);
}
+ if (statement instanceof RegularStatement) {
+ RegularStatement regularStatement = (RegularStatement) statement;
+ return regularStatement.getQueryString()
+ .startsWith(queryStringPrefix);
+ }
return false;
}
}
@@ -122,7 +128,7 @@ public class Scenario {
}
default ExecutionHook whenQueryStartsWith(String queryStringPrefix) {
- return statementPredicate(new StatementPredicate.BoundStatementStartingWith(queryStringPrefix));
+ return statementPredicate(new StatementPredicate.StatementStartingWith(queryStringPrefix));
}
}
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSessionTest.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSessionTest.java
index 941c16b..bb08907 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSessionTest.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/TestingSessionTest.java
@@ -19,15 +19,19 @@
package org.apache.james.backends.cassandra;
+import static com.datastax.driver.core.querybuilder.QueryBuilder.select;
import static org.apache.james.backends.cassandra.Scenario.Builder.awaitOn;
import static org.apache.james.backends.cassandra.Scenario.Builder.executeNormally;
import static org.apache.james.backends.cassandra.Scenario.Builder.fail;
import static org.apache.james.backends.cassandra.Scenario.combine;
+import static org.apache.james.backends.cassandra.versions.table.CassandraSchemaVersionTable.TABLE_NAME;
+import static org.apache.james.backends.cassandra.versions.table.CassandraSchemaVersionTable.VALUE;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import org.apache.james.backends.cassandra.Scenario.Barrier;
+import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionModule;
import org.apache.james.backends.cassandra.versions.SchemaVersion;
@@ -90,6 +94,19 @@ class TestingSessionTest {
}
@Test
+ void regularStatementsShouldBeInstrumented(CassandraCluster cassandra) {
+ cassandra.getConf()
+ .registerScenario(fail()
+ .times(1)
+ .whenQueryStartsWith("SELECT value FROM schemaVersion;"));
+
+ assertThatThrownBy(() -> new CassandraAsyncExecutor(cassandra.getConf())
+ .execute(select(VALUE).from(TABLE_NAME))
+ .block())
+ .isInstanceOf(RuntimeException.class);
+ }
+
+ @Test
void forAllQueriesShouldMatchAllStatements(CassandraCluster cassandra) {
cassandra.getConf()
.registerScenario(fail()
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org