Skip to content

Commit 6ab536c

Browse files
committed
add cleanup, add tests to integration-tests
1 parent d8a7cef commit 6ab536c

2 files changed

Lines changed: 70 additions & 16 deletions

File tree

src/test/java/edu/harvard/iq/dataverse/api/LocallyFairIT.java

Lines changed: 69 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.junit.jupiter.api.BeforeAll;
1212
import org.junit.jupiter.api.Test;
1313

14+
import java.util.ArrayList;
1415
import java.util.Arrays;
1516
import java.util.List;
1617
import java.util.logging.Logger;
@@ -26,6 +27,11 @@ public class LocallyFairIT {
2627

2728
private static final Logger logger = Logger.getLogger(LocallyFairIT.class.getCanonicalName());
2829

30+
private List<String> dataverseAliases = new ArrayList<>();
31+
private List<String> datasetPids = new ArrayList<>();
32+
private List<String> usernames = new ArrayList<>();
33+
private String adminToken;
34+
2935
@BeforeAll
3036
public static void setUpClass() {
3137
RestAssured.baseURI = UtilIT.getRestAssuredBaseUri();
@@ -35,11 +41,33 @@ public static void setUpClass() {
3541
public static void tearDownClass() {
3642
}
3743

44+
@org.junit.jupiter.api.AfterEach
45+
public void tearDown() {
46+
if (adminToken == null) {
47+
adminToken = getSuperuserToken();
48+
}
49+
for (String datasetPid : datasetPids) {
50+
UtilIT.destroyDataset(datasetPid, adminToken);
51+
}
52+
for (String dataverseAlias : dataverseAliases) {
53+
UtilIT.deleteDataverse(dataverseAlias, adminToken);
54+
}
55+
for (String username : usernames) {
56+
UtilIT.deleteUser(username);
57+
}
58+
dataverseAliases.clear();
59+
datasetPids.clear();
60+
usernames.clear();
61+
adminToken = null;
62+
}
63+
3864
private String getSuperuserToken() {
3965
Response createResponse = UtilIT.createRandomUser();
4066
String adminApiToken = UtilIT.getApiTokenFromResponse(createResponse);
4167
String username = UtilIT.getUsernameFromResponse(createResponse);
68+
usernames.add(username);
4269
UtilIT.setSuperuserStatus(username, true).then().assertThat().statusCode(Status.OK.getStatusCode());
70+
this.adminToken = adminApiToken;
4371
return adminApiToken;
4472
}
4573

@@ -51,8 +79,10 @@ private String getSuperuserToken() {
5179
public void testLocallyFairAssigneesCRUD() {
5280
String superUserToken = getSuperuserToken();
5381
String dataverseAlias = UtilIT.createRandomCollectionGetAlias(superUserToken);
82+
dataverseAliases.add(dataverseAlias);
5483
Response userResponse = UtilIT.createRandomUser();
5584
String username = "@" + UtilIT.getUsernameFromResponse(userResponse);
85+
usernames.add(UtilIT.getUsernameFromResponse(userResponse));
5686
String userToken = UtilIT.getApiTokenFromResponse(userResponse);
5787

5888
// 1. Add locally fair assignee
@@ -66,8 +96,10 @@ public void testLocallyFairAssigneesCRUD() {
6696
.body("data", hasItem(username));
6797

6898
// 3. Set locally fair assignees (replaces)
69-
String userToken2 = UtilIT.createRandomUserGetToken();
70-
String username2 = "@" + UtilIT.getUsernameFromResponse(UtilIT.getAuthenticatedUserByToken(userToken2));
99+
Response userResponse2 = UtilIT.createRandomUser();
100+
String userToken2 = UtilIT.getApiTokenFromResponse(userResponse2);
101+
String username2 = "@" + UtilIT.getUsernameFromResponse(userResponse2);
102+
usernames.add(UtilIT.getUsernameFromResponse(userResponse2));
71103
setLocallyFairRoleAssignees(dataverseAlias, Arrays.asList(username2), superUserToken)
72104
.then().assertThat().statusCode(Status.OK.getStatusCode())
73105
.body("data.locallyFairRoleAssignees", hasItem(username2))
@@ -91,19 +123,26 @@ public void testLocallyFairAssigneesCRUD() {
91123
public void testLocallyFairAccessPermissions() {
92124
String superUserToken = getSuperuserToken();
93125
String dvAlias = UtilIT.createRandomCollectionGetAlias(superUserToken);
126+
dataverseAliases.add(dvAlias);
94127

95128
Response dvResponse = UtilIT.exportDataverse(dvAlias, superUserToken);
96129
Integer dataverseId =UtilIT.getDataverseIdFromResponse(dvResponse);
97130
//dvResponse.jsonPath().getInt("data.id");
98131

99132
// Create Users
100-
String directUserToken = UtilIT.createRandomUserGetToken();
101-
String directUsername = "@" + UtilIT.getUsernameFromResponse(UtilIT.getAuthenticatedUserByToken(directUserToken));
133+
Response directUserResponse = UtilIT.createRandomUser();
134+
String directUserToken = UtilIT.getApiTokenFromResponse(directUserResponse);
135+
String directUsername = "@" + UtilIT.getUsernameFromResponse(directUserResponse);
136+
usernames.add(UtilIT.getUsernameFromResponse(directUserResponse));
102137

103-
String groupUserToken = UtilIT.createRandomUserGetToken();
104-
String groupUsername = "@" + UtilIT.getUsernameFromResponse(UtilIT.getAuthenticatedUserByToken(groupUserToken));
138+
Response groupUserResponse = UtilIT.createRandomUser();
139+
String groupUserToken = UtilIT.getApiTokenFromResponse(groupUserResponse);
140+
String groupUsername = "@" + UtilIT.getUsernameFromResponse(groupUserResponse);
141+
usernames.add(UtilIT.getUsernameFromResponse(groupUserResponse));
105142

106-
String unauthorizedUserToken = UtilIT.createRandomUserGetToken();
143+
Response unauthorizedUserResponse = UtilIT.createRandomUser();
144+
String unauthorizedUserToken = UtilIT.getApiTokenFromResponse(unauthorizedUserResponse);
145+
usernames.add(UtilIT.getUsernameFromResponse(unauthorizedUserResponse));
107146

108147
// Create Group
109148
String groupAlias = "testGroup" + UtilIT.getRandomString(4);
@@ -137,10 +176,12 @@ public void testLocallyFairAccessPermissions() {
137176
public void testLocallyFairAcrossAllObjectTypes() {
138177
String superUserToken = getSuperuserToken();
139178
String dvAlias = UtilIT.createRandomCollectionGetAlias(superUserToken);
179+
dataverseAliases.add(dvAlias);
140180

141181
// Create Dataset
142182
Response createDatasetResponse = UtilIT.createRandomDatasetViaNativeApi(dvAlias, superUserToken);
143183
String datasetPid = UtilIT.getDatasetPersistentIdFromResponse(createDatasetResponse);
184+
datasetPids.add(datasetPid);
144185
Integer datasetId = UtilIT.getDatasetIdFromResponse(createDatasetResponse);
145186

146187
// Upload File
@@ -152,11 +193,15 @@ public void testLocallyFairAcrossAllObjectTypes() {
152193
UtilIT.publishDatasetViaNativeApi(datasetPid, "major", superUserToken).then().assertThat().statusCode(Status.OK.getStatusCode());
153194

154195
// Restrict Dataverse
155-
String authorizedUserToken = UtilIT.createRandomUserGetToken();
156-
String authorizedUsername = "@" + UtilIT.getUsernameFromResponse(UtilIT.getAuthenticatedUserByToken(authorizedUserToken));
196+
Response authorizedUserResponse = UtilIT.createRandomUser();
197+
String authorizedUserToken = UtilIT.getApiTokenFromResponse(authorizedUserResponse);
198+
String authorizedUsername = "@" + UtilIT.getUsernameFromResponse(authorizedUserResponse);
199+
usernames.add(UtilIT.getUsernameFromResponse(authorizedUserResponse));
157200
addLocallyFairRoleAssignee(dvAlias, authorizedUsername, superUserToken).then().assertThat().statusCode(Status.OK.getStatusCode());
158201

159-
String unauthorizedUserToken = UtilIT.createRandomUserGetToken();
202+
Response unauthorizedUserResponse = UtilIT.createRandomUser();
203+
String unauthorizedUserToken = UtilIT.getApiTokenFromResponse(unauthorizedUserResponse);
204+
usernames.add(UtilIT.getUsernameFromResponse(unauthorizedUserResponse));
160205

161206
// 1. Check Dataverse
162207
UtilIT.getDataverseWithOwners(dvAlias, authorizedUserToken, false).then().assertThat().statusCode(Status.OK.getStatusCode());
@@ -178,11 +223,14 @@ public void testLocallyFairAcrossAllObjectTypes() {
178223
public void testLocallyFairSearchVisibility() {
179224
String superUserToken = getSuperuserToken();
180225
String dvAlias = UtilIT.createRandomCollectionGetAlias(superUserToken);
226+
dataverseAliases.add(dvAlias);
181227
String dvName = JsonPath.from(UtilIT.getDataverseWithOwners(dvAlias, superUserToken, false).body().asString()).getString("data.name");
182228

183229
// Restrict Dataverse
184-
String authorizedUserToken = UtilIT.createRandomUserGetToken();
185-
String authorizedUsername = "@" + UtilIT.getUsernameFromResponse(UtilIT.getAuthenticatedUserByToken(authorizedUserToken));
230+
Response authorizedUserResponse = UtilIT.createRandomUser();
231+
String authorizedUserToken = UtilIT.getApiTokenFromResponse(authorizedUserResponse);
232+
String authorizedUsername = "@" + UtilIT.getUsernameFromResponse(authorizedUserResponse);
233+
usernames.add(UtilIT.getUsernameFromResponse(authorizedUserResponse));
186234
addLocallyFairRoleAssignee(dvAlias, authorizedUsername, superUserToken).then().assertThat().statusCode(Status.OK.getStatusCode());
187235

188236
// Publish
@@ -192,7 +240,9 @@ public void testLocallyFairSearchVisibility() {
192240
UtilIT.sleepForSearch(dvName, superUserToken, "", 1, 5);
193241

194242
// Unauthorized search
195-
String unauthorizedUserToken = UtilIT.createRandomUserGetToken();
243+
Response unauthorizedUserResponse = UtilIT.createRandomUser();
244+
String unauthorizedUserToken = UtilIT.getApiTokenFromResponse(unauthorizedUserResponse);
245+
usernames.add(UtilIT.getUsernameFromResponse(unauthorizedUserResponse));
196246
UtilIT.search("name:\"" + dvName + "\"", unauthorizedUserToken).then().assertThat().statusCode(Status.OK.getStatusCode())
197247
.body("data.total_count", equalTo(0));
198248

@@ -210,8 +260,10 @@ public void testLocallyFairSearchVisibility() {
210260
public void testReindexingMakesDatasetLocallyFair() {
211261
String superUserToken = getSuperuserToken();
212262
String parentDv = UtilIT.createRandomCollectionGetAlias(superUserToken);
263+
dataverseAliases.add(parentDv);
213264
Response createDatasetResponse = UtilIT.createRandomDatasetViaNativeApi(parentDv, superUserToken);
214265
String datasetPid = UtilIT.getDatasetPersistentIdFromResponse(createDatasetResponse);
266+
datasetPids.add(datasetPid);
215267

216268
// Publish normally
217269
UtilIT.publishDataverseViaNativeApi(parentDv, superUserToken).then().assertThat().statusCode(Status.OK.getStatusCode());
@@ -225,8 +277,10 @@ public void testReindexingMakesDatasetLocallyFair() {
225277
.body("data.total_count", equalTo(1));
226278

227279
// Restrict parent
228-
String authorizedUserToken = UtilIT.createRandomUserGetToken();
229-
String authorizedUsername = "@" + UtilIT.getUsernameFromResponse(UtilIT.getAuthenticatedUserByToken(authorizedUserToken));
280+
Response authorizedUserResponse = UtilIT.createRandomUser();
281+
String authorizedUserToken = UtilIT.getApiTokenFromResponse(authorizedUserResponse);
282+
String authorizedUsername = "@" + UtilIT.getUsernameFromResponse(authorizedUserResponse);
283+
usernames.add(UtilIT.getUsernameFromResponse(authorizedUserResponse));
230284
addLocallyFairRoleAssignee(parentDv, authorizedUsername, superUserToken).then().assertThat().statusCode(Status.OK.getStatusCode());
231285

232286
// Reindex dataset

tests/integration-tests.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
DataversesIT,DatasetsIT,SwordIT,AdminIT,BuiltinUsersIT,UsersIT,UtilIT,ConfirmEmailIT,FileMetadataIT,FilesIT,SearchIT,InReviewWorkflowIT,HarvestingServerIT,HarvestingClientsIT,MoveIT,MakeDataCountApiIT,FileTypeDetectionIT,EditDDIIT,ExternalToolsIT,AccessIT,DuplicateFilesIT,DownloadFilesIT,LinkIT,DeleteUsersIT,DeactivateUsersIT,AuxiliaryFilesIT,InvalidCharactersIT,LicensesIT,NotificationsIT,BagIT,MetadataBlocksIT,NetcdfIT,SignpostingIT,FitsIT,LogoutIT,DataRetrieverApiIT,ProvIT,S3AccessIT,OpenApiIT,InfoIT,DatasetFieldsIT,SavedSearchIT,DatasetTypesIT,DataverseFeaturedItemsIT,SendFeedbackApiIT,CustomizationIT,JsonLDExportIT,WorkflowsIT,LDNInboxIT,LocalContextsIT
1+
DataversesIT,DatasetsIT,SwordIT,AdminIT,BuiltinUsersIT,UsersIT,UtilIT,ConfirmEmailIT,FileMetadataIT,FilesIT,SearchIT,InReviewWorkflowIT,HarvestingServerIT,HarvestingClientsIT,MoveIT,MakeDataCountApiIT,FileTypeDetectionIT,EditDDIIT,ExternalToolsIT,AccessIT,DuplicateFilesIT,DownloadFilesIT,LinkIT,DeleteUsersIT,DeactivateUsersIT,AuxiliaryFilesIT,InvalidCharactersIT,LicensesIT,NotificationsIT,BagIT,MetadataBlocksIT,NetcdfIT,SignpostingIT,FitsIT,LogoutIT,DataRetrieverApiIT,ProvIT,S3AccessIT,OpenApiIT,InfoIT,DatasetFieldsIT,SavedSearchIT,DatasetTypesIT,DataverseFeaturedItemsIT,SendFeedbackApiIT,CustomizationIT,JsonLDExportIT,WorkflowsIT,LDNInboxIT,LocalContextsIT,LocallyFairIT

0 commit comments

Comments
 (0)