From 47bcd7a72017602861e52e828b9492f8f53e5057 Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Thu, 3 Apr 2025 13:19:30 +0200
Subject: [PATCH] - added IE which has state purged

---
 perl/t/V7-IE100.xml | 110 ++++++++++++++++++++++++++++++++++++++++++++
 perl/t/expected.sql |   8 +++-
 perl/t/parsing.t    |   5 +-
 3 files changed, 118 insertions(+), 5 deletions(-)
 create mode 100644 perl/t/V7-IE100.xml

diff --git a/perl/t/V7-IE100.xml b/perl/t/V7-IE100.xml
new file mode 100644
index 0000000..a14b662
--- /dev/null
+++ b/perl/t/V7-IE100.xml
@@ -0,0 +1,110 @@
+<mets:mets xmlns:mets="http://www.loc.gov/METS/">
+  <mets:amdSec ID="ie-amd">
+    <mets:techMD ID="ie-amd-tech">
+      <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="dnx">
+        <mets:xmlData>
+          <dnx xmlns="http://www.exlibrisgroup.com/dps/dnx"/>
+        </mets:xmlData>
+      </mets:mdWrap>
+    </mets:techMD>
+    <mets:rightsMD ID="ie-amd-rights">
+      <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="dnx">
+        <mets:xmlData>
+          <dnx xmlns="http://www.exlibrisgroup.com/dps/dnx"/>
+        </mets:xmlData>
+      </mets:mdWrap>
+    </mets:rightsMD>
+    <mets:digiprovMD ID="ie-amd-digiprov">
+      <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="dnx">
+        <mets:xmlData>
+          <dnx xmlns="http://www.exlibrisgroup.com/dps/dnx">
+            <section id="producer">
+              <record>
+                <key id="address1">REDACTED</key>
+                <key id="address3">REDACTED</key>
+                <key id="address4">REDACTED</key>
+                <key id="defaultLanguage">en</key>
+                <key id="emailAddress">REDACTED</key>
+                <key id="firstName">REDACTED</key>
+                <key id="lastName">REDACTED</key>
+                <key id="telephone1">REDACTED</key>
+                <key id="authorativeName">REDACTED</key>
+                <key id="producerId">REDACTED</key>
+                <key id="userIdAppId">REDACTED</key>
+                <key id="zip">REDACTED</key>
+              </record>
+            </section>
+            <section id="producerAgent">
+              <record>
+                <key id="firstName">REDACTED</key>
+                <key id="lastName">REDACTED</key>
+              </record>
+            </section>
+            <section id="event">
+              <record>
+                <key id="eventIdentifierType">REDACTED</key>
+                <key id="eventIdentifierValue">REDACTED</key>
+                <key id="eventType">EXTERNAL_REPAIR</key>
+                <key id="eventDescription">REDACTED</key>
+                <key id="eventDateTime">2017-05-18 12:00:00</key>
+                <key id="eventOutcome1">SUCCESS</key>
+              </record>
+              <record>
+                <key id="eventIdentifierType">DPS</key>
+                <key id="eventIdentifierValue">130</key>
+                <key id="eventType">PROCESSING</key>
+                <key id="eventDescription">Object's Metadata Record Modified</key>
+                <key id="eventDateTime">2017-10-15 17:54:51</key>
+                <key id="eventOutcome1">SUCCESS</key>
+                <key id="linkingAgentIdentifierType1">USER</key>
+                <key id="linkingAgentIdentifierValue1">REDACTED</key>
+              </record>
+              <record>
+                <key id="eventIdentifierType">DPS</key>
+                <key id="eventIdentifierValue">125</key>
+                <key id="eventType">PROCESSING</key>
+                <key id="eventDescription">Add Metadata</key>
+                <key id="eventDateTime">2017-10-15 17:54:52</key>
+                <key id="eventOutcome1">SUCCESS</key>
+                <key id="linkingAgentIdentifierType1">USER</key>
+                <key id="linkingAgentIdentifierValue1">REDACTED</key>
+              </record>
+              <record>
+                <key id="eventDateTime">2018-03-01 09:35:46</key>
+                <key id="eventType">PROCESSING</key>
+                <key id="eventIdentifierType">DPS</key>
+                <key id="eventIdentifierValue">130</key>
+                <key id="eventOutcome1">SUCCESS</key>
+                <key id="eventDescription">Object's Metadata Record Modified</key>
+                <key id="linkingAgentIdentifierType1">USER</key>
+                <key id="linkingAgentIdentifierValue1">REDACTED</key>
+              </record>
+              <record>
+                <key id="eventDateTime">2024-08-01 08:58:47</key>
+                <key id="eventType">PROCESSING</key>
+                <key id="eventIdentifierType">DPS</key>
+                <key id="eventIdentifierValue">272</key>
+                <key id="eventOutcome1">SUCCESS</key>
+                <key id="eventOutcomeDetail1">owner=REDACTED;note=REDACTED;reason=Other;setId=REDACTED;PID=REDACTED;PROCESS_ID=REDACTED;</key>
+                <key id="eventDescription">IE has been deleted</key>
+                <key id="linkingAgentIdentifierType1">USER</key>
+                <key id="linkingAgentIdentifierValue1">REDACTED</key>
+              </record>
+              <record>
+                <key id="eventDateTime">2024-08-01 08:58:47</key>
+                <key id="eventType">PROCESSING</key>
+                <key id="eventIdentifierType">DPS</key>
+                <key id="eventIdentifierValue">274</key>
+                <key id="eventOutcome1">SUCCESS</key>
+                <key id="eventOutcomeDetail1">owner=REDACTED;note=REDACTED;reason=Other;setId=REDACTED;PID=REDACTED;PROCESS_ID=REDACTED;</key>
+                <key id="eventDescription">IE has been purged</key>
+                <key id="linkingAgentIdentifierType1">USER</key>
+                <key id="linkingAgentIdentifierValue1">REDACTED</key>
+              </record>
+            </section>
+          </dnx>
+        </mets:xmlData>
+      </mets:mdWrap>
+    </mets:digiprovMD>
+  </mets:amdSec>
+</mets:mets>
diff --git a/perl/t/expected.sql b/perl/t/expected.sql
index ee3c516..650a4a0 100644
--- a/perl/t/expected.sql
+++ b/perl/t/expected.sql
@@ -9,6 +9,7 @@ CREATE TABLE aip (
 	PRIMARY KEY(id AUTOINCREMENT)
   );
 INSERT INTO aip VALUES(1,'IE200928','SLUB:LZA:Kitodo:goobi:202001030001',1,'perl/t');
+INSERT INTO aip VALUES(2,'IE100','SLUB:LZA:migration_from:rosetta:unknown_00000',7,'perl/t');
 CREATE TABLE metadatafile (
     id INTEGER,
     aip_id INTEGER NOT NULL REFERENCES aip (id),
@@ -17,6 +18,7 @@ CREATE TABLE metadatafile (
     PRIMARY KEY(id AUTOINCREMENT)
   );
 INSERT INTO metadatafile VALUES(1,1,'V1-IE200928.xml','hdd');
+INSERT INTO metadatafile VALUES(2,2,'V7-IE100.xml','hdd');
 CREATE TABLE dc (
     id INTEGER,
     aip_id INTEGER NOT NULL REFERENCES aip (id),
@@ -82,12 +84,14 @@ CREATE TABLE purged (
       authorized_by TEXT NOT NULL,
       PRIMARY KEY(id AUTOINCREMENT)
   );
+INSERT INTO purged VALUES(1,2,'Other','REDACTED','2024-08-01 08:58:47','REDACTED');
 DELETE FROM sqlite_sequence;
-INSERT INTO sqlite_sequence VALUES('aip',1);
-INSERT INTO sqlite_sequence VALUES('metadatafile',1);
+INSERT INTO sqlite_sequence VALUES('aip',2);
+INSERT INTO sqlite_sequence VALUES('metadatafile',2);
 INSERT INTO sqlite_sequence VALUES('sourcedatafile',3);
 INSERT INTO sqlite_sequence VALUES('sourcedatalocat',3);
 INSERT INTO sqlite_sequence VALUES('dc',13);
+INSERT INTO sqlite_sequence VALUES('purged',1);
 CREATE UNIQUE INDEX aip_index ON aip (ie_id, version);
 CREATE UNIQUE INDEX sourcedata_index ON sourcedatafile (aip_id, name);
 CREATE INDEX delete_index ON deleted (aip_id);
diff --git a/perl/t/parsing.t b/perl/t/parsing.t
index b813ce1..afd0fe2 100644
--- a/perl/t/parsing.t
+++ b/perl/t/parsing.t
@@ -20,8 +20,8 @@ is( $? >> 8,       0,       'help, exit status' );
 my $tmp = $test->workdir("");
 my $current_db = "$tmp/sqlite.db";
 $test->run(args => "--sqlitedb-file=$current_db  perl/t/");
-like( $test->stdout, qr{preparing SQL.*processed 1 uniq IEs}s, 'sqldump, standard out' );
-is( $test->stderr, "", 'sqldump, standard error' );
+like( $test->stdout, qr{preparing SQL.*processed 2 uniq IEs}s, 'sqldump, standard out' );
+like( $test->stderr, qr{No repid found in file perl\/t\/V7-IE100.xml, is IE intentionally purged.*Yes.*}s, 'sqldump, standard error' );
 is( $? >> 8,       0,       'sqldump, exit status' );
 ##################### after parsing dump SQL
 $test->run(args => "--sqlitedb-file=$current_db --enable-sqldump");
@@ -31,4 +31,3 @@ is( $? >> 8,       0,       'sqldump, exit status' );
 
 
 done_testing();
-
-- 
GitLab