@@ -546,8 +546,7 @@ public void testCreatePublishDestroyDataset() {
546
546
Response exportDatasetAsDublinCore = UtilIT .exportDataset (datasetPersistentId , "oai_dc" , apiToken );
547
547
exportDatasetAsDublinCore .prettyPrint ();
548
548
exportDatasetAsDublinCore .then ().assertThat ()
549
- // FIXME: Get this working. See https://github.com/rest-assured/rest-assured/wiki/Usage#example-3---complex-parsing-and-validation
550
- // .body("oai_dc:dc.find { it == 'dc:title' }.item", hasItems("Darwin's Finches"))
549
+ .body ("oai_dc.title" , is ("Darwin's Finches" ))
551
550
.statusCode (OK .getStatusCode ());
552
551
553
552
Response exportDatasetAsDdi = UtilIT .exportDataset (datasetPersistentId , "ddi" , apiToken );
@@ -1111,8 +1110,7 @@ public void testExport() {
1111
1110
Response exportDatasetAsDublinCore = UtilIT .exportDataset (datasetPersistentId , "oai_dc" , apiToken );
1112
1111
exportDatasetAsDublinCore .prettyPrint ();
1113
1112
exportDatasetAsDublinCore .then ().assertThat ()
1114
- // FIXME: Get this working. See https://github.com/rest-assured/rest-assured/wiki/Usage#example-3---complex-parsing-and-validation
1115
- // .body("oai_dc:dc.find { it == 'dc:title' }.item", hasItems("Darwin's Finches"))
1113
+ .body ("oai_dc.title" , is ("Dataset One" ))
1116
1114
.statusCode (OK .getStatusCode ());
1117
1115
1118
1116
Response exportDatasetAsDdi = UtilIT .exportDataset (datasetPersistentId , "ddi" , apiToken );
@@ -3955,7 +3953,72 @@ public void getDatasetVersionCitation() {
3955
3953
.assertThat ().body ("data.message" , containsString (String .valueOf (persistentId )));
3956
3954
}
3957
3955
3958
-
3956
+ @ Test
3957
+ public void testCitationDate () throws IOException {
3958
+
3959
+ Response createUser = UtilIT .createRandomUser ();
3960
+ createUser .then ().assertThat ().statusCode (OK .getStatusCode ());
3961
+ String username = UtilIT .getUsernameFromResponse (createUser );
3962
+ String apiToken = UtilIT .getApiTokenFromResponse (createUser );
3963
+
3964
+ Response createDataverse = UtilIT .createRandomDataverse (apiToken );
3965
+ createDataverse .then ().assertThat ().statusCode (CREATED .getStatusCode ());
3966
+ String dataverseAlias = UtilIT .getAliasFromResponse (createDataverse );
3967
+ Integer dataverseId = UtilIT .getDataverseIdFromResponse (createDataverse );
3968
+ Response createDataset = UtilIT .createRandomDatasetViaNativeApi (dataverseAlias , apiToken );
3969
+ createDataset .then ().assertThat ().statusCode (CREATED .getStatusCode ());
3970
+ Integer datasetId = UtilIT .getDatasetIdFromResponse (createDataset );
3971
+ String datasetPid = JsonPath .from (createDataset .getBody ().asString ()).getString ("data.persistentId" );
3972
+
3973
+ Path pathToAddDateOfDepositJson = Paths .get (java .nio .file .Files .createTempDirectory (null ) + File .separator + "dateOfDeposit.json" );
3974
+ String dateOfDeposit = """
3975
+ {
3976
+ "fields": [
3977
+ {
3978
+ "typeName": "dateOfDeposit",
3979
+ "value": "1999-12-31"
3980
+ }
3981
+ ]
3982
+ }
3983
+ """ ;
3984
+ java .nio .file .Files .write (pathToAddDateOfDepositJson , dateOfDeposit .getBytes ());
3985
+
3986
+ Response addDateOfDeposit = UtilIT .addDatasetMetadataViaNative (datasetPid , pathToAddDateOfDepositJson .toString (), apiToken );
3987
+ addDateOfDeposit .prettyPrint ();
3988
+ addDateOfDeposit .then ().assertThat ()
3989
+ .statusCode (OK .getStatusCode ())
3990
+ .body ("data.metadataBlocks.citation.fields[5].value" , equalTo ("1999-12-31" ));
3991
+
3992
+ Response setCitationDate = UtilIT .setDatasetCitationDateField (datasetPid , "dateOfDeposit" , apiToken );
3993
+ setCitationDate .prettyPrint ();
3994
+ setCitationDate .then ().assertThat ().statusCode (OK .getStatusCode ());
3995
+
3996
+ UtilIT .publishDataverseViaNativeApi (dataverseAlias , apiToken );
3997
+ UtilIT .publishDatasetViaNativeApi (datasetId , "major" , apiToken ).then ().assertThat ().statusCode (OK .getStatusCode ());
3998
+
3999
+ Response getCitationAfter = UtilIT .getDatasetVersionCitation (datasetId , DS_VERSION_LATEST_PUBLISHED , true , apiToken );
4000
+ getCitationAfter .prettyPrint ();
4001
+
4002
+ String doi = datasetPid .substring (4 );
4003
+
4004
+ // Note that the year 1999 appears in the citation because we
4005
+ // set the citation date field to a field that has that year.
4006
+ String expectedCitation = "Finch, Fiona, 1999, \" Darwin's Finches\" , <a href=\" https://doi.org/" + doi + "\" target=\" _blank\" >https://doi.org/" + doi + "</a>, Root, V1" ;
4007
+
4008
+ getCitationAfter .then ().assertThat ()
4009
+ .statusCode (OK .getStatusCode ())
4010
+ .body ("data.message" , is (expectedCitation ));
4011
+
4012
+ Response exportDatasetAsDublinCore = UtilIT .exportDataset (datasetPid , "oai_dc" , apiToken );
4013
+ exportDatasetAsDublinCore .prettyPrint ();
4014
+ String todayDate = LocalDate .now ().format (DateTimeFormatter .ofPattern ("yyyy-MM-dd" ));
4015
+ exportDatasetAsDublinCore .then ().assertThat ()
4016
+ .body ("oai_dc.type" , equalTo ("Dataset" ))
4017
+ .body ("oai_dc.date" , equalTo (todayDate ))
4018
+ .body ("oai_dc.rights" , equalTo ("CC0 1.0" ))
4019
+ .statusCode (OK .getStatusCode ());
4020
+ }
4021
+
3959
4022
@ Test
3960
4023
public void getVersionFiles () throws IOException , InterruptedException {
3961
4024
Response createUser = UtilIT .createRandomUser ();
0 commit comments