Skip to content

Commit 999e426

Browse files
committed
test: fix test for listing links of dataset
1 parent 97ef00b commit 999e426

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

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

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -235,14 +235,19 @@ public void testListLinks() {
235235
grantUser2AccessOnDataverse.then().assertThat()
236236
.statusCode(OK.getStatusCode());
237237

238-
// Create unpublished dataset in dataverse1
238+
// Create and publish dataset in dataverse1
239239
// Which means that both user1 and user2 have permission to view it
240240
Response createDataset = UtilIT.createRandomDatasetViaNativeApi(dataverse1Alias, apiToken1);
241241
createDataset.prettyPrint();
242242
createDataset.then().assertThat()
243243
.statusCode(CREATED.getStatusCode());
244244
String datasetPid = JsonPath.from(createDataset.asString()).getString("data.persistentId");
245245

246+
Response publishDatasetResponse = UtilIT.publishDatasetViaNativeApi(datasetPid, "major", apiToken1);
247+
publishDatasetResponse.prettyPrint();
248+
publishDatasetResponse.then().assertThat()
249+
.statusCode(OK.getStatusCode());
250+
246251
// Create another unpublished dataverse2 as user2, and don't grant user1 any permissions on it
247252
// Which means that user1 doesn't have permission to view this dataverse before it is published
248253
Response createDataverse2 = UtilIT.createRandomDataverse(apiToken2);
@@ -296,6 +301,13 @@ public void testListLinks() {
296301
assertEquals(1, linksList3.size());
297302
assertEquals(dataverse2Id, linksList3.getJsonObject(0).getInt("id"));
298303

304+
// Create another dataset, but don't publish it
305+
Response createDataset2 = UtilIT.createRandomDatasetViaNativeApi(dataverse1Alias, apiToken1);
306+
createDataset2.prettyPrint();
307+
createDataset2.then().assertThat()
308+
.statusCode(CREATED.getStatusCode());
309+
String dataset2Pid = JsonPath.from(createDataset2.asString()).getString("data.persistentId");
310+
299311
// Create user3 without permissions on the unpublished dataset
300312
Response createUser3 = UtilIT.createRandomUser();
301313
createUser3.prettyPrint();
@@ -305,7 +317,7 @@ public void testListLinks() {
305317
String apiToken3 = UtilIT.getApiTokenFromResponse(createUser3);
306318

307319
// User3 cannot list the links of the unpublished dataset
308-
Response linkDatasetsResponse4 = UtilIT.getDatasetLinks(datasetPid, apiToken3);
320+
Response linkDatasetsResponse4 = UtilIT.getDatasetLinks(dataset2Pid, apiToken3);
309321
linkDatasetsResponse4.prettyPrint();
310322
linkDatasetsResponse4.then().assertThat()
311323
.statusCode(FORBIDDEN.getStatusCode());
@@ -317,35 +329,34 @@ public void testListLinks() {
317329
.statusCode(OK.getStatusCode());
318330

319331
// User 3 can now also list the links
320-
Response linkDatasetsResponse5 = UtilIT.getDatasetLinks(datasetPid, apiToken3);
332+
Response linkDatasetsResponse5 = UtilIT.getDatasetLinks(dataset2Pid, apiToken3);
321333
linkDatasetsResponse5.prettyPrint();
322334
linkDatasetsResponse5.then().assertThat()
323335
.statusCode(OK.getStatusCode());
324336
JsonObject linkDatasets5 = Json.createReader(new StringReader(linkDatasetsResponse5.asString())).readObject();
325337
JsonArray linksList5 = linkDatasets5.getJsonObject("data").getJsonArray("linked-dataverses");
326-
assertEquals(1, linksList5.size());
327-
assertEquals(dataverse2Id, linksList5.getJsonObject(0).getInt("id"));
338+
assertEquals(0, linksList5.size());
328339

329340
// Non-authenticated user cannot list the links of the unpublished dataset
330-
Response linkDatasetsResponse6 = UtilIT.getDatasetLinks(datasetPid, null);
341+
Response linkDatasetsResponse6 = UtilIT.getDatasetLinks(dataset2Pid, null);
331342
linkDatasetsResponse6.prettyPrint();
332343
linkDatasetsResponse6.then().assertThat()
333344
.statusCode(FORBIDDEN.getStatusCode());
334345

335-
Response publishDatasetResponse = UtilIT.publishDatasetViaNativeApi(datasetPid, "major", apiToken1);
336-
publishDatasetResponse.prettyPrint();
337-
publishDatasetResponse.then().assertThat()
346+
// Publish dataset2
347+
Response publishDataset2Response = UtilIT.publishDatasetViaNativeApi(dataset2Pid, "major", apiToken1);
348+
publishDataset2Response.prettyPrint();
349+
publishDataset2Response.then().assertThat()
338350
.statusCode(OK.getStatusCode());
339351

340-
// After publishing the dataset, non-authenticated user can now also see the link
341-
Response linkDatasetsResponse7 = UtilIT.getDatasetLinks(datasetPid, null);
352+
// After publishing the dataset, non-authenticated user can now also list the links
353+
Response linkDatasetsResponse7 = UtilIT.getDatasetLinks(dataset2Pid, null);
342354
linkDatasetsResponse7.prettyPrint();
343355
linkDatasetsResponse7.then().assertThat()
344356
.statusCode(OK.getStatusCode());
345357
JsonObject linkDatasets7 = Json.createReader(new StringReader(linkDatasetsResponse7.asString())).readObject();
346358
JsonArray linksList7 = linkDatasets7.getJsonObject("data").getJsonArray("linked-dataverses");
347-
assertEquals(1, linksList7.size());
348-
assertEquals(dataverse2Id, linksList7.getJsonObject(0).getInt("id"));
359+
assertEquals(0, linksList7.size());
349360

350361
}
351362

0 commit comments

Comments
 (0)