1212import edu .harvard .iq .dataverse .settings .SettingsServiceBean ;
1313import edu .harvard .iq .dataverse .util .BundleUtil ;
1414import edu .harvard .iq .dataverse .util .SystemConfig ;
15- import edu .harvard .iq .dataverse .util .json .JSONLDUtil ;
16- import edu .harvard .iq .dataverse .util .json .JsonParseException ;
17- import edu .harvard .iq .dataverse .util .json .JsonParser ;
18- import edu .harvard .iq .dataverse .util .json .JsonUtil ;
15+ import edu .harvard .iq .dataverse .util .json .*;
1916import io .restassured .RestAssured ;
2017import io .restassured .http .ContentType ;
2118import io .restassured .parsing .Parser ;
@@ -370,12 +367,16 @@ public void testCreateDataset() {
370367 public void testCreateUpdateDatasetFileCountLimit () throws JsonParseException {
371368 Response createUser = UtilIT .createRandomUser ();
372369 String apiToken = UtilIT .getApiTokenFromResponse (createUser );
373- Response createDataverseResponse = createFileLimitedDataverse (500 , apiToken );
370+ String adminApiToken = getSuperuserToken ();
371+ Response createDataverseResponse = UtilIT .createRandomDataverse (apiToken );
374372 createDataverseResponse .prettyPrint ();
375373 String dataverseAlias = UtilIT .getAliasFromResponse (createDataverseResponse );
376374 JsonObject data = JsonUtil .getJsonObject (createDataverseResponse .getBody ().asString ());
377375 JsonParser parser = new JsonParser ();
378376 Dataverse dv = parser .parseDataverse (data .getJsonObject ("data" ));
377+ dv .setDatasetFileCountLimit (500 );
378+ Response updateDataverseResponse = UtilIT .updateDataverse (dataverseAlias , dv , adminApiToken );
379+ updateDataverseResponse .prettyPrint ();
379380
380381 JsonArrayBuilder metadataBlocks = Json .createArrayBuilder ();
381382 metadataBlocks .add ("citation" );
@@ -411,7 +412,7 @@ public void testCreateUpdateDatasetFileCountLimit() throws JsonParseException {
411412 String persistentId = JsonPath .from (datasetAsJson .getBody ().asString ()).getString ("data.latestVersion.datasetPersistentId" );
412413
413414 // Update dataset with datasetFileCountLimit = 1
414- Response updateDatasetResponse = UtilIT .updateDatasetFilesLimits (persistentId , 1 , apiToken );
415+ Response updateDatasetResponse = UtilIT .updateDatasetFilesLimits (persistentId , 1 , adminApiToken );
415416 updateDatasetResponse .prettyPrint ();
416417 updateDatasetResponse .then ().assertThat ()
417418 .statusCode (OK .getStatusCode ());
@@ -424,7 +425,7 @@ public void testCreateUpdateDatasetFileCountLimit() throws JsonParseException {
424425 .body ("data.datasetFileCountLimit" , equalTo (1 ));
425426
426427 // Update/reset dataset with datasetFileCountLimit = -1 and expect the value from the owner dataverse
427- updateDatasetResponse = UtilIT .deleteDatasetFilesLimits (persistentId , apiToken );
428+ updateDatasetResponse = UtilIT .deleteDatasetFilesLimits (persistentId , adminApiToken );
428429 updateDatasetResponse .prettyPrint ();
429430 updateDatasetResponse .then ().assertThat ()
430431 .statusCode (OK .getStatusCode ());
@@ -438,7 +439,7 @@ public void testCreateUpdateDatasetFileCountLimit() throws JsonParseException {
438439
439440 // test clear limits and test that datasetFileCountLimit is not returned in json
440441 dv .setDatasetFileCountLimit (null );
441- Response updateDataverseResponse = UtilIT .updateDataverse (dataverseAlias , dv , apiToken );
442+ updateDataverseResponse = UtilIT .updateDataverse (dataverseAlias , dv , adminApiToken );
442443 updateDataverseResponse .then ().assertThat ()
443444 .statusCode (OK .getStatusCode ());
444445
@@ -451,12 +452,20 @@ public void testCreateUpdateDatasetFileCountLimit() throws JsonParseException {
451452 }
452453
453454 @ Test
454- public void testMultipleFileUploadOverCountLimit () {
455+ public void testMultipleFileUploadOverCountLimit () throws JsonParseException {
455456 Response createUser = UtilIT .createRandomUser ();
456457 String apiToken = UtilIT .getApiTokenFromResponse (createUser );
457- Response createDataverseResponse = createFileLimitedDataverse (1 , apiToken );
458+ String adminApiToken = getSuperuserToken ();
459+ Response createDataverseResponse = UtilIT .createRandomDataverse (apiToken );
458460 createDataverseResponse .prettyPrint ();
459461 String dataverseAlias = UtilIT .getAliasFromResponse (createDataverseResponse );
462+ JsonObject data = JsonUtil .getJsonObject (createDataverseResponse .getBody ().asString ());
463+ JsonParser parser = new JsonParser ();
464+ Dataverse dv = parser .parseDataverse (data .getJsonObject ("data" ));
465+ dv .setDatasetFileCountLimit (1 );
466+ Response updateDataverseResponse = UtilIT .updateDataverse (dataverseAlias , dv , adminApiToken );
467+ updateDataverseResponse .prettyPrint ();
468+
460469 Response createDatasetResponse = UtilIT .createRandomDatasetViaNativeApi (dataverseAlias , apiToken );
461470 createDatasetResponse .prettyPrint ();
462471 Integer datasetId = UtilIT .getDatasetIdFromResponse (createDatasetResponse );
@@ -6769,19 +6778,11 @@ public void testUpdateMultipleFileMetadata() {
67696778 .statusCode (OK .getStatusCode ());
67706779 }
67716780
6772- private Response createFileLimitedDataverse (int datasetFileCountLimit , String apiToken ) {
6773- String dataverseAlias = UtilIT .getRandomDvAlias ();
6774- String emailAddressOfFirstDataverseContact = dataverseAlias + "@mailinator.com" ;
6775- JsonObjectBuilder jsonToCreateDataverse = Json .createObjectBuilder ()
6776- .add ("name" , dataverseAlias )
6777- .add ("alias" , dataverseAlias )
6778- .add ("datasetFileCountLimit" , datasetFileCountLimit )
6779- .add ("dataverseContacts" , Json .createArrayBuilder ()
6780- .add (Json .createObjectBuilder ()
6781- .add ("contactEmail" , emailAddressOfFirstDataverseContact )
6782- )
6783- );
6784- ;
6785- return UtilIT .createDataverse (jsonToCreateDataverse .build (), apiToken );
6781+ private String getSuperuserToken () {
6782+ Response createResponse = UtilIT .createRandomUser ();
6783+ String adminApiToken = UtilIT .getApiTokenFromResponse (createResponse );
6784+ String username = UtilIT .getUsernameFromResponse (createResponse );
6785+ UtilIT .makeSuperUser (username );
6786+ return adminApiToken ;
67866787 }
67876788}
0 commit comments