From e51bb977a8bbc9c87bb80b024c10afa71bdc4133 Mon Sep 17 00:00:00 2001
From: Muhammed-Ali Demir <muhammed.demir@ptb.de>
Date: Fri, 7 Jul 2023 18:37:49 +0200
Subject: [PATCH] fix(statementmetadatatype): validXMLList

---
 src/DCC.ts                                    |  2 +-
 .../AdministrativeData.Statements.test.ts     | 25 +++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/src/DCC.ts b/src/DCC.ts
index 3996357..8a01a00 100644
--- a/src/DCC.ts
+++ b/src/DCC.ts
@@ -840,7 +840,7 @@ export class StatementMetaDataType extends DCCXMLElement {
 
     // choice
     if (el.valid) this.valid = new DCCXMLBoolean(el.valid);
-    else if (el.validXMLList) this.validXMLList = new DCCXMLList(this.validXMLList);
+    else if (el.validXMLList) this.validXMLList = new DCCXMLList(el.validXMLList);
 
     if (el.date) this.date = new DCCXMLDate(el.date);
     if (el.period) this.period = new DCCXMLElement(el.period);
diff --git a/tests/DCC/GP_Temperatur_v3.2.0_DCC/AdministrativeData.Statements.test.ts b/tests/DCC/GP_Temperatur_v3.2.0_DCC/AdministrativeData.Statements.test.ts
index 9cf4423..ab739dc 100644
--- a/tests/DCC/GP_Temperatur_v3.2.0_DCC/AdministrativeData.Statements.test.ts
+++ b/tests/DCC/GP_Temperatur_v3.2.0_DCC/AdministrativeData.Statements.test.ts
@@ -25,6 +25,18 @@ const xpath = {
         },
       },
       conformity: `string(${base}/dcc:statement[1]/dcc:conformity)`,
+      data: {
+        quantity: {
+          measurementMetaData: {
+            metaData1: {
+              declaration: {
+                content: `${base}/dcc:statement[1]/dcc:data/dcc:quantity/dcc:measurementMetaData/dcc:metaData[1]/dcc:declaration/dcc:content`,
+              },
+              validXMLList: `string(${base}/dcc:statement[1]/dcc:data/dcc:quantity/dcc:measurementMetaData/dcc:metaData[1]/dcc:validXMLList)`,
+            },
+          },
+        },
+      },
       refType: `string(${base}/dcc:statement[1]/@refType)`,
     },
     statement2: {
@@ -88,6 +100,19 @@ describe("GP_Temperature_v3.2.0_DCC: StatementMetaDataType", () => {
     expect(statement1.conformity._text).toBe(select(xpath.statements.statement1.conformity, dom));
   });
 
+  test("should get correct statement 1 metaData1 declaration content from XML", () => {
+    // get expected list from example xml
+    const expected = <Element[]>select(xpath.statements.statement1.data.quantity.measurementMetaData.metaData1.declaration.content, dom);
+    expect(toTextArr(statement1.data.quantity[0].measurementMetaData.metaData[0].declaration.content)).toEqual(toTextContentArr(expected));
+  });
+
+  test("should get correct statement 1 metaData1 validXMLList from XML", () => {
+    // get expected list from example xml
+    expect(statement1.data.quantity[0].measurementMetaData.metaData[0].validXMLList._text).toBe(
+      select(xpath.statements.statement1.data.quantity.measurementMetaData.metaData1.validXMLList, dom),
+    );
+  });
+
   test("should get correct statement 2 declaration content from XML", () => {
     // get expected list from example xml
     const expected = <Element[]>select(xpath.statements.statement2.declaration.content, dom);
-- 
GitLab