Skip to content

Commit 8994c00

Browse files
authored
[DE-1047] QA: functional tests with configurable target (#610)
* commented tests with hard-coded hostname * commented classification analyzer models tests * moved configuration tests to test-non-functional module * added skipStatefulTests system property * remove users created in tests * fix async test * fix async test * fix jwt tests
1 parent 0da6fce commit 8994c00

File tree

11 files changed

+286
-171
lines changed

11 files changed

+286
-171
lines changed

test-functional/src/test/java/com/arangodb/ArangoDBAsyncTest.java

Lines changed: 77 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
package com.arangodb;
2222

23-
import com.arangodb.config.ConfigUtils;
2423
import com.arangodb.entity.*;
2524
import com.arangodb.internal.ArangoRequestParam;
2625
import com.arangodb.internal.serde.SerdeUtils;
@@ -237,15 +236,19 @@ void createUser(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedEx
237236
assumeTrue(isSingleServer());
238237
String username = "user-" + UUID.randomUUID();
239238
final UserEntity result = arangoDB.createUser(username, PW, null).get();
240-
assertThat(result.getUser()).isEqualTo(username);
239+
try {
240+
assertThat(result.getUser()).isEqualTo(username);
241+
} finally {
242+
arangoDB.deleteUser(username).get();
243+
}
241244
}
242245

243246
@ParameterizedTest
244247
@MethodSource("asyncArangos")
245-
void deleteUser(ArangoDBAsync arangoDB) {
248+
void deleteUser(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedException {
246249
String username = "user-" + UUID.randomUUID();
247-
arangoDB.createUser(username, PW, null);
248-
arangoDB.deleteUser(username);
250+
arangoDB.createUser(username, PW, null).get();
251+
arangoDB.deleteUser(username).get();
249252
}
250253

251254
@ParameterizedTest
@@ -261,7 +264,11 @@ void getUser(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedExcep
261264
String username = "user-" + UUID.randomUUID();
262265
arangoDB.createUser(username, PW, null).get();
263266
final UserEntity user = arangoDB.getUser(username).get();
264-
assertThat(user.getUser()).isEqualTo(username);
267+
try {
268+
assertThat(user.getUser()).isEqualTo(username);
269+
} finally {
270+
arangoDB.deleteUser(username).get();
271+
}
265272
}
266273

267274
@ParameterizedTest
@@ -279,28 +286,36 @@ void getUsers(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedExce
279286
final Collection<UserEntity> initialUsers = arangoDB.getUsers().get();
280287

281288
arangoDB.createUser(username, PW, null).get();
282-
final Collection<UserEntity> users = arangoDB.getUsers().get();
283-
assertThat(users).hasSize(initialUsers.size() + 1);
289+
try {
290+
final Collection<UserEntity> users = arangoDB.getUsers().get();
291+
assertThat(users).hasSize(initialUsers.size() + 1);
284292

285-
final List<String> expected = new ArrayList<>(users.size());
286-
// Add initial users, including root:
287-
for (final UserEntity userEntity : initialUsers) {
288-
expected.add(userEntity.getUser());
289-
}
290-
// Add username:
291-
expected.add(username);
293+
final List<String> expected = new ArrayList<>(users.size());
294+
// Add initial users, including root:
295+
for (final UserEntity userEntity : initialUsers) {
296+
expected.add(userEntity.getUser());
297+
}
298+
// Add username:
299+
expected.add(username);
292300

293-
for (final UserEntity user : users) {
294-
assertThat(user.getUser()).isIn(expected);
301+
for (final UserEntity user : users) {
302+
assertThat(user.getUser()).isIn(expected);
303+
}
304+
} finally {
305+
arangoDB.deleteUser(username).get();
295306
}
296307
}
297308

298309
@ParameterizedTest
299310
@MethodSource("asyncArangos")
300-
void updateUserNoOptions(ArangoDBAsync arangoDB) {
311+
void updateUserNoOptions(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedException {
301312
String username = "user-" + UUID.randomUUID();
302-
arangoDB.createUser(username, PW, null);
303-
arangoDB.updateUser(username, null);
313+
arangoDB.createUser(username, PW, null).get();
314+
try {
315+
arangoDB.updateUser(username, null).get();
316+
} finally {
317+
arangoDB.deleteUser(username).get();
318+
}
304319
}
305320

306321
@ParameterizedTest
@@ -310,16 +325,20 @@ void updateUser(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedEx
310325
final Map<String, Object> extra = new HashMap<>();
311326
extra.put("hund", false);
312327
arangoDB.createUser(username, PW, new UserCreateOptions().extra(extra)).get();
313-
extra.put("hund", true);
314-
extra.put("mund", true);
315-
final UserEntity user = arangoDB.updateUser(username, new UserUpdateOptions().extra(extra)).get();
316-
assertThat(user.getExtra()).hasSize(2);
317-
assertThat(user.getExtra()).containsKey("hund");
318-
assertThat(Boolean.valueOf(String.valueOf(user.getExtra().get("hund")))).isTrue();
319-
final UserEntity user2 = arangoDB.getUser(username).get();
320-
assertThat(user2.getExtra()).hasSize(2);
321-
assertThat(user2.getExtra()).containsKey("hund");
322-
assertThat(Boolean.valueOf(String.valueOf(user2.getExtra().get("hund")))).isTrue();
328+
try {
329+
extra.put("hund", true);
330+
extra.put("mund", true);
331+
final UserEntity user = arangoDB.updateUser(username, new UserUpdateOptions().extra(extra)).get();
332+
assertThat(user.getExtra()).hasSize(2);
333+
assertThat(user.getExtra()).containsKey("hund");
334+
assertThat(Boolean.valueOf(String.valueOf(user.getExtra().get("hund")))).isTrue();
335+
final UserEntity user2 = arangoDB.getUser(username).get();
336+
assertThat(user2.getExtra()).hasSize(2);
337+
assertThat(user2.getExtra()).containsKey("hund");
338+
assertThat(Boolean.valueOf(String.valueOf(user2.getExtra().get("hund")))).isTrue();
339+
} finally {
340+
arangoDB.deleteUser(username).get();
341+
}
323342
}
324343

325344
@ParameterizedTest
@@ -329,32 +348,44 @@ void replaceUser(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedE
329348
final Map<String, Object> extra = new HashMap<>();
330349
extra.put("hund", false);
331350
arangoDB.createUser(username, PW, new UserCreateOptions().extra(extra)).get();
332-
extra.remove("hund");
333-
extra.put("mund", true);
334-
final UserEntity user = arangoDB.replaceUser(username, new UserUpdateOptions().extra(extra)).get();
335-
assertThat(user.getExtra()).hasSize(1);
336-
assertThat(user.getExtra()).containsKey("mund");
337-
assertThat(Boolean.valueOf(String.valueOf(user.getExtra().get("mund")))).isTrue();
338-
final UserEntity user2 = arangoDB.getUser(username).get();
339-
assertThat(user2.getExtra()).hasSize(1);
340-
assertThat(user2.getExtra()).containsKey("mund");
341-
assertThat(Boolean.valueOf(String.valueOf(user2.getExtra().get("mund")))).isTrue();
351+
try {
352+
extra.remove("hund");
353+
extra.put("mund", true);
354+
final UserEntity user = arangoDB.replaceUser(username, new UserUpdateOptions().extra(extra)).get();
355+
assertThat(user.getExtra()).hasSize(1);
356+
assertThat(user.getExtra()).containsKey("mund");
357+
assertThat(Boolean.valueOf(String.valueOf(user.getExtra().get("mund")))).isTrue();
358+
final UserEntity user2 = arangoDB.getUser(username).get();
359+
assertThat(user2.getExtra()).hasSize(1);
360+
assertThat(user2.getExtra()).containsKey("mund");
361+
assertThat(Boolean.valueOf(String.valueOf(user2.getExtra().get("mund")))).isTrue();
362+
} finally {
363+
arangoDB.deleteUser(username).get();
364+
}
342365
}
343366

344367
@ParameterizedTest
345368
@MethodSource("asyncArangos")
346-
void updateUserDefaultDatabaseAccess(ArangoDBAsync arangoDB) {
369+
void updateUserDefaultDatabaseAccess(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedException {
347370
String username = "user-" + UUID.randomUUID();
348-
arangoDB.createUser(username, PW);
349-
arangoDB.grantDefaultDatabaseAccess(username, Permissions.RW);
371+
arangoDB.createUser(username, PW).get();
372+
try {
373+
arangoDB.grantDefaultDatabaseAccess(username, Permissions.RW).get();
374+
} finally {
375+
arangoDB.deleteUser(username).get();
376+
}
350377
}
351378

352379
@ParameterizedTest
353380
@MethodSource("asyncArangos")
354-
void updateUserDefaultCollectionAccess(ArangoDBAsync arangoDB) {
381+
void updateUserDefaultCollectionAccess(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedException {
355382
String username = "user-" + UUID.randomUUID();
356-
arangoDB.createUser(username, PW);
357-
arangoDB.grantDefaultCollectionAccess(username, Permissions.RW);
383+
arangoDB.createUser(username, PW).get();
384+
try {
385+
arangoDB.grantDefaultCollectionAccess(username, Permissions.RW).get();
386+
} finally {
387+
arangoDB.deleteUser(username).get();
388+
}
358389
}
359390

360391
@ParameterizedTest
@@ -637,29 +668,6 @@ void arangoDBException(ArangoDBAsync arangoDB) {
637668
assertThat(e.getErrorNum()).isEqualTo(1228);
638669
}
639670

640-
@ParameterizedTest
641-
@MethodSource("asyncArangos")
642-
void fallbackHost() throws ExecutionException, InterruptedException {
643-
final ArangoDBAsync arangoDB = new ArangoDB.Builder()
644-
.loadProperties(config)
645-
.host("not-accessible", 8529).host("172.28.0.1", 8529)
646-
.build()
647-
.async();
648-
final ArangoDBVersion version = arangoDB.getVersion().get();
649-
assertThat(version).isNotNull();
650-
}
651-
652-
@ParameterizedTest
653-
@MethodSource("asyncArangos")
654-
void loadpropertiesWithPrefix() throws ExecutionException, InterruptedException {
655-
ArangoDBAsync adb = new ArangoDB.Builder()
656-
.loadProperties(ConfigUtils.loadConfig("arangodb-with-prefix.properties", "adb"))
657-
.build()
658-
.async();
659-
adb.getVersion().get();
660-
adb.shutdown();
661-
}
662-
663671
@ParameterizedTest
664672
@MethodSource("asyncArangos")
665673
void accessMultipleDatabases(ArangoDBAsync arangoDB) throws ExecutionException, InterruptedException {

0 commit comments

Comments
 (0)