Skip to content

Commit 0d01bbf

Browse files
committed
add test of publish and update-current behavior
1 parent 56dc0a9 commit 0d01bbf

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

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

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3944,6 +3944,57 @@ public void testCurationStatusAPIs() {
39443944
Response setInvalidStatus = UtilIT.setDatasetCurationLabel(datasetId, apiToken, "Invalid Status");
39453945
setInvalidStatus.then().assertThat().statusCode(BAD_REQUEST.getStatusCode());
39463946

3947+
// Publish the dataset
3948+
UtilIT.publishDatasetViaNativeApi(datasetId, "major", apiToken).then().assertThat()
3949+
.statusCode(OK.getStatusCode());
3950+
3951+
// Verify that the current curation label is now empty after publishing
3952+
Response getStatusAfterPublish = UtilIT.getDatasetCurationStatus(datasetId, apiToken, false);
3953+
getStatusAfterPublish.then().assertThat().statusCode(OK.getStatusCode());
3954+
JsonObject statusAfterPublish = Json.createReader(new StringReader(getStatusAfterPublish.body().asString())).readObject();
3955+
JsonObject dataObject = statusAfterPublish.getJsonObject("data");
3956+
assertFalse(dataObject.containsKey("label"), "Curation label should be empty after publishing");
3957+
3958+
// Add a new valid curation label
3959+
Response setNewStatus = UtilIT.setDatasetCurationLabel(datasetId, apiToken, "State 2");
3960+
setNewStatus.then().assertThat().statusCode(OK.getStatusCode());
3961+
3962+
// Verify the label was set
3963+
Response getStatusAfterSet = UtilIT.getDatasetCurationStatus(datasetId, apiToken, false);
3964+
getStatusAfterSet.then().assertThat().statusCode(OK.getStatusCode());
3965+
JsonObject statusAfterSet = Json.createReader(new StringReader(getStatusAfterSet.body().asString())).readObject();
3966+
assertEquals("State 2", statusAfterSet.getString("label"), "Curation label should be set to State 2");
3967+
3968+
// Publish the dataset again using updatecurrent as superuser
3969+
Response updateCurrentResponse = UtilIT.publishDatasetViaNativeApi(datasetId, "updatecurrent", apiToken);
3970+
updateCurrentResponse.then().assertThat().statusCode(OK.getStatusCode());
3971+
3972+
// Verify that the current curation label is now empty after updatecurrent
3973+
Response getStatusAfterUpdateCurrent = UtilIT.getDatasetCurationStatus(datasetId, apiToken, false);
3974+
getStatusAfterUpdateCurrent.then().assertThat().statusCode(OK.getStatusCode());
3975+
JsonObject statusAfterUpdateCurrent = Json.createReader(new StringReader(getStatusAfterUpdateCurrent.body().asString())).readObject();
3976+
JsonObject dataAfterUpdateCurrent = statusAfterUpdateCurrent.getJsonObject("data");
3977+
assertFalse(dataAfterUpdateCurrent.containsKey("label"), "Curation label should be empty after updatecurrent");
3978+
3979+
// Verify that the history contains the previously added label
3980+
Response getHistoryAfterUpdateCurrent = UtilIT.getDatasetCurationStatus(datasetId, apiToken, true);
3981+
getHistoryAfterUpdateCurrent.then().assertThat().statusCode(OK.getStatusCode());
3982+
3983+
// Extract the data array from the response
3984+
JsonObject responseObj = Json.createReader(new StringReader(getHistoryAfterUpdateCurrent.body().asString())).readObject();
3985+
JsonArray historyAfterUpdateCurrent = responseObj.getJsonArray("data");
3986+
3987+
// Verify history contains the State 2 label
3988+
boolean foundState2 = false;
3989+
for (int i = 0; i < historyAfterUpdateCurrent.size(); i++) {
3990+
JsonObject entry = historyAfterUpdateCurrent.getJsonObject(i);
3991+
if (entry.containsKey("label") && "State 2".equals(entry.getString("label"))) {
3992+
foundState2 = true;
3993+
break;
3994+
}
3995+
}
3996+
assertTrue(foundState2, "History should contain the State 2 label after updatecurrent");
3997+
39473998
// Clean up
39483999
Response deleteDatasetResponse = UtilIT.deleteDatasetViaNativeApi(datasetId, apiToken);
39494000
assertEquals(200, deleteDatasetResponse.getStatusCode());

0 commit comments

Comments
 (0)