|
22 | 22 | import java.text.MessageFormat; |
23 | 23 | import java.util.Arrays; |
24 | 24 | import java.util.List; |
| 25 | +import java.util.Map; |
25 | 26 | import java.util.logging.Logger; |
26 | 27 |
|
27 | 28 | import jakarta.json.Json; |
|
30 | 31 | import jakarta.ws.rs.core.Response.Status; |
31 | 32 |
|
32 | 33 | import org.junit.jupiter.api.AfterAll; |
| 34 | +import org.junit.jupiter.api.AfterEach; |
33 | 35 | import org.junit.jupiter.api.BeforeAll; |
34 | 36 | import org.junit.jupiter.api.Test; |
| 37 | +import org.junit.jupiter.api.parallel.Isolated; |
| 38 | +import org.junit.jupiter.api.parallel.ResourceAccessMode; |
| 39 | +import org.junit.jupiter.api.parallel.ResourceLock; |
35 | 40 |
|
36 | 41 | import static jakarta.ws.rs.core.Response.Status.*; |
37 | 42 | import static org.hamcrest.CoreMatchers.*; |
|
49 | 54 | import org.hamcrest.Matchers; |
50 | 55 | import static org.hamcrest.Matchers.greaterThan; |
51 | 56 |
|
| 57 | +@ResourceLock(value = "MetadataLanguages", mode = ResourceAccessMode.READ_WRITE) |
| 58 | +@Isolated |
52 | 59 | public class DataversesIT { |
53 | 60 |
|
54 | 61 | private static final Logger logger = Logger.getLogger(DataversesIT.class.getCanonicalName()); |
55 | 62 |
|
56 | 63 | @BeforeAll |
57 | 64 | public static void setUpClass() { |
58 | 65 | RestAssured.baseURI = UtilIT.getRestAssuredBaseUri(); |
| 66 | + UtilIT.deleteSetting(SettingsServiceBean.Key.MetadataLanguages); |
59 | 67 | } |
60 | 68 |
|
61 | 69 | @AfterAll |
62 | 70 | public static void afterClass() { |
63 | 71 | Response removeExcludeEmail = UtilIT.deleteSetting(SettingsServiceBean.Key.ExcludeEmailFromExport); |
| 72 | + UtilIT.deleteSetting(SettingsServiceBean.Key.MetadataLanguages); |
| 73 | + } |
| 74 | + |
| 75 | + @AfterEach |
| 76 | + public void afterEach() { |
| 77 | + UtilIT.deleteSetting(SettingsServiceBean.Key.MetadataLanguages); |
64 | 78 | } |
65 | 79 |
|
66 | 80 | @Test |
@@ -2745,4 +2759,37 @@ private String getSuperuserToken() { |
2745 | 2759 | UtilIT.makeSuperUser(username); |
2746 | 2760 | return adminApiToken; |
2747 | 2761 | } |
| 2762 | + |
| 2763 | + @Test |
| 2764 | + public void testDataverseMetadataLanguage() { |
| 2765 | + Response createUser = UtilIT.createRandomUser(); |
| 2766 | + createUser.prettyPrint(); |
| 2767 | + String apiToken = UtilIT.getApiTokenFromResponse(createUser); |
| 2768 | + Response createDataverse1Response = UtilIT.createRandomDataverse(apiToken); |
| 2769 | + |
| 2770 | + createDataverse1Response.prettyPrint(); |
| 2771 | + createDataverse1Response.then().assertThat().statusCode(CREATED.getStatusCode()); |
| 2772 | + |
| 2773 | + String alias = UtilIT.getAliasFromResponse(createDataverse1Response); |
| 2774 | + |
| 2775 | + Response noLang = UtilIT.getDataverseMetadataLanguage(alias, apiToken); |
| 2776 | + noLang.prettyPrint(); |
| 2777 | + |
| 2778 | + noLang.then().assertThat().body("data", equalTo(List.of())); |
| 2779 | + |
| 2780 | + UtilIT.setSetting(SettingsServiceBean.Key.MetadataLanguages, |
| 2781 | + "[{\"locale\":\"en\",\"title\":\"English\"},{\"locale\":\"hu\",\"title\":\"magyar\"}]"); |
| 2782 | + Response allLangs = UtilIT.getDataverseMetadataLanguage(alias, apiToken); |
| 2783 | + allLangs.prettyPrint(); |
| 2784 | + allLangs.then().assertThat() |
| 2785 | + .body("data.size()", equalTo(2)) |
| 2786 | + .and().body("data[0].locale", equalTo("en")) |
| 2787 | + .and().body("data[1].locale", equalTo("hu")); |
| 2788 | + |
| 2789 | + Response english = UtilIT.setDataverseMetadataLanguage(alias, apiToken, "en"); |
| 2790 | + english.then().assertThat().body("data", equalTo(List.of(Map.of("locale", "en", "title", "English")))); |
| 2791 | + Response singleLang = UtilIT.getDataverseMetadataLanguage(alias, apiToken); |
| 2792 | + singleLang.then().assertThat().body("data", equalTo(List.of(Map.of("locale", "en", "title", "English")))); |
| 2793 | + } |
| 2794 | + |
2748 | 2795 | } |
0 commit comments