Skip to content

Commit ad7002c

Browse files
committed
test compression
1 parent 689b5cf commit ad7002c

File tree

4 files changed

+75
-0
lines changed

4 files changed

+75
-0
lines changed

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() {

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() {

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

0 commit comments

Comments
 (0)