From a36707c47ac985435519c4ed0b7741bdbd5c333b Mon Sep 17 00:00:00 2001 From: "Stefan E. Funk" <funk@sub.uni-goettingen.de> Date: Mon, 10 Oct 2022 11:34:49 +0200 Subject: [PATCH] test: add test for comparing modification dates --- .../test/online/OaipmhUtilitiesOnline.java | 30 +++++++++++++++++-- .../test/online/tg/TestTGGetRecordOnline.java | 2 ++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/OaipmhUtilitiesOnline.java b/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/OaipmhUtilitiesOnline.java index 08c72a64..c5e28f43 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/OaipmhUtilitiesOnline.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/OaipmhUtilitiesOnline.java @@ -43,8 +43,8 @@ public class OaipmhUtilitiesOnline { // ## CHANGE SETTINGS BELOW FOR SETTING TEST SCOPE --------------------------------------------- - public static final String PROPERTIES_FILE = "oaipmh.test.textgridlab-org.properties"; - // public static final String PROPERTIES_FILE = "oaipmh.test.dev-textgridlab-org.properties"; + // public static final String PROPERTIES_FILE = "oaipmh.test.textgridlab-org.properties"; + public static final String PROPERTIES_FILE = "oaipmh.test.dev-textgridlab-org.properties"; public static final boolean TEST_ALL_PAGES = false; // public static final boolean TEST_ALL_PAGES = true; @@ -576,6 +576,32 @@ public class OaipmhUtilitiesOnline { } } + /** + * <p> + * Looks for both dates and compares them. <datestamp> must be equal to <recordChangeDate>! + * </p> + * + * @param theResponseString + */ + public static void examineModificationDates(String theResponseString) { + + String datestampTag = "<datestamp>"; + String recordChangeTag = "<recordChangeDate encoding=\"iso8601\">"; + + // Count the occurrence of modification date, must be in GetRecord.record.header.datestamp, and + // in mets.recordInfo.recordChangeDate! + String datestamp = theResponseString.substring( + theResponseString.indexOf(datestampTag) + datestampTag.length(), + theResponseString.indexOf("</datestamp>") - 10); + String recordChangeDate = theResponseString.substring( + theResponseString.indexOf(recordChangeTag) + recordChangeTag.length(), + theResponseString.indexOf("</recordChangeDate>") - 1); + + if (!datestamp.equals(recordChangeDate)) { + assertTrue(datestamp + " != " + recordChangeDate, false); + } + } + // ** // DH used methods // ** diff --git a/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/tg/TestTGGetRecordOnline.java b/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/tg/TestTGGetRecordOnline.java index c58268b3..10bc4ea9 100644 --- a/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/tg/TestTGGetRecordOnline.java +++ b/oaipmh-core/src/test/java/info/textgrid/middleware/test/online/tg/TestTGGetRecordOnline.java @@ -175,6 +175,7 @@ public class TestTGGetRecordOnline { // Test OAI header. OaipmhUtilitiesOnline.examineTGHeaderIDs(response, OaipmhUtilitiesOnline.OAI_IDIOMMETS_PREFIX); + OaipmhUtilitiesOnline.examineModificationDates(response); System.out.println("\tresponse: " + response); System.out.println(OaipmhUtilitiesOnline.OK); @@ -206,6 +207,7 @@ public class TestTGGetRecordOnline { // Test OAI header. OaipmhUtilitiesOnline.examineTGHeaderIDs(response, OaipmhUtilitiesOnline.OAI_IDIOMMETS_PREFIX); + OaipmhUtilitiesOnline.examineModificationDates(response); System.out.println("\tresponse: " + response); System.out.println(OaipmhUtilitiesOnline.OK); -- GitLab