Skip to content

Commit 124b3d7

Browse files
committed
test compression
1 parent 689b5cf commit 124b3d7

File tree

4 files changed

+74
-0
lines changed

4 files changed

+74
-0
lines changed

Diff for: resilience-tests/src/test/java/resilience/ActiveFailoverTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ void beforeEach() throws IOException {
4949
for (Endpoint ph : endpoints) {
5050
ph.getProxy().enable();
5151
}
52+
logs.reset();
5253
}
5354

5455
protected static List<Endpoint> getEndpoints() {

Diff for: resilience-tests/src/test/java/resilience/ClusterTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ void beforeEach() throws IOException {
5454
for (Endpoint endpoint : endpoints) {
5555
endpoint.getProxy().enable();
5656
}
57+
logs.reset();
5758
}
5859

5960
protected static List<Endpoint> getEndpoints() {

Diff for: resilience-tests/src/test/java/resilience/SingleServerTest.java

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ static void afterAll() throws IOException {
3737
@BeforeEach
3838
void beforeEach() {
3939
getEndpoint().enable();
40+
logs.reset();
4041
}
4142

4243
protected static Endpoint getEndpoint() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package resilience.compression;
2+
3+
import ch.qos.logback.classic.spi.ILoggingEvent;
4+
import com.arangodb.ArangoDB;
5+
import com.arangodb.Compression;
6+
import com.arangodb.Protocol;
7+
import org.junit.jupiter.params.ParameterizedTest;
8+
import org.junit.jupiter.params.provider.EnumSource;
9+
import resilience.ClusterTest;
10+
11+
import java.util.Collections;
12+
import java.util.List;
13+
import java.util.Locale;
14+
import java.util.UUID;
15+
import java.util.stream.Collectors;
16+
import java.util.stream.IntStream;
17+
18+
import static org.assertj.core.api.Assertions.assertThat;
19+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
20+
21+
/**
22+
* @author Michele Rastelli
23+
*/
24+
class CompressionTest extends ClusterTest {
25+
26+
@ParameterizedTest
27+
@EnumSource(Protocol.class)
28+
void gzip(Protocol protocol) {
29+
doTest(protocol, Compression.GZIP);
30+
}
31+
32+
@ParameterizedTest
33+
@EnumSource(Protocol.class)
34+
void deflate(Protocol protocol) {
35+
doTest(protocol, Compression.DEFLATE);
36+
}
37+
38+
void doTest(Protocol protocol, Compression compression) {
39+
assumeTrue(protocol != Protocol.VST);
40+
assumeTrue(protocol != Protocol.HTTP_VPACK);
41+
assumeTrue(protocol != Protocol.HTTP_JSON);
42+
43+
ArangoDB adb = dbBuilder()
44+
.protocol(protocol)
45+
.compression(compression)
46+
.compressionThreshold(0)
47+
.build();
48+
49+
List<String> data = IntStream.range(0, 500)
50+
.mapToObj(i -> UUID.randomUUID().toString())
51+
.collect(Collectors.toList());
52+
53+
adb.db().query("FOR i IN @data RETURN i", String.class,
54+
Collections.singletonMap("data", data)).asListRemaining();
55+
56+
adb.shutdown();
57+
58+
String compressionLC = compression.toString().toLowerCase(Locale.ROOT);
59+
60+
// request
61+
assertThat(logs.getLogs())
62+
.map(ILoggingEvent::getFormattedMessage)
63+
.anyMatch(l -> l.contains("content-encoding: " + compressionLC) && l.contains("accept-encoding: " + compressionLC));
64+
65+
// response
66+
assertThat(logs.getLogs())
67+
.map(ILoggingEvent::getFormattedMessage)
68+
.anyMatch(l -> l.contains("content-encoding: " + compressionLC) && l.contains("server: ArangoDB"));
69+
}
70+
71+
}

0 commit comments

Comments
 (0)