1 package de.dlr.shepard.integrationtests;
2
3 import static io.restassured.RestAssured.given;
4 import static org.assertj.core.api.Assertions.assertThat;
5
6 import de.dlr.shepard.auth.users.io.UserGroupIO;
7 import de.dlr.shepard.common.search.io.UserGroupSearchBody;
8 import de.dlr.shepard.common.search.io.UserGroupSearchParams;
9 import de.dlr.shepard.common.search.io.UserGroupSearchResult;
10 import de.dlr.shepard.common.util.Constants;
11 import io.quarkus.test.junit.QuarkusIntegrationTest;
12 import org.junit.jupiter.api.BeforeAll;
13 import org.junit.jupiter.api.MethodOrderer;
14 import org.junit.jupiter.api.Order;
15 import org.junit.jupiter.api.Test;
16 import org.junit.jupiter.api.TestMethodOrder;
17
18 @QuarkusIntegrationTest
19 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
20 public class UserGroupSearcherIT extends BaseTestCaseIT {
21
22 private static String searchURL;
23 private static UserGroupIO userGroupIO1;
24 private static UserGroupIO userGroupIO2;
25
26 @BeforeAll
27 public static void setUp() {
28 searchURL = "/" + Constants.SEARCH + "/" + Constants.USERGROUPS;
29 userGroupIO1 = new UserGroupIO(getNewUserGroup("userGroup1" + System.currentTimeMillis()));
30 userGroupIO2 = new UserGroupIO(getNewUserGroup("userGroup2" + System.currentTimeMillis()));
31 }
32
33 @Test
34 @Order(1)
35 public void findOneUserGroupTest() {
36 String query = "{\"property\": \"name\", \"value\": \"userGroup1\", \"operator\": \"contains\"}";
37 var params = new UserGroupSearchParams(query);
38 var searchBody = new UserGroupSearchBody(params);
39 var result = given()
40 .spec(requestSpecOfDefaultUser)
41 .body(searchBody)
42 .when()
43 .post(searchURL)
44 .then()
45 .statusCode(200)
46 .extract()
47 .as(UserGroupSearchResult.class);
48 assertThat(result.getResults()).contains(userGroupIO1);
49 assertThat(result.getResults()).doesNotContain(userGroupIO2);
50 }
51
52 @Test
53 @Order(2)
54 public void findTwoUserGroupsTest() {
55 String query = "{\"property\": \"name\", \"value\": \"userGroup\", \"operator\": \"contains\"}";
56 var params = new UserGroupSearchParams(query);
57 var searchBody = new UserGroupSearchBody(params);
58 var result = given()
59 .spec(requestSpecOfDefaultUser)
60 .body(searchBody)
61 .when()
62 .post(searchURL)
63 .then()
64 .statusCode(200)
65 .extract()
66 .as(UserGroupSearchResult.class);
67 assertThat(result.getResults()).contains(userGroupIO1, userGroupIO2);
68 }
69 }