@@ -197,7 +197,7 @@ public void exportWorkWithFile() throws Exception {
197
197
List <CSVRecord > csvList = parseCsvResponse (response );
198
198
assertEquals (3 , csvList .size (), "Unexpected number of results" );
199
199
200
- assertCsvContentIsCorrect (csvList , folderObj . getPid () , workPid , filePid );
200
+ assertCsvContentIsCorrect (csvList , folderPid , workPid , filePid );
201
201
}
202
202
203
203
@ Test
@@ -221,15 +221,17 @@ public void exportWorkWithAccessSurrogate() throws Exception {
221
221
222
222
List <CSVRecord > csvList = parseCsvResponse (response );
223
223
224
- String pathToWork = FOLDER_PATH + "/" + workPid .getId ();
225
- assertCsvRecord (csvList , ResourceType .Work , workPid , "TestWork" ,
224
+ var workId = workPid .getId ();
225
+ String pathToWork = FOLDER_PATH + "/" + workId ;
226
+ assertCsvRecord (csvList , ResourceType .Work , workPid , workId ,
226
227
pathToWork , 4 , false , null , null , null , null ,
227
- 1 , false , "Authenticated" , "" , "" );
228
+ 1 , false , "Authenticated" , "" , "" , null , null );
228
229
229
- String pathToFile = pathToWork + "/file.txt" ;
230
- assertCsvRecord (csvList , ResourceType .File , pidList .get ("filePid" ), "TestWork" ,
230
+ var fileTitle = "file.txt" ;
231
+ String pathToFile = pathToWork + "/" + fileTitle ;
232
+ assertCsvRecord (csvList , ResourceType .File , filePid , fileTitle ,
231
233
pathToFile , 5 , false , "text/plain" , null , (long ) 7 , "Y" ,
232
- null , false , "Authenticated" , "" , "" );
234
+ null , false , "Authenticated" , "" , "" , getUrl ( workPid . getId ()), workId );
233
235
}
234
236
235
237
@ Test
@@ -268,12 +270,13 @@ public void exportDescribedResource() throws Exception {
268
270
String pathToWork = pathToFolder + "/Work Test" ;
269
271
assertCsvRecord (csvList , ResourceType .Work , workPid , "Work Test" ,
270
272
pathToWork , 4 , false , null , null , null , null ,
271
- 1 , true , "Authenticated" , "" , "" );
273
+ 1 , true , "Authenticated" , "" , "" , null , null );
272
274
273
- String pathToFile = pathToWork + "/file.txt" ;
274
- assertCsvRecord (csvList , ResourceType .File , filePid , "TestWork2" ,
275
+ var fileTitle = "file.txt" ;
276
+ String pathToFile = pathToWork + "/" + fileTitle ;
277
+ assertCsvRecord (csvList , ResourceType .File , filePid , fileTitle ,
275
278
pathToFile , 5 , false , "text/plain" , null , (long ) 7 , null ,
276
- null , false , "Authenticated" , "" , "" );
279
+ null , false , "Authenticated" , "" , "" , getUrl ( workPid . getId ()), "Work Test" );
277
280
}
278
281
279
282
@ Test
@@ -303,15 +306,17 @@ public void exportDeletedResource() throws Exception {
303
306
assertContainerRecord (csvList , ResourceType .Folder , folderPid , "Folder" ,
304
307
FOLDER_PATH , 3 , true , 1 , false , "Staff-only" , "" );
305
308
306
- String pathToWork = FOLDER_PATH + "/" + workPid .getId ();
307
- assertCsvRecord (csvList , ResourceType .Work , workPid , "TestWorkDeleted" ,
309
+ var workId = workPid .getId ();
310
+ String pathToWork = FOLDER_PATH + "/" + workId ;
311
+ assertCsvRecord (csvList , ResourceType .Work , workPid , workId ,
308
312
pathToWork , 4 , true , null , null , null , null ,
309
- 1 , false , "Staff-only" , "" , "" );
313
+ 1 , false , "Staff-only" , "" , "" , null , null );
310
314
311
- String pathToFile = pathToWork + "/file.txt" ;
312
- assertCsvRecord (csvList , ResourceType .File , filePid , "TestWork2" ,
315
+ var fileTitle = "file.txt" ;
316
+ String pathToFile = pathToWork + "/" + fileTitle ;
317
+ assertCsvRecord (csvList , ResourceType .File , filePid , fileTitle ,
313
318
pathToFile , 5 , true , "text/plain" , null , (long ) 7 , null ,
314
- null , false , "Staff-only" , "" , "" );
319
+ null , false , "Staff-only" , "" , "" , getUrl ( workPid . getId ()), workId );
315
320
}
316
321
317
322
@ Test
@@ -335,10 +340,12 @@ public void exportFileResourceDirectly() throws Exception {
335
340
List <CSVRecord > csvList = parseCsvResponse (response );
336
341
assertEquals (1 , csvList .size (), "Unexpected number of results" );
337
342
338
- String pathToFile = FOLDER_PATH + "/" + workPid .getId () + "/file.txt" ;
339
- assertCsvRecord (csvList , ResourceType .File , filePid , "TestWork3" ,
343
+ var fileTitle = "file.txt" ;
344
+ var workId = workPid .getId ();
345
+ String pathToFile = FOLDER_PATH + "/" + workId + "/file.txt" ;
346
+ assertCsvRecord (csvList , ResourceType .File , filePid , fileTitle ,
340
347
pathToFile , 5 , false , "text/plain" , null , (long ) 7 , null ,
341
- null , false , "Authenticated" , "" , "" );
348
+ null , false , "Authenticated" , "" , "" , getUrl ( workPid . getId ()), workId );
342
349
}
343
350
344
351
@ Test
@@ -622,15 +629,17 @@ public void multiPageExport() throws Exception {
622
629
assertContainerRecord (csvList , ResourceType .Folder , folderObj .getPid (), "Folder" ,
623
630
FOLDER_PATH , 3 , false , 1 , false , "Authenticated" , "" );
624
631
625
- String pathToWork = FOLDER_PATH + "/" + workPid .getId ();
626
- assertCsvRecord (csvList , ResourceType .Work , workPid , "TestWork" ,
632
+ var workId = workPid .getId ();
633
+ String pathToWork = FOLDER_PATH + "/" + workId ;
634
+ assertCsvRecord (csvList , ResourceType .Work , workPid , workId ,
627
635
pathToWork , 4 , false , null , null , null , null ,
628
- 1 , false , "Authenticated" , "" , "" );
636
+ 1 , false , "Authenticated" , "" , "" , null , null );
629
637
630
- String pathToFile = pathToWork + "/file.txt" ;
631
- assertCsvRecord (csvList , ResourceType .File , pidList .get ("filePid" ), "TestWork" ,
638
+ var fileTitle = "file.txt" ;
639
+ String pathToFile = pathToWork + "/" + fileTitle ;
640
+ assertCsvRecord (csvList , ResourceType .File , pidList .get ("filePid" ), fileTitle ,
632
641
pathToFile , 5 , false , "text/plain" , null , (long ) 7 , null ,
633
- null , false , "Authenticated" , "" , "" );
642
+ null , false , "Authenticated" , "" , "" , getUrl ( workPid . getId ()), workId );
634
643
}
635
644
636
645
@ Test
@@ -658,10 +667,11 @@ public void exportWorkWithViewBehavior() throws Exception {
658
667
List <CSVRecord > csvList = parseCsvResponse (response );
659
668
assertEquals (3 , csvList .size (), "Unexpected number of results" );
660
669
661
- String pathToWork = FOLDER_PATH + "/" + workPid .getId ();
662
- assertCsvRecord (csvList , ResourceType .Work , workPid , "TestWork" ,
670
+ var workId = workPid .getId ();
671
+ String pathToWork = FOLDER_PATH + "/" + workId ;
672
+ assertCsvRecord (csvList , ResourceType .Work , workPid , workId ,
663
673
pathToWork , 4 , false , null , null , null , null ,
664
- 1 , false , "Authenticated" , "" , paged );
674
+ 1 , false , "Authenticated" , "" , paged , null , null );
665
675
}
666
676
667
677
@ Test
@@ -784,13 +794,14 @@ private void assertContainerRecord(List<CSVRecord> csvList, ResourceType objType
784
794
String path , int depth , boolean deleted , Integer numChildren , boolean described , String permissions ,
785
795
String embargoDate ) {
786
796
assertCsvRecord (csvList , objType , expectedPid , title , path , depth , deleted ,
787
- null , null , null , null , numChildren , described , permissions , embargoDate , "" );
797
+ null , null , null , null , numChildren , described , permissions ,
798
+ embargoDate , "" , "" , "" );
788
799
}
789
800
790
801
private void assertCsvRecord (List <CSVRecord > csvList , ResourceType objType , PID expectedPid , String title ,
791
802
String path , int depth , boolean deleted , String mimetype , String checksum , Long fileSize ,
792
803
String accessSurrogate , Integer numChildren , boolean described , String permissions ,
793
- String embargoDate , String behavior ) {
804
+ String embargoDate , String behavior , String parentWorkUrl , String parentWorkTitle ) {
794
805
path = path == null ? "" : path ;
795
806
mimetype = mimetype == null ? "" : mimetype ;
796
807
checksum = checksum == null ? "" : checksum ;
@@ -801,6 +812,7 @@ private void assertCsvRecord(List<CSVRecord> csvList, ResourceType objType, PID
801
812
continue ;
802
813
}
803
814
assertEquals (objType .name (), rec .get (ExportCsvService .OBJ_TYPE_HEADER ));
815
+ assertEquals (title , rec .get (ExportCsvService .TITLE_HEADER ));
804
816
assertEquals (path , rec .get (ExportCsvService .PATH_HEADER ));
805
817
assertEquals (depth , Integer .parseInt (rec .get (ExportCsvService .DEPTH_HEADER )));
806
818
assertEquals (deleted , Boolean .parseBoolean (rec .get (ExportCsvService .DELETED_HEADER )));
@@ -828,6 +840,18 @@ private void assertCsvRecord(List<CSVRecord> csvList, ResourceType objType, PID
828
840
assertEquals (permissions , rec .get (ExportCsvService .PATRON_PERMISSIONS_HEADER ));
829
841
assertEquals (embargoDate , rec .get (ExportCsvService .EMBARGO_HEADER ));
830
842
assertEquals (behavior , rec .get (ExportCsvService .VIEW_BEHAVIOR_HEADER ));
843
+
844
+ if (parentWorkUrl == null ) {
845
+ assertTrue (StringUtils .isBlank (rec .get (ExportCsvService .PARENT_WORK_URL )));
846
+ } else {
847
+ assertEquals (parentWorkUrl , rec .get (ExportCsvService .PARENT_WORK_URL ));
848
+ }
849
+
850
+ if (parentWorkTitle == null ) {
851
+ assertTrue (StringUtils .isBlank (rec .get (ExportCsvService .PARENT_WORK_TITLE )));
852
+ } else {
853
+ assertEquals (parentWorkTitle , rec .get (ExportCsvService .PARENT_WORK_TITLE ));
854
+ }
831
855
return ;
832
856
}
833
857
fail ("No CSV record with PID " + expectedPid .getId () + " present" );
@@ -837,15 +861,17 @@ private void assertCsvContentIsCorrect(List<CSVRecord> csvList, PID folderPid, P
837
861
assertContainerRecord (csvList , ResourceType .Folder , folderPid , "Folder" ,
838
862
FOLDER_PATH , 3 , false , 1 , false , "Authenticated" , "" );
839
863
840
- String pathToWork = FOLDER_PATH + "/" + workPid .getId ();
841
- assertCsvRecord (csvList , ResourceType .Work , workPid , "TestWork" ,
864
+ var workId = workPid .getId ();
865
+ String pathToWork = FOLDER_PATH + "/" + workId ;
866
+ assertCsvRecord (csvList , ResourceType .Work , workPid , workId ,
842
867
pathToWork , 4 , false , null , null , null , null ,
843
- 1 , false , "Authenticated" , "" , "" );
868
+ 1 , false , "Authenticated" , "" , "" , "" , "" );
844
869
845
- String pathToFile = pathToWork + "/file.txt" ;
846
- assertCsvRecord (csvList , ResourceType .File , filePid , "TestWork" ,
870
+ var fileTitle = "file.txt" ;
871
+ String pathToFile = pathToWork + "/" + fileTitle ;
872
+ assertCsvRecord (csvList , ResourceType .File , filePid , fileTitle ,
847
873
pathToFile , 5 , false , "text/plain" , null , (long ) 7 , null ,
848
- null , false , "Authenticated" , "" , "" );
874
+ null , false , "Authenticated" , "" , "" , getUrl ( workId ), workId );
849
875
}
850
876
851
877
private List <CSVRecord > parseCsvResponse (MockHttpServletResponse response ) throws Exception {
@@ -857,4 +883,8 @@ private List<CSVRecord> parseCsvResponse(MockHttpServletResponse response) throw
857
883
.forEach (csvList ::add );
858
884
return csvList ;
859
885
}
886
+
887
+ private String getUrl (String id ) {
888
+ return "http://example.com/record/" + id ;
889
+ }
860
890
}
0 commit comments