8000 native compression tests · rashtao/arangodb-java-driver@e3dccb0 · GitHub
[go: up one dir, main page]

Skip to content

Commit e3dccb0

Browse files
committed
native compression tests
1 parent d67c050 commit e3dccb0

File tree

3 files changed

+69
-5
lines changed

3 files changed

+69
-5
lines changed

.github/workflows/native.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
docker-img:
17-
- docker.io/arangodb/enterprise:3.11.7
17+
- docker.io/arangodb/enterprise-preview:devel-nightly
1818
topology:
19-
- single
19+
- cluster
2020
module:
2121
- driver
2222
- integration-tests
23+
compression:
24+
- true
2325

2426
steps:
2527
- uses: actions/checkout@v2
@@ -36,6 +38,7 @@ jobs:
3638
ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }}
3739
STARTER_MODE: ${{matrix.topology}}
3840
DOCKER_IMAGE: ${{matrix.docker-img}}
41+
COMPRESSION: ${{matrix.compression}}
3942
- name: Info
4043
run: mvn -version
4144
- name: Install

.github/workflows/test.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,13 @@ jobs:
218218
fail-fast: false
219219
matrix:
220220
docker-img:
221-
- docker.io/arangodb/arangodb:3.11.7
221+
- docker.io/arangodb/arangodb-preview:devel-nightly
222222
topology:
223223
- single
224-
- cluster
225224
java-version:
226-
- 17
225+
- 21
226+
compression:
227+
- true
227228

228229
steps:
229230
- uses: actions/checkout@v2
@@ -238,6 +239,7 @@ jobs:
238239
env:
239240
STARTER_MODE: ${{matrix.topology}}
240241
DOCKER_IMAGE: ${{matrix.docker-img}}
242+
COMPRESSION: ${{matrix.compression}}
241243
- name: Info
242244
run: mvn -version
243245
- name: Install
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.arangodb;
2+
3+
import com.arangodb.config.ArangoConfigProperties;
4+
import com.fasterxml.jackson.databind.JsonNode;
5+
import org.junit.jupiter.params.ParameterizedTest;
6+
import org.junit.jupiter.params.provider.EnumSource;
7+
8+
import java.util.Locale;
9+
import java.util.UUID;
10+
11+
import static org.assertj.core.api.Assertions.assertThat;
12+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
13+
14+
/**
15+
* Non-exhaustive tests of content encoding, executed during integration and native tests.
16+
* A complete test is at resilience-tests/src/test/java/resilience/compression/CompressionTest.java
17+
*
18+
* @author Michele Rastelli
19+
*/
20+
class CompressionTest extends BaseJunit5 {
21+
22+
@ParameterizedTest
23+
@EnumSource(Protocol.class)
24+
void gzip(Protocol protocol) {
25+
doTest(protocol, Compression.GZIP);
26+
}
27+
28+
@ParameterizedTest
29+
@EnumSource(Protocol.class)
30+
void deflate(Protocol protocol) {
31+
doTest(protocol, Compression.DEFLATE);
32+
}
33+
34+
void doTest(Protocol protocol, Compression compression) {
35+
assumeTrue(isAtLeastVersion(3, 12));
36+
assumeTrue(protocol != Protocol.VST);
37+
38+
ArangoDB adb = new ArangoDB.Builder()
39+
.loadProperties(ArangoConfigProperties.fromFile())
40+
.protocol(protocol)
41+
.compression(compression)
42+
.compressionThreshold(0)
43+
.compressionLevel(3)
44+
.build();
45+
46+
Response<JsonNode> resp = adb.execute(Request.builder()
47+
.method(Request.Method.POST)
48+
.path("/_admin/echo")
49+
.body(UUID.randomUUID().toString())
50+
.build(), JsonNode.class);
51+
52+
String encoding = compression.toString().toLowerCase(Locale.ROOT);
53+
String reqAcceptEncoding = resp.getBody().get("headers").get("accept-encoding").textValue();
54+
assertThat(reqAcceptEncoding).contains(encoding);
55+
56+
adb.shutdown();
57+
}
58+
59+
}

0 commit comments

Comments
 (0)
0