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.ErrorResponse;
7 import de.dlr.shepard.auth.users.io.UserIO;
8 import de.dlr.shepard.common.util.Constants;
9 import io.quarkus.test.junit.QuarkusIntegrationTest;
10 import org.junit.jupiter.api.BeforeAll;
11 import org.junit.jupiter.api.MethodOrderer;
12 import org.junit.jupiter.api.Order;
13 import org.junit.jupiter.api.Test;
14 import org.junit.jupiter.api.TestMethodOrder;
15
16 @QuarkusIntegrationTest
17 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
18 public class UserIT extends BaseTestCaseIT {
19
20 private static UserIO user;
21
22 private static String usersURL;
23
24 @BeforeAll
25 public static void setUp() {
26 usersURL = "/" + Constants.USERS;
27 }
28
29 @Test
30 @Order(1)
31 public void getCurrentUserTest() {
32 var actual = given()
33 .spec(requestSpecOfDefaultUser)
34 .when()
35 .get(usersURL)
36 .then()
37 .statusCode(200)
38 .extract()
39 .as(UserIO.class);
40 user = actual;
41
42 assertThat(actual.getUsername()).isEqualTo("test_it");
43 assertThat(actual.getEmail()).isEqualTo("integration@test.org");
44 assertThat(actual.getFirstName()).isEqualTo("Integration");
45 assertThat(actual.getLastName()).isEqualTo("Test");
46 assertThat(actual.getApiKeyIds()).contains(defaultUser.getApiKey().getUid());
47 assertThat(actual.getSubscriptionIds()).isNotNull();
48 }
49
50 @Test
51 @Order(2)
52 public void getUserTest() {
53 var actual = given()
54 .spec(requestSpecOfDefaultUser)
55 .when()
56 .get(usersURL + "/" + nameOfDefaultUser)
57 .then()
58 .statusCode(200)
59 .extract()
60 .as(UserIO.class);
61 assertThat(actual).isEqualTo(user);
62 }
63
64 @Test
65 public void getUser_userDoesNotExist_notFound() {
66 var actual = given()
67 .spec(requestSpecOfDefaultUser)
68 .when()
69 .get(usersURL + "/fake-user-id")
70 .then()
71 .statusCode(404)
72 .extract()
73 .as(ErrorResponse.class);
74 assertThat(actual.getMessage()).isEqualTo(String.format("User with name %s not found", "fake-user-id"));
75 }
76 }