From 133a0393bfee21bfe831ec0a8f3a3d62ad25c49b Mon Sep 17 00:00:00 2001
From: "Stefan E. Funk" <funk@sub.uni-goettingen.de>
Date: Mon, 10 Oct 2022 12:17:35 +0200
Subject: [PATCH] test: correct test

---
 .../test/online/OaipmhUtilitiesOnline.java    | 26 ++++++++++++++-----
 .../test/online/tg/TestTGGetRecordOnline.java | 18 +++++++++----
 2 files changed, 32 insertions(+), 12 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 c5e28f43..e5b10650 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
@@ -8,11 +8,15 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
 import javax.ws.rs.core.Response;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxrs.client.Client;
 import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
@@ -582,20 +586,28 @@ public class OaipmhUtilitiesOnline {
    * </p>
    * 
    * @param theResponseString
+   * @throws DatatypeConfigurationException
+   * @throws ParseException
    */
-  public static void examineModificationDates(String theResponseString) {
+  public static void examineTGModificationDates(String theResponseString)
+      throws ParseException, DatatypeConfigurationException {
 
     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);
+    XMLGregorianCalendar datestamp = OaipmhUtilities.convertDateFormat(
+        theResponseString.substring(
+            theResponseString.indexOf(datestampTag) + datestampTag.length(),
+            theResponseString.indexOf("</datestamp>")).trim());
+
+    System.out.println(datestamp);
+
+    XMLGregorianCalendar recordChangeDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(
+        theResponseString.substring(
+            theResponseString.indexOf(recordChangeTag) + recordChangeTag.length(),
+            theResponseString.indexOf("</recordChangeDate>")).trim());
 
     if (!datestamp.equals(recordChangeDate)) {
       assertTrue(datestamp + " != " + recordChangeDate, false);
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 10bc4ea9..3e24e623 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
@@ -3,6 +3,7 @@ package info.textgrid.middleware.test.online.tg;
 import static org.junit.Assert.assertTrue;
 import java.io.IOException;
 import java.io.InputStream;
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -12,6 +13,7 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import javax.ws.rs.core.Response;
+import javax.xml.datatype.DatatypeConfigurationException;
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxrs.client.Client;
 import org.apache.http.HttpStatus;
@@ -36,7 +38,7 @@ import info.textgrid.middleware.test.online.OaipmhUtilitiesOnline;
  * @version 2022-09-23
  * @since 2022-09-08
  */
-@Ignore
+// @Ignore
 public class TestTGGetRecordOnline {
 
   // **
@@ -153,9 +155,12 @@ public class TestTGGetRecordOnline {
 
   /**
    * @throws IOException
+   * @throws DatatypeConfigurationException
+   * @throws ParseException
    */
   @Test
-  public void testGetRecordIdiomMETS() throws IOException {
+  public void testGetRecordIdiomMETS()
+      throws IOException, ParseException, DatatypeConfigurationException {
 
     System.out.println(OaipmhUtilitiesOnline.TESTING + "testGetRecordIdiomMETS()");
 
@@ -175,7 +180,7 @@ public class TestTGGetRecordOnline {
 
     // Test OAI header.
     OaipmhUtilitiesOnline.examineTGHeaderIDs(response, OaipmhUtilitiesOnline.OAI_IDIOMMETS_PREFIX);
-    OaipmhUtilitiesOnline.examineModificationDates(response);
+    OaipmhUtilitiesOnline.examineTGModificationDates(response);
 
     System.out.println("\tresponse: " + response);
     System.out.println(OaipmhUtilitiesOnline.OK);
@@ -183,9 +188,12 @@ public class TestTGGetRecordOnline {
 
   /**
    * @throws IOException
+   * @throws DatatypeConfigurationException
+   * @throws ParseException
    */
   @Test
-  public void testGetRecordIDIOMMETSImage() throws IOException {
+  public void testGetRecordIDIOMMETSImage()
+      throws IOException, ParseException, DatatypeConfigurationException {
 
     System.out.println(OaipmhUtilitiesOnline.TESTING + "testGetRecordIDIOMMETS_Image()");
 
@@ -207,7 +215,7 @@ public class TestTGGetRecordOnline {
 
     // Test OAI header.
     OaipmhUtilitiesOnline.examineTGHeaderIDs(response, OaipmhUtilitiesOnline.OAI_IDIOMMETS_PREFIX);
-    OaipmhUtilitiesOnline.examineModificationDates(response);
+    OaipmhUtilitiesOnline.examineTGModificationDates(response);
 
     System.out.println("\tresponse: " + response);
     System.out.println(OaipmhUtilitiesOnline.OK);
-- 
GitLab