@@ -938,4 +938,87 @@ public void testOverlayWithevent() throws Exception {
938938 assertNotNull ("Event 2 is missing" , docEdited .selectNodes ("//dams:event[@rdf:resource='" + e2 + "']" ));
939939 }
940940
941+ @ Test
942+ public void testOverlayDate () throws Exception {
943+ String title = "Test object" ;
944+ String objArk = "zzxxxxxxxx" ;
945+ String objUrl = TabularEditRecord .getArkUrl (objArk );
946+ Element obj = createDocumentRoot (objUrl );
947+ String dateValue = "2020" ;
948+ String beginDate = "2000-01-01" ;
949+ String endDate = "2001-12-31" ;
950+ Element e = addElement (obj , "date" , damsNS , "Date" , damsNS );
951+ addTextElement (e , "value" , rdfNS , dateValue );
952+ addTextElement (e , "type" , damsNS , "creation" );
953+ addTextElement (e , "encoding" , damsNS , "w3cdtf" );
954+ addTextElement (e , "beginDate" , damsNS , beginDate );
955+ addTextElement (e , "endDate" , damsNS , endDate );
956+
957+ String dateKeyOverlay = "date:collected" ;
958+ String dateValueOverlay = "2019" ;
959+
960+ Map <String , String > overlayData = createDataWithTitle (objArk , title );
961+
962+ overlayData .put (dateKeyOverlay , dateValueOverlay );
963+ overlayData .put ("begin date" , beginDate );
964+ overlayData .put ("end date" , endDate );
965+
966+ // Create record with data overlay
967+ TabularEditRecord testObject = createdRecordWithOverlay (obj .getDocument (), overlayData );
968+ Document doc = testObject .toRDFXML ();
969+
970+ List <Node > nodes = doc .selectNodes ("//dams:Date" );
971+ assertEquals ("The size of License doesn't match!" , 1 , nodes .size ());
972+
973+ Node dateNode = doc .selectSingleNode ("//dams:Date[dams:type='collected']" );
974+ assertEquals ("Collected date doesn't match!" , "2019" , dateNode .valueOf ("rdf:value" ));
975+ assertEquals ("Begin date doesn't match!" , "2000-01-01" ,dateNode .valueOf ("dams:beginDate" ));
976+ assertEquals ("End date doesn't match!" , "2001-12-31" , dateNode .valueOf ("dams:endDate" ));
977+ }
978+
979+ @ Test
980+ public void testOverlayDateMultiple () throws Exception {
981+ String title = "Test object" ;
982+ String objArk = "zzxxxxxxxx" ;
983+ String objUrl = TabularEditRecord .getArkUrl (objArk );
984+ Element obj = createDocumentRoot (objUrl );
985+ String dateValue = "2020" ;
986+ String beginDate = "2000-01-01" ;
987+ String endDate = "2001-12-31" ;
988+ Element e = addElement (obj , "date" , damsNS , "Date" , damsNS );
989+ addTextElement (e , "value" , rdfNS , dateValue );
990+ addTextElement (e , "type" , damsNS , "creation" );
991+ addTextElement (e , "encoding" , damsNS , "w3cdtf" );
992+ addTextElement (e , "beginDate" , damsNS , beginDate );
993+ addTextElement (e , "endDate" , damsNS , endDate );
994+
995+ String dateKey1 = "date:creation" ;
996+ String dateValue1 = "2010" ;
997+ String dateKey2 = "date:collected" ;
998+ String dateValue2 = "2019" ;
999+
1000+ Map <String , String > overlayData = createDataWithTitle (objArk , title );
1001+
1002+ overlayData .put (dateKey1 , dateValue1 );
1003+ overlayData .put (dateKey2 , dateValue2 );
1004+ overlayData .put ("begin date" , beginDate );
1005+ overlayData .put ("end date" , endDate );
1006+
1007+ // Create record with data overlay
1008+ TabularEditRecord testObject = createdRecordWithOverlay (obj .getDocument (), overlayData );
1009+ Document doc = testObject .toRDFXML ();
1010+
1011+ List <Node > nodes = doc .selectNodes ("//dams:Date" );
1012+ assertEquals ("The size of License doesn't match!" , 3 , nodes .size ());
1013+
1014+ Node beginEndDateNode = doc .selectSingleNode ("//dams:Date[dams:encoding='w3cdtf']" );
1015+ assertEquals ("Begin date doesn't match!" , "2000-01-01" , beginEndDateNode .valueOf ("dams:beginDate" ));
1016+ assertEquals ("End date doesn't match!" , "2001-12-31" , beginEndDateNode .valueOf ("dams:endDate" ));
1017+
1018+ Node creationDateNode = doc .selectSingleNode ("//dams:Date[dams:type='creation']" );
1019+ assertEquals ("Creation date doesn't match!" , "2010" , creationDateNode .valueOf ("rdf:value" ));
1020+
1021+ Node collectedDateNode = doc .selectSingleNode ("//dams:Date[dams:type='collected']" );
1022+ assertEquals ("Collected date doesn't match!" , "2019" , collectedDateNode .valueOf ("rdf:value" ));
1023+ }
9411024}
0 commit comments