@@ -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