From 21cdcd0ce47b6a61906713a2bcba4d33724fd643 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <a.schlemmer@indiscale.com>
Date: Tue, 5 Nov 2024 12:02:47 +0100
Subject: [PATCH] TST(converters): test for generating children of ROCrate
 entities

---
 unittests/test_rocrate_converter.py | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/unittests/test_rocrate_converter.py b/unittests/test_rocrate_converter.py
index 65ea112a..7f9c06fe 100644
--- a/unittests/test_rocrate_converter.py
+++ b/unittests/test_rocrate_converter.py
@@ -39,7 +39,7 @@ from rocrate.model.entity import Entity
 from caoscrawler.converters import (ELNFileConverter, ROCrateEntityConverter)
 from caoscrawler.scanner import load_definition
 from caoscrawler.stores import GeneralStore
-from caoscrawler.structure_elements import ROCrateEntity, File
+from caoscrawler.structure_elements import ROCrateEntity, File, TextElement, DictElement
 
 
 UNITTESTDIR = Path(__file__).parent
@@ -114,7 +114,33 @@ def test_match_rocrate_entities(eln_entities):
 type: ROCrateEntity
 match_properties:
   "@id": \\./
+  datePublished: (?P<datePublished>.*)
 """), "TestELNConverter", converter_registry)
 
     match = ds1.match(eln_entities[0])
     assert match is not None
+
+    ds2 = ROCrateEntityConverter(yaml.safe_load("""
+type: ROCrateEntity
+match_type: CreativeWork
+match_properties:
+  "@id": ro-crate-metadata.json
+  dateCreated: (?P<dateCreated>.*)
+"""), "TestELNConverter", converter_registry)
+
+    match = ds2.match(eln_entities[0])
+    assert match is None
+    match = ds1.match(eln_entities[1])
+    assert match is None
+
+    match = ds2.match(eln_entities[1])
+    assert match is not None
+    assert match["dateCreated"] == "2024-08-21T12:07:45.115990+00:00"
+
+    children = ds2.create_children(GeneralStore(), eln_entities[1])
+    assert len(children) == 7
+    assert isinstance(children[0], TextElement)
+    assert children[0].name == "@id"
+    assert children[0].value == "ro-crate-metadata.json"
+    assert isinstance(children[5], DictElement)
+    assert children[5].value == {'@id': 'https://kadi.iam.kit.edu'}
-- 
GitLab