View Javadoc
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  }