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   import static org.junit.jupiter.api.Assertions.assertEquals;
6   
7   import de.dlr.shepard.ErrorResponse;
8   import de.dlr.shepard.auth.users.io.UserGroupIO;
9   import de.dlr.shepard.common.util.Constants;
10  import io.quarkus.test.junit.QuarkusIntegrationTest;
11  import org.junit.jupiter.api.BeforeAll;
12  import org.junit.jupiter.api.MethodOrderer;
13  import org.junit.jupiter.api.Order;
14  import org.junit.jupiter.api.Test;
15  import org.junit.jupiter.api.TestMethodOrder;
16  
17  @QuarkusIntegrationTest
18  @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
19  public class UserGroupIT extends BaseTestCaseIT {
20  
21    private static String userGroupURL;
22    private static UserGroupIO userGroupCreated;
23    private static UserGroupIO userGroupChanged;
24  
25    @BeforeAll
26    public static void setUp() {
27      userGroupURL = "/" + Constants.USERGROUPS;
28    }
29  
30    @Test
31    @Order(1)
32    public void createUserGroup() {
33      UserGroupIO userGroup = new UserGroupIO();
34      userGroup.setName("userGroup");
35      userGroup.setUsernames(new String[] { otherUser.getUser().getUsername() });
36  
37      userGroupCreated = given()
38        .spec(requestSpecOfDefaultUser)
39        .body(userGroup)
40        .when()
41        .post(userGroupURL)
42        .then()
43        .statusCode(201)
44        .extract()
45        .as(UserGroupIO.class);
46      userGroup = userGroupCreated;
47  
48      assertThat(userGroupCreated.getId()).isNotNull();
49      assertThat(userGroupCreated.getCreatedAt()).isNotNull();
50      assertThat(userGroupCreated.getCreatedBy()).isEqualTo(nameOfDefaultUser);
51      assertThat(userGroupCreated.getName()).isEqualTo("userGroup");
52      assertThat(userGroupCreated.getUsernames()).containsExactly(otherUser.getUser().getUsername());
53      assertThat(userGroupCreated.getUpdatedAt()).isNull();
54      assertThat(userGroupCreated.getUpdatedBy()).isNull();
55    }
56  
57    @Test
58    @Order(2)
59    public void getUserGroup() {
60      UserGroupIO userGroup = given()
61        .spec(requestSpecOfDefaultUser)
62        .when()
63        .get(userGroupURL + "/" + userGroupCreated.getId())
64        .then()
65        .statusCode(200)
66        .extract()
67        .as(UserGroupIO.class);
68      assertEquals(userGroupCreated, userGroup);
69    }
70  
71    @Test
72    @Order(3)
73    public void getUserGroup_doesNotExist_notFound() {
74      ErrorResponse response = given()
75        .spec(requestSpecOfDefaultUser)
76        .when()
77        .get(userGroupURL + "/99999")
78        .then()
79        .statusCode(404)
80        .extract()
81        .as(ErrorResponse.class);
82  
83      assertThat(response.getMessage()).isEqualTo("ID ERROR - User Group with id 99999 is null or deleted");
84    }
85  
86    @Test
87    @Order(4)
88    public void getAllUserGroups() {
89      UserGroupIO[] allUserGroups = given()
90        .spec(requestSpecOfDefaultUser)
91        .when()
92        .get(userGroupURL)
93        .then()
94        .statusCode(200)
95        .extract()
96        .as(UserGroupIO[].class);
97      assertThat(allUserGroups).contains(userGroupCreated);
98    }
99  
100   @Test
101   @Order(5)
102   public void putUserGroup() {
103     UserGroupIO userGroup = new UserGroupIO();
104     userGroup.setName("changedUserGroup");
105     userGroup.setUsernames(new String[] { nameOfDefaultUser });
106     userGroup.setId(userGroupCreated.getId());
107     userGroupChanged = given()
108       .spec(requestSpecOfDefaultUser)
109       .body(userGroup)
110       .when()
111       .put(userGroupURL + "/" + userGroupCreated.getId())
112       .then()
113       .statusCode(200)
114       .extract()
115       .as(UserGroupIO.class);
116     assertThat(userGroupChanged.getName()).isEqualTo("changedUserGroup");
117     assertThat(userGroupChanged.getUsernames()).containsExactly(nameOfDefaultUser);
118     assertThat(userGroupChanged.getUpdatedAt()).isNotNull();
119     assertThat(userGroupChanged.getUpdatedBy()).isEqualTo(nameOfDefaultUser);
120   }
121 
122   @Test
123   @Order(6)
124   public void deleteUserGroup() {
125     given()
126       .spec(requestSpecOfDefaultUser)
127       .when()
128       .delete(userGroupURL + "/" + userGroupCreated.getId())
129       .then()
130       .statusCode(204);
131     given()
132       .spec(requestSpecOfDefaultUser)
133       .when()
134       .get(userGroupURL + "/" + userGroupCreated.getId())
135       .then()
136       .statusCode(404);
137   }
138 }