Skip to content

Commit 3cf7786

Browse files
committed
Merge pull request apache#620 from datastax/java764tests
Upgrade to scassandra 1.0.3. Change CAS tests to use Scassandra.
2 parents eb5e2cc + d9cee59 commit 3cf7786

13 files changed

+109
-166
lines changed

driver-core/src/test/java/com/datastax/driver/core/QueryLoggerErrorsTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.google.common.util.concurrent.Uninterruptibles;
2020
import org.apache.log4j.Level;
2121
import org.apache.log4j.Logger;
22-
import org.scassandra.http.client.PrimingRequest;
22+
import org.scassandra.http.client.Result;
2323
import org.testng.annotations.AfterMethod;
2424
import org.testng.annotations.BeforeMethod;
2525
import org.testng.annotations.DataProvider;
@@ -32,9 +32,9 @@
3232
import static org.apache.log4j.Level.INFO;
3333
import static org.assertj.core.api.Assertions.assertThat;
3434
import static org.assertj.core.api.Assertions.fail;
35-
import static org.scassandra.http.client.PrimingRequest.Result.*;
3635
import static org.scassandra.http.client.PrimingRequest.queryBuilder;
3736
import static org.scassandra.http.client.PrimingRequest.then;
37+
import static org.scassandra.http.client.Result.*;
3838

3939
/**
4040
* Tests for {@link QueryLogger} using Scassandra.
@@ -210,7 +210,7 @@ public static Object[][] createErrors() {
210210
}
211211

212212
@Test(groups = "short", dataProvider = "errors")
213-
public void should_log_exception_from_the_given_result(PrimingRequest.Result result, Class<? extends Exception> expectedException, Class<? extends Exception> loggedException) throws Exception {
213+
public void should_log_exception_from_the_given_result(Result result, Class<? extends Exception> expectedException, Class<? extends Exception> loggedException) throws Exception {
214214
// given
215215
error.setLevel(DEBUG);
216216
queryLogger = builder(cluster).build();

driver-core/src/test/java/com/datastax/driver/core/SpeculativeExecutionTest.java

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import com.datastax.driver.core.policies.SpeculativeExecutionPolicy;
2121
import com.google.common.collect.ImmutableList;
2222
import com.google.common.collect.ImmutableMap;
23+
import org.scassandra.http.client.Consistency;
2324
import org.scassandra.http.client.PrimingRequest;
25+
import org.scassandra.http.client.Result;
2426
import org.testng.annotations.AfterMethod;
2527
import org.testng.annotations.BeforeMethod;
2628
import org.testng.annotations.Test;
@@ -99,17 +101,17 @@ public void should_not_start_speculative_execution_if_first_execution_completes_
99101
public void should_not_start_speculative_execution_if_first_execution_retries_but_is_still_fast_enough() {
100102
// will retry once on this node:
101103
scassandras.node(1).primingClient().prime(PrimingRequest.queryBuilder()
102-
.withQuery("mock query")
103-
.withConsistency(PrimingRequest.Consistency.TWO)
104-
.withResult(PrimingRequest.Result.read_request_timeout)
105-
.build()
104+
.withQuery("mock query")
105+
.withConsistency(Consistency.TWO)
106+
.withResult(Result.read_request_timeout)
107+
.build()
106108
);
107109

108110
scassandras.node(1).primingClient().prime(PrimingRequest.queryBuilder()
109-
.withQuery("mock query")
110-
.withConsistency(PrimingRequest.Consistency.ONE)
111-
.withRows(row("result", "result1"))
112-
.build()
111+
.withQuery("mock query")
112+
.withConsistency(Consistency.ONE)
113+
.withRows(row("result", "result1"))
114+
.build()
113115
);
114116

115117
long execStartCount = errors.getSpeculativeExecutions().getCount();
@@ -129,16 +131,16 @@ public void should_not_start_speculative_execution_if_first_execution_retries_bu
129131
@Test(groups = "short")
130132
public void should_start_speculative_execution_if_first_execution_takes_too_long() {
131133
scassandras.node(1).primingClient().prime(PrimingRequest.queryBuilder()
132-
.withQuery("mock query")
133-
.withFixedDelay(400)
134-
.withRows(row("result", "result1"))
135-
.build()
134+
.withQuery("mock query")
135+
.withFixedDelay(400)
136+
.withRows(row("result", "result1"))
137+
.build()
136138
);
137139

138140
scassandras.node(2).primingClient().prime(PrimingRequest.queryBuilder()
139-
.withQuery("mock query")
140-
.withRows(row("result", "result2"))
141-
.build()
141+
.withQuery("mock query")
142+
.withRows(row("result", "result2"))
143+
.build()
142144
);
143145
long execStartCount = errors.getSpeculativeExecutions().getCount();
144146

driver-core/src/test/java/com/datastax/driver/core/exceptions/ExceptionsScassandraTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.google.common.collect.ImmutableMap;
2222
import org.scassandra.Scassandra;
2323
import org.scassandra.http.client.PrimingRequest;
24+
import org.scassandra.http.client.Result;
2425
import org.testng.annotations.*;
2526

2627
import java.util.List;
@@ -29,7 +30,7 @@
2930
import static com.datastax.driver.core.ConsistencyLevel.ONE;
3031
import static org.assertj.core.api.Assertions.assertThat;
3132
import static org.assertj.core.api.Assertions.fail;
32-
import static org.scassandra.http.client.PrimingRequest.Result.*;
33+
import static org.scassandra.http.client.Result.*;
3334

3435
public class ExceptionsScassandraTest {
3536

@@ -111,7 +112,7 @@ public void should_throw_proper_write_timeout_exception() {
111112
}
112113
}
113114

114-
protected void simulateError(int hostNumber, PrimingRequest.Result result) {
115+
protected void simulateError(int hostNumber, Result result) {
115116
scassandras.node(hostNumber).primingClient().prime(PrimingRequest.queryBuilder()
116117
.withQuery("mock query")
117118
.withResult(result)

driver-core/src/test/java/com/datastax/driver/core/policies/AbstractRetryPolicyIntegrationTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.scassandra.http.client.Config;
2727
import org.scassandra.http.client.PrimingRequest;
2828
import org.scassandra.http.client.PrimingRequest.PrimingRequestBuilder;
29+
import org.scassandra.http.client.Result;
2930
import org.testng.annotations.AfterMethod;
3031
import org.testng.annotations.BeforeMethod;
3132
import org.testng.annotations.DataProvider;
@@ -37,8 +38,8 @@
3738
import static org.assertj.core.api.Assertions.assertThat;
3839
import static org.mockito.Matchers.*;
3940
import static org.mockito.Mockito.times;
40-
import static org.scassandra.http.client.PrimingRequest.Result.overloaded;
41-
import static org.scassandra.http.client.PrimingRequest.Result.server_error;
41+
import static org.scassandra.http.client.Result.overloaded;
42+
import static org.scassandra.http.client.Result.server_error;
4243

4344
/**
4445
* Base class for retry policy integration tests.
@@ -104,11 +105,11 @@ public void beforeMethod() {
104105
}
105106
}
106107

107-
protected void simulateError(int hostNumber, PrimingRequest.Result result) {
108+
protected void simulateError(int hostNumber, Result result) {
108109
simulateError(hostNumber, result, null);
109110
}
110111

111-
protected void simulateError(int hostNumber, PrimingRequest.Result result, Config config) {
112+
protected void simulateError(int hostNumber, Result result, Config config) {
112113
PrimingRequestBuilder builder = PrimingRequest.queryBuilder()
113114
.withQuery("mock query")
114115
.withResult(result);

driver-core/src/test/java/com/datastax/driver/core/policies/CASRetryPolicyIntegrationTest.java

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

driver-core/src/test/java/com/datastax/driver/core/policies/CustomRetryPolicyIntegrationTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
import org.scassandra.http.client.ClosedConnectionConfig;
2323
import org.scassandra.http.client.ClosedConnectionConfig.CloseType;
2424
import org.scassandra.http.client.PrimingRequest;
25+
import org.scassandra.http.client.Result;
2526
import org.testng.annotations.Test;
2627

2728
import static com.datastax.driver.core.Assertions.assertThat;
2829
import static org.assertj.core.api.Fail.fail;
29-
import static org.scassandra.http.client.PrimingRequest.Result.read_request_timeout;
30-
import static org.scassandra.http.client.PrimingRequest.Result.unavailable;
3130
import static org.scassandra.http.client.PrimingRequest.then;
31+
import static org.scassandra.http.client.Result.*;
3232

3333
/**
3434
* Integration test with a custom implementation, to test retry and ignore decisions.
@@ -104,7 +104,7 @@ public void should_rethrow_on_client_timeouts() {
104104

105105

106106
@Test(groups = "short", dataProvider = "serverSideErrors")
107-
public void should_rethrow_on_server_side_error(PrimingRequest.Result error, Class<? extends DriverException> exception) {
107+
public void should_rethrow_on_server_side_error(Result error, Class<? extends DriverException> exception) {
108108
simulateError(1, error);
109109
try {
110110
query();
@@ -124,7 +124,7 @@ public void should_rethrow_on_server_side_error(PrimingRequest.Result error, Cla
124124

125125
@Test(groups = "short", dataProvider = "connectionErrors")
126126
public void should_rethrow_on_connection_error(CloseType closeType) {
127-
simulateError(1, PrimingRequest.Result.closed_connection, new ClosedConnectionConfig(closeType));
127+
simulateError(1, closed_connection, new ClosedConnectionConfig(closeType));
128128
try {
129129
query();
130130
fail("expected an error");

driver-core/src/test/java/com/datastax/driver/core/policies/DefaultRetryPolicyIntegrationTest.java

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@
1515
*/
1616
package com.datastax.driver.core.policies;
1717

18-
import com.datastax.driver.core.Cluster;
19-
import com.datastax.driver.core.Metrics;
20-
import com.datastax.driver.core.Session;
21-
import com.datastax.driver.core.SocketOptions;
18+
import com.datastax.driver.core.*;
2219
import com.datastax.driver.core.exceptions.NoHostAvailableException;
2320
import com.datastax.driver.core.exceptions.ReadTimeoutException;
2421
import com.datastax.driver.core.exceptions.UnavailableException;
@@ -29,15 +26,19 @@
2926
import org.scassandra.Scassandra;
3027
import org.scassandra.http.client.ClosedConnectionConfig;
3128
import org.scassandra.http.client.PrimingRequest;
29+
import org.scassandra.http.client.Result;
30+
import org.scassandra.http.client.UnavailableConfig;
31+
import org.testng.Assert;
3232
import org.testng.annotations.Test;
3333

3434
import java.util.Collection;
3535
import java.util.Collections;
3636

3737
import static org.assertj.core.api.Assertions.assertThat;
3838
import static org.assertj.core.api.Assertions.fail;
39-
import static org.scassandra.http.client.PrimingRequest.Result.*;
39+
import static org.scassandra.http.client.Consistency.LOCAL_SERIAL;
4040
import static org.scassandra.http.client.PrimingRequest.then;
41+
import static org.scassandra.http.client.Result.*;
4142

4243
public class DefaultRetryPolicyIntegrationTest extends AbstractRetryPolicyIntegrationTest {
4344
public DefaultRetryPolicyIntegrationTest() {
@@ -212,7 +213,7 @@ public String apply(Throwable input) {
212213

213214

214215
@Test(groups = "short", dataProvider = "serverSideErrors")
215-
public void should_try_next_host_on_server_side_error(PrimingRequest.Result error, Class<?> exception) {
216+
public void should_try_next_host_on_server_side_error(Result error, Class<?> exception) {
216217
simulateError(1, error);
217218
simulateError(2, error);
218219
simulateError(3, error);
@@ -238,9 +239,9 @@ public void should_try_next_host_on_server_side_error(PrimingRequest.Result erro
238239

239240
@Test(groups = "short", dataProvider = "connectionErrors")
240241
public void should_try_next_host_on_connection_error(ClosedConnectionConfig.CloseType closeType) {
241-
simulateError(1, PrimingRequest.Result.closed_connection, new ClosedConnectionConfig(closeType));
242-
simulateError(2, PrimingRequest.Result.closed_connection, new ClosedConnectionConfig(closeType));
243-
simulateError(3, PrimingRequest.Result.closed_connection, new ClosedConnectionConfig(closeType));
242+
simulateError(1, closed_connection, new ClosedConnectionConfig(closeType));
243+
simulateError(2, closed_connection, new ClosedConnectionConfig(closeType));
244+
simulateError(3, closed_connection, new ClosedConnectionConfig(closeType));
244245
try {
245246
query();
246247
Fail.fail("expected a NoHostAvailableException");
@@ -259,4 +260,25 @@ public void should_try_next_host_on_connection_error(ClosedConnectionConfig.Clos
259260
assertQueried(2, 1);
260261
assertQueried(3, 1);
261262
}
263+
264+
@Test(groups = "short")
265+
public void should_rethrow_on_unavailable_if_CAS() {
266+
simulateError(1, unavailable, new UnavailableConfig(1, 0, LOCAL_SERIAL));
267+
simulateError(2, unavailable, new UnavailableConfig(1, 0, LOCAL_SERIAL));
268+
269+
try {
270+
query();
271+
Assert.fail("expected an UnavailableException");
272+
} catch (UnavailableException e) {
273+
assertThat(e.getConsistencyLevel()).isEqualTo(ConsistencyLevel.LOCAL_SERIAL);
274+
}
275+
276+
assertOnUnavailableWasCalled(2);
277+
assertThat(errors.getRetries().getCount()).isEqualTo(1);
278+
assertThat(errors.getUnavailables().getCount()).isEqualTo(2);
279+
assertThat(errors.getRetriesOnUnavailable().getCount()).isEqualTo(1);
280+
assertQueried(1, 1);
281+
assertQueried(2, 1);
282+
assertQueried(3, 0);
283+
}
262284
}

0 commit comments

Comments
 (0)