From 03e7360bddb111b71bbfbb166a2626f683defd2f Mon Sep 17 00:00:00 2001 From: Fabian Steeg Date: Thu, 5 May 2022 10:55:40 +0200 Subject: [PATCH] Add failing unit test, tweak releated existing test (#113) --- .../metafix/MetafixRecordTest.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/metafix/src/test/java/org/metafacture/metafix/MetafixRecordTest.java b/metafix/src/test/java/org/metafacture/metafix/MetafixRecordTest.java index 643859a9..515ffe22 100644 --- a/metafix/src/test/java/org/metafacture/metafix/MetafixRecordTest.java +++ b/metafix/src/test/java/org/metafacture/metafix/MetafixRecordTest.java @@ -676,7 +676,7 @@ public void appendWithAsteriksWildcardAtTheEnd() { } @Test - // See https://github.com/metafacture/metafacture-fix/pull/142 + @MetafixToDo("See https://github.com/metafacture/metafacture-fix/pull/113") public void shouldCopyArrayFieldWithoutAsterisk() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( "set_array('TEST_TWO[]')", @@ -691,7 +691,7 @@ public void shouldCopyArrayFieldWithoutAsterisk() { i.endEntity(); i.endRecord(); }, - o -> { + (o, f) -> { o.get().startRecord("1"); o.get().startEntity("test[]"); o.get().literal("1", "One"); @@ -699,15 +699,43 @@ public void shouldCopyArrayFieldWithoutAsterisk() { o.get().literal("3", "Three"); o.get().endEntity(); o.get().startEntity("TEST_TWO[]"); + o.get().startEntity("1"); o.get().literal("1", "One"); o.get().literal("2", "Two"); o.get().literal("3", "Three"); - o.get().endEntity(); + f.apply(2).endEntity(); o.get().endRecord(); } ); } + @Test + @MetafixToDo("See https://github.com/metafacture/metafacture-fix/issues/113") + public void copyFieldArrayOfObjectsAndListNewArrayOfObjectsAndMoveSubfield() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "copy_field('author[]','creator[]')", + "do list(path:'creator[]')", + " move_field('name','label')", + "end", + "retain('creator[]')"), + i -> { + i.startRecord("1"); + i.startEntity("author[]"); + i.startEntity("1"); + i.literal("name", "A University"); + i.endEntity(); + i.endEntity(); + i.endRecord(); + }, (o, f) -> { + o.get().startRecord("1"); + o.get().startEntity("creator[]"); + o.get().startEntity("1"); + o.get().literal("label", "A University"); + f.apply(2).endEntity(); + o.get().endRecord(); + }); + } + @Test // See https://github.com/metafacture/metafacture-fix/issues/121 public void shouldCopyArrayFieldWithAsterisk() {