1111import org .junit .jupiter .api .BeforeAll ;
1212import org .junit .jupiter .api .Test ;
1313
14+ import java .util .ArrayList ;
1415import java .util .Arrays ;
1516import java .util .List ;
1617import 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
0 commit comments