From 6c4f3267af18ad326fbdeba77bc92fc4f4727c21 Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Fri, 18 Feb 2022 14:37:43 +0100 Subject: [PATCH 01/12] Add `is_array()`/`is_object()`/`is_string()` Fix conditionals. --- README.md | 12 + .../metafacture/metafix/FixConditional.java | 19 + .../metafacture/metafix/api/FixPredicate.java | 7 + .../metafacture/metafix/MetafixIfTest.java | 356 ++++++++++++++++++ 4 files changed, 394 insertions(+) diff --git a/README.md b/README.md index 3fc33506..ee58e0bf 100644 --- a/README.md +++ b/README.md @@ -775,6 +775,18 @@ _Also aliased as [`is_contained_in`](#is_contained_in)._ _Alias for [`in`](#in)._ +#### `is_array` + +Executes the functions if/unless the field value is an array. + +#### `is_object` + +Executes the functions if/unless the field value is a hash (object). + +#### `is_string` + +Executes the functions if/unless the field value is a string. + #### `match` ##### `all_match` diff --git a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java index 3c8cff33..1684166c 100644 --- a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java +++ b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java @@ -108,6 +108,25 @@ public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testConditional(record, params, Value::isArray); + } + }, + is_object { + @Override + public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testConditional(record, params, Value::isHash); + } + }, + is_string { + @Override + public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testConditional(record, params, Value::isString); + } + }, + all_match { @Override public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { diff --git a/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java b/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java index dc201463..6766c96b 100644 --- a/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java +++ b/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java @@ -49,6 +49,13 @@ default boolean testConditional(final Record record, final List params, )); } + default boolean testConditional(final Record record, final List params, final Predicate conditional) { + final String field = params.get(0); + + final Value value = record.get(field); + return value != null && conditional.test(value); + } + default boolean testConditional(final List params, final BiPredicate conditional) { return conditional.test(params.get(0), params.get(1)); } diff --git a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java index 74a265b8..b4878114 100644 --- a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java +++ b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java @@ -1430,6 +1430,362 @@ public void shouldContainHashInHash() { ); } + @Test + public void shouldReportArrayAsArray() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_array(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "bar"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "bar"); + o.get().literal("foo", "1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "1"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportArrayEntityAsArray() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_array('foo[]')", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.startEntity("foo[]"); + i.literal("1", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("2"); + i.startEntity("foo[]"); + i.endEntity(); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.endEntity(); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().startEntity("foo[]"); + o.get().literal("1", "bar"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().startEntity("foo[]"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportEmptyArrayAsArray() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "set_array(foo)", + "if is_array(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "bar"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().literal("test", "ok"); + o.get().endRecord(); + } + ); + } + + @Test // checkstyle-disable-line JavaNCSS + public void shouldReportHashAsObject() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_object(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "bar"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("6"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "bar"); + o.get().literal("foo", "1"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "1"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportEmptyHashAsObject() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "set_hash(foo)", + "if is_object(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "bar"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + } + ); + } + + @Test // checkstyle-disable-line JavaNCSS + public void shouldReportStringAsString() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_string(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", "-1"); + i.endRecord(); + i.startRecord("4"); + i.literal("foo", "1.1"); + i.endRecord(); + i.startRecord("5"); + i.literal("foo", "-1.1"); + i.endRecord(); + i.startRecord("6"); + i.literal("foo", "1.1x"); + i.endRecord(); + i.startRecord("7"); + i.literal("foo", "bar"); + i.endRecord(); + i.startRecord("8"); + i.literal("foo", ""); + i.endRecord(); + i.startRecord("9"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("10"); + i.literal("foo", "bar"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("11"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "0"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", "-1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().literal("foo", "1.1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().literal("foo", "-1.1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().literal("foo", "1.1x"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("7"); + o.get().literal("foo", "bar"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("8"); + o.get().literal("foo", ""); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("9"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("10"); + o.get().literal("foo", "bar"); + o.get().literal("foo", "0"); + o.get().endRecord(); + o.get().startRecord("11"); + o.get().endRecord(); + } + ); + } + @Test public void shouldContainString() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( From 1494b9799f08a4a1ab0284a35cf31e616d68bc7b Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Wed, 13 Jul 2022 15:14:12 +0200 Subject: [PATCH 02/12] Add `is_hash()` as alias for `is_object()` Fix conditional. --- README.md | 6 ++ .../metafacture/metafix/FixConditional.java | 6 ++ .../metafacture/metafix/MetafixIfTest.java | 66 +++++++++++++++++++ 3 files changed, 78 insertions(+) diff --git a/README.md b/README.md index ee58e0bf..248b3d60 100644 --- a/README.md +++ b/README.md @@ -779,10 +779,16 @@ _Alias for [`in`](#in)._ Executes the functions if/unless the field value is an array. +#### `is_hash` + +_Alias for [`is_object`](#is_object)._ + #### `is_object` Executes the functions if/unless the field value is a hash (object). +_Also aliased as [`is_hash`](#is_hash)._ + #### `is_string` Executes the functions if/unless the field value is a string. diff --git a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java index 1684166c..0fa06835 100644 --- a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java +++ b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java @@ -114,6 +114,12 @@ public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return is_object.test(metafix, record, params, options); + } + }, is_object { @Override public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { diff --git a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java index b4878114..77bf0f9e 100644 --- a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java +++ b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java @@ -1579,6 +1579,72 @@ public void shouldReportEmptyArrayAsArray() { ); } + @Test // checkstyle-disable-line JavaNCSS + public void shouldReportHashAsHash() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_hash(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "bar"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("6"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "bar"); + o.get().literal("foo", "1"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "1"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().startEntity("foo"); + o.get().literal("foo", "bar"); + o.get().endEntity(); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().endRecord(); + } + ); + } + @Test // checkstyle-disable-line JavaNCSS public void shouldReportHashAsObject() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( From 72f51c2d42d468ed5dcd1de0bcc8fec89e3b8d21 Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Wed, 13 Jul 2022 15:11:46 +0200 Subject: [PATCH 03/12] Add `is_true()`/`is_false()`/`is_number()` Fix conditionals. --- README.md | 12 + .../metafacture/metafix/FixConditional.java | 18 ++ .../metafacture/metafix/api/FixPredicate.java | 21 ++ .../metafacture/metafix/MetafixIfTest.java | 297 ++++++++++++++++++ 4 files changed, 348 insertions(+) diff --git a/README.md b/README.md index 248b3d60..239fb6d4 100644 --- a/README.md +++ b/README.md @@ -779,10 +779,18 @@ _Alias for [`in`](#in)._ Executes the functions if/unless the field value is an array. +#### `is_false` + +Executes the functions if/unless the field value equals `false` or `0`. + #### `is_hash` _Alias for [`is_object`](#is_object)._ +#### `is_number` + +Executes the functions if/unless the field value is a number. + #### `is_object` Executes the functions if/unless the field value is a hash (object). @@ -793,6 +801,10 @@ _Also aliased as [`is_hash`](#is_hash)._ Executes the functions if/unless the field value is a string. +#### `is_true` + +Executes the functions if/unless the field value equals `true` or `1`. + #### `match` ##### `all_match` diff --git a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java index 0fa06835..4d241202 100644 --- a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java +++ b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java @@ -114,12 +114,24 @@ public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testStringConditional(record, params, IS_FALSE); // TODO: strict=false + } + }, is_hash { @Override public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { return is_object.test(metafix, record, params, options); } }, + is_number { + @Override + public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testStringConditional(record, params, IS_NUMBER); + } + }, is_object { @Override public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { @@ -132,6 +144,12 @@ public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testStringConditional(record, params, IS_TRUE); // TODO: strict=false + } + }, all_match { @Override diff --git a/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java b/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java index 6766c96b..6fd90ea9 100644 --- a/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java +++ b/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java @@ -20,6 +20,7 @@ import org.metafacture.metafix.Record; import org.metafacture.metafix.Value; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.function.BiPredicate; @@ -36,6 +37,19 @@ public interface FixPredicate { BiPredicate EQUALS = String::equals; BiPredicate MATCHES = String::matches; + Predicate IS_TRUE = s -> "true".equals(s) || "1".equals(s); + Predicate IS_FALSE = s -> "false".equals(s) || "0".equals(s); + + Predicate IS_NUMBER = s -> { + try { + new BigDecimal(s); + return true; + } + catch (final NumberFormatException e) { + return false; + } + }; + boolean test(Metafix metafix, Record record, List params, Map options); default boolean testConditional(final Record record, final List params, final BiPredicate, Predicate> qualifier, final BiPredicate conditional) { @@ -60,4 +74,11 @@ default boolean testConditional(final List params, final BiPredicate params, final Predicate conditional) { + return testConditional(record, params, v -> v.extractType((m, c) -> m + .ifString(s -> c.accept(conditional.test(s))) + .orElse(w -> c.accept(false)) + )); + } + } diff --git a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java index 77bf0f9e..3f858f67 100644 --- a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java +++ b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java @@ -1579,6 +1579,116 @@ public void shouldReportEmptyArrayAsArray() { ); } + @Test + public void shouldReportFalseStringAsFalse() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_false(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "false"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "true"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", "bar"); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.literal("foo", "false"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.literal("foo", "true"); + i.literal("foo", "false"); + i.endRecord(); + i.startRecord("6"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "false"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "true"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", "bar"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().literal("foo", "false"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().literal("foo", "true"); + o.get().literal("foo", "false"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportFalseNumberAsFalse() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_false(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", "42"); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.literal("foo", "0"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.literal("foo", "1"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("6"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "0"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "1"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", "42"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().literal("foo", "0"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().literal("foo", "1"); + o.get().literal("foo", "0"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().endRecord(); + } + ); + } + @Test // checkstyle-disable-line JavaNCSS public void shouldReportHashAsHash() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( @@ -1645,6 +1755,83 @@ public void shouldReportHashAsHash() { ); } + @Test // checkstyle-disable-line JavaNCSS + public void shouldReportNumberStringAsNumber() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_number(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", "-1"); + i.endRecord(); + i.startRecord("4"); + i.literal("foo", "1.1"); + i.endRecord(); + i.startRecord("5"); + i.literal("foo", "-1.1"); + i.endRecord(); + i.startRecord("6"); + i.literal("foo", "1.1x"); + i.endRecord(); + i.startRecord("7"); + i.startEntity("foo"); + i.literal("foo", "1"); + i.endEntity(); + i.endRecord(); + i.startRecord("8"); + i.literal("foo", "1"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("9"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "0"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", "-1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().literal("foo", "1.1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().literal("foo", "-1.1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().literal("foo", "1.1x"); + o.get().endRecord(); + o.get().startRecord("7"); + o.get().startEntity("foo"); + o.get().literal("foo", "1"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("8"); + o.get().literal("foo", "1"); + o.get().literal("foo", "0"); + o.get().endRecord(); + o.get().startRecord("9"); + o.get().endRecord(); + } + ); + } + @Test // checkstyle-disable-line JavaNCSS public void shouldReportHashAsObject() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( @@ -1852,6 +2039,116 @@ public void shouldReportStringAsString() { ); } + @Test + public void shouldReportTrueStringAsTrue() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_true(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "true"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "false"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", "bar"); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.literal("foo", "true"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.literal("foo", "true"); + i.literal("foo", "false"); + i.endRecord(); + i.startRecord("6"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "true"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "false"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", "bar"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().literal("foo", "true"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().literal("foo", "true"); + o.get().literal("foo", "false"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportTrueNumberAsTrue() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_true(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", "42"); + i.endRecord(); + i.startRecord("4"); + i.startEntity("foo"); + i.literal("foo", "1"); + i.endEntity(); + i.endRecord(); + i.startRecord("5"); + i.literal("foo", "1"); + i.literal("foo", "0"); + i.endRecord(); + i.startRecord("6"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", "1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "0"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", "42"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().startEntity("foo"); + o.get().literal("foo", "1"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().literal("foo", "1"); + o.get().literal("foo", "0"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().endRecord(); + } + ); + } + @Test public void shouldContainString() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( From 5689bbd370b50c5c312278651dd534473f538dd5 Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Thu, 14 Jul 2022 15:45:49 +0200 Subject: [PATCH 04/12] Change `is_string()` Fix conditional to reject numbers for Catmandu compatibility. --- README.md | 2 +- .../main/java/org/metafacture/metafix/FixConditional.java | 2 +- .../src/test/java/org/metafacture/metafix/MetafixIfTest.java | 5 ----- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 239fb6d4..78e4522c 100644 --- a/README.md +++ b/README.md @@ -799,7 +799,7 @@ _Also aliased as [`is_hash`](#is_hash)._ #### `is_string` -Executes the functions if/unless the field value is a string. +Executes the functions if/unless the field value is a string (and not a number). #### `is_true` diff --git a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java index 4d241202..404ff796 100644 --- a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java +++ b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java @@ -141,7 +141,7 @@ public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { - return testConditional(record, params, Value::isString); + return testConditional(record, params, Value::isString) && !is_number.test(metafix, record, params, options); } }, is_true { diff --git a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java index 3f858f67..0bcbf7fb 100644 --- a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java +++ b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java @@ -1994,23 +1994,18 @@ public void shouldReportStringAsString() { o -> { o.get().startRecord("1"); o.get().literal("foo", "1"); - o.get().literal("test", "ok"); o.get().endRecord(); o.get().startRecord("2"); o.get().literal("foo", "0"); - o.get().literal("test", "ok"); o.get().endRecord(); o.get().startRecord("3"); o.get().literal("foo", "-1"); - o.get().literal("test", "ok"); o.get().endRecord(); o.get().startRecord("4"); o.get().literal("foo", "1.1"); - o.get().literal("test", "ok"); o.get().endRecord(); o.get().startRecord("5"); o.get().literal("foo", "-1.1"); - o.get().literal("test", "ok"); o.get().endRecord(); o.get().startRecord("6"); o.get().literal("foo", "1.1x"); From 011ea17cff644582748601499c7119844f384db6 Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Wed, 13 Jul 2022 15:12:44 +0200 Subject: [PATCH 05/12] Add `is_empty()` Fix conditional. --- README.md | 4 + .../metafacture/metafix/FixConditional.java | 6 + .../java/org/metafacture/metafix/Value.java | 2 +- .../metafacture/metafix/api/FixPredicate.java | 7 + .../metafacture/metafix/MetafixIfTest.java | 145 +++++++++++++++++- 5 files changed, 162 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 78e4522c..97557d07 100644 --- a/README.md +++ b/README.md @@ -779,6 +779,10 @@ _Alias for [`in`](#in)._ Executes the functions if/unless the field value is an array. +#### `is_empty` + +Executes the functions if/unless the field value is empty. + #### `is_false` Executes the functions if/unless the field value equals `false` or `0`. diff --git a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java index 404ff796..9b09dafb 100644 --- a/metafix/src/main/java/org/metafacture/metafix/FixConditional.java +++ b/metafix/src/main/java/org/metafacture/metafix/FixConditional.java @@ -114,6 +114,12 @@ public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { + return testConditional(record, params, IS_EMPTY); + } + }, is_false { @Override public boolean test(final Metafix metafix, final Record record, final List params, final Map options) { diff --git a/metafix/src/main/java/org/metafacture/metafix/Value.java b/metafix/src/main/java/org/metafacture/metafix/Value.java index bae75894..a71e141d 100644 --- a/metafix/src/main/java/org/metafacture/metafix/Value.java +++ b/metafix/src/main/java/org/metafacture/metafix/Value.java @@ -410,7 +410,7 @@ public void add(final Value value) { } } - private boolean isEmpty() { + public boolean isEmpty() { return list.isEmpty(); } diff --git a/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java b/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java index 6fd90ea9..201ee920 100644 --- a/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java +++ b/metafix/src/main/java/org/metafacture/metafix/api/FixPredicate.java @@ -50,6 +50,13 @@ public interface FixPredicate { } }; + Predicate IS_EMPTY = v -> v.extractType((m, c) -> m + .ifArray(a -> c.accept(a.isEmpty())) + .ifHash(h -> c.accept(h.isEmpty())) + // TODO: Catmandu considers whitespace-only strings empty (`$v !~ /\S/`) + .ifString(s -> c.accept(s.isEmpty())) + ); + boolean test(Metafix metafix, Record record, List params, Map options); default boolean testConditional(final Record record, final List params, final BiPredicate, Predicate> qualifier, final BiPredicate conditional) { diff --git a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java index 0bcbf7fb..4dd74d09 100644 --- a/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java +++ b/metafix/src/test/java/org/metafacture/metafix/MetafixIfTest.java @@ -31,7 +31,7 @@ * * @author Fabian Steeg */ -@ExtendWith(MockitoExtension.class) +@ExtendWith(MockitoExtension.class) // checkstyle-disable-line JavaNCSS public class MetafixIfTest { @Mock @@ -1579,6 +1579,149 @@ public void shouldReportEmptyArrayAsArray() { ); } + @Test // checkstyle-disable-line JavaNCSS + public void shouldReportEmptyValueAsEmpty() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_empty(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", ""); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "bar"); + i.endRecord(); + i.startRecord("3"); + i.literal("foo", " "); + i.endRecord(); + i.startRecord("4"); + i.literal("foo", "bar"); + i.literal("foo", ""); + i.endRecord(); + i.startRecord("5"); + i.startEntity("foo"); + i.endEntity(); + i.endRecord(); + i.startRecord("6"); + i.startEntity("foo"); + i.literal("foo", ""); + i.endEntity(); + i.endRecord(); + i.startRecord("7"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("foo", ""); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("foo", "bar"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("foo", " "); + //o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().literal("foo", "bar"); + o.get().literal("foo", ""); + o.get().endRecord(); + o.get().startRecord("5"); + o.get().startEntity("foo"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("6"); + o.get().startEntity("foo"); + o.get().literal("foo", ""); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("7"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportEmptyArrayEntityAsEmpty() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "if is_empty('foo[]')", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.startEntity("foo[]"); + i.endEntity(); + i.endRecord(); + i.startRecord("2"); + i.startEntity("foo[]"); + i.literal("1", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("3"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().startEntity("foo[]"); + o.get().endEntity(); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().startEntity("foo[]"); + o.get().literal("1", "bar"); + o.get().endEntity(); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().endRecord(); + } + ); + } + + @Test + public void shouldReportEmptyArrayAsEmpty() { + MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( + "set_array(foo)", + "if is_empty(foo)", + " add_field(test,ok)", + "end" + ), + i -> { + i.startRecord("1"); + i.literal("foo", "bar"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("2"); + i.literal("foo", "1"); + i.endRecord(); + i.startRecord("3"); + i.startEntity("foo"); + i.literal("foo", "bar"); + i.endEntity(); + i.endRecord(); + i.startRecord("4"); + i.endRecord(); + }, + o -> { + o.get().startRecord("1"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("2"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("3"); + o.get().literal("test", "ok"); + o.get().endRecord(); + o.get().startRecord("4"); + o.get().literal("test", "ok"); + o.get().endRecord(); + } + ); + } + @Test public void shouldReportFalseStringAsFalse() { MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList( From f173f9c019742f12ef81c1147697d5a18f2c6164 Mon Sep 17 00:00:00 2001 From: TobiasNx Date: Fri, 15 Jul 2022 12:52:26 +0200 Subject: [PATCH 06/12] Add integration test for `is_array()` #247 --- .../fromXml/toJson/ifIsArraySimple/expected.json | 7 +++++++ .../fromXml/toJson/ifIsArraySimple/input.xml | 10 ++++++++++ .../fromXml/toJson/ifIsArraySimple/test.fix | 3 +++ .../fromXml/toJson/ifIsArraySimple/test.flux | 8 ++++++++ 4 files changed, 28 insertions(+) create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.flux diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json new file mode 100644 index 00000000..4481c428 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json @@ -0,0 +1,7 @@ +{ + "elementA" : "Test" +} +{ + "elementA" : [ "Test", "Another Test" ], + "elementB" : "Hello" +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml new file mode 100644 index 00000000..56b9f08c --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml @@ -0,0 +1,10 @@ + + + + Test + + + Test + Another Test + + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix new file mode 100644 index 00000000..c3c5e3b2 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix @@ -0,0 +1,3 @@ +if is_array("elementA") + add_field("elementB", "Hello") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.flux new file mode 100644 index 00000000..1d8c3df8 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.xml" +|open-file +|decode-xml +|handle-marcxml +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; From 6c6d08fed9d8089e8856229953cdac773cce4c7b Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Fri, 15 Jul 2022 13:23:40 +0200 Subject: [PATCH 07/12] Fix integration test for `is_array()`. (#247) --- .../fromXml/toJson/ifIsArraySimple/expected.json | 7 ++++--- .../conditional/fromXml/toJson/ifIsArraySimple/input.xml | 6 +++--- .../conditional/fromXml/toJson/ifIsArraySimple/test.fix | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json index 4481c428..8746a8e7 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/expected.json @@ -1,7 +1,8 @@ { - "elementA" : "Test" + "123" : "Test" } { - "elementA" : [ "Test", "Another Test" ], - "elementB" : "Hello" + "123" : "Test", + "123" : "Another Test", + "test" : "Hello" } diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml index 56b9f08c..e818d4d1 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/input.xml @@ -1,10 +1,10 @@ - Test + Test - Test - Another Test + Test + Another Test diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix index c3c5e3b2..e1dc4406 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromXml/toJson/ifIsArraySimple/test.fix @@ -1,3 +1,3 @@ -if is_array("elementA") - add_field("elementB", "Hello") +if is_array("123") + add_field("test", "Hello") end From cf31b5357bebe32d1579360ff7d0499fd0936365 Mon Sep 17 00:00:00 2001 From: TobiasNx Date: Fri, 15 Jul 2022 13:35:51 +0200 Subject: [PATCH 08/12] Add integration test `is_array`, `is_string`, is_object` (#247) --- .vscode/settings.json | 22 +++++++++++++++++++ .../toJson/ifIsArraySimple/expected.json | 12 ++++++++++ .../toJson/ifIsArraySimple/input.json | 11 ++++++++++ .../fromJson/toJson/ifIsArraySimple/test.fix | 3 +++ .../fromJson/toJson/ifIsArraySimple/test.flux | 8 +++++++ .../toJson/ifIsObjectSimple/expected.json | 13 +++++++++++ .../toJson/ifIsObjectSimple/input.json | 12 ++++++++++ .../fromJson/toJson/ifIsObjectSimple/test.fix | 7 ++++++ .../toJson/ifIsObjectSimple/test.flux | 8 +++++++ .../toJson/ifIsStringSimple/expected.json | 12 ++++++++++ .../toJson/ifIsStringSimple/input.json | 12 ++++++++++ .../fromJson/toJson/ifIsStringSimple/test.fix | 3 +++ .../toJson/ifIsStringSimple/test.flux | 8 +++++++ .../toJson/unlessIsArraySimple/expected.json | 11 ++++++++++ .../toJson/unlessIsArraySimple/input.json | 11 ++++++++++ .../toJson/unlessIsArraySimple/test.fix | 3 +++ .../toJson/unlessIsArraySimple/test.flux | 8 +++++++ .../toJson/unlessIsObjectSimple/expected.json | 15 +++++++++++++ .../toJson/unlessIsObjectSimple/input.json | 12 ++++++++++ .../toJson/unlessIsObjectSimple/test.fix | 7 ++++++ .../toJson/unlessIsObjectSimple/test.flux | 8 +++++++ .../toJson/unlessIsStringSimple/expected.json | 13 +++++++++++ .../toJson/unlessIsStringSimple/input.json | 12 ++++++++++ .../toJson/unlessIsStringSimple/test.fix | 3 +++ .../toJson/unlessIsStringSimple/test.flux | 8 +++++++ 25 files changed, 242 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.flux create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.flux create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.flux create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.flux create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.flux create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.flux diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..709aec69 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#5ae7c2", + "activityBar.activeBorder": "#c158e7", + "activityBar.background": "#5ae7c2", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#c158e7", + "activityBarBadge.foreground": "#15202b", + "sash.hoverBorder": "#5ae7c2", + "statusBar.background": "#2de1b1", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#1bc094", + "statusBarItem.remoteBackground": "#2de1b1", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#2de1b1", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#2de1b199", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.color": "#2de1b1" +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/expected.json new file mode 100644 index 00000000..05719d37 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/expected.json @@ -0,0 +1,12 @@ +{ + "elementA" : "test", + "elementA" : "Another Test", + "elementB" : "Hello" +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ], + "elementB" : "Hello" +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/input.json new file mode 100644 index 00000000..951c13c3 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/input.json @@ -0,0 +1,11 @@ +{ + "elementA" : "test", + "elementA" : "Another Test" +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.fix new file mode 100644 index 00000000..8159ff02 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.fix @@ -0,0 +1,3 @@ +if is_array("elementA|elementA[]") + add_field("elementB", "Hello") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsArraySimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/expected.json new file mode 100644 index 00000000..82d9dc3b --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/expected.json @@ -0,0 +1,13 @@ +{ + "elementA" : { + "test" : "element" + }, + "elementB" : "Hello", + "elementC" : "World" +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json new file mode 100644 index 00000000..04396d8b --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json @@ -0,0 +1,12 @@ +{ + "elementA" : { + "test" : "element" + } +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.fix new file mode 100644 index 00000000..983b07f9 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.fix @@ -0,0 +1,7 @@ +if is_object("elementA|elementA[]") + add_field("elementB", "Hello") +end + +if is_hash("elementA|elementA[]") + add_field("elementC", "World") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/expected.json new file mode 100644 index 00000000..0fc52545 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/expected.json @@ -0,0 +1,12 @@ +{ + "elementA" : { + "test" : "element" + } +} +{ + "elementA" : "test", + "elementB" : "Hello" +} +{ + "elementA" : [ "Test", "Another Test" ] +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json new file mode 100644 index 00000000..04396d8b --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json @@ -0,0 +1,12 @@ +{ + "elementA" : { + "test" : "element" + } +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.fix new file mode 100644 index 00000000..9949663c --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.fix @@ -0,0 +1,3 @@ +if is_string("elementA|elementA[]") + add_field("elementB", "Hello") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/expected.json new file mode 100644 index 00000000..12f4ddc8 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/expected.json @@ -0,0 +1,11 @@ +{ + "elementA" : "test", + "elementA" : "Another Test" +} +{ + "elementA" : "test", + "elementB" : "Hello" +} +{ + "elementA" : [ "Test", "Another Test" ] +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/input.json new file mode 100644 index 00000000..951c13c3 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/input.json @@ -0,0 +1,11 @@ +{ + "elementA" : "test", + "elementA" : "Another Test" +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.fix new file mode 100644 index 00000000..f047da65 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.fix @@ -0,0 +1,3 @@ +unless is_array("elementA|elementA[]") + add_field("elementB", "Hello") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsArraySimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/expected.json new file mode 100644 index 00000000..52ff922a --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/expected.json @@ -0,0 +1,15 @@ +{ + "elementA" : { + "test" : "element" + } +} +{ + "elementA" : "test", + "elementB" : "Hello", + "elementC" : "World" +} +{ + "elementA" : [ "Test", "Another Test" ], + "elementB" : "Hello", + "elementC" : "World" +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json new file mode 100644 index 00000000..04396d8b --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json @@ -0,0 +1,12 @@ +{ + "elementA" : { + "test" : "element" + } +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.fix new file mode 100644 index 00000000..ced4195e --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.fix @@ -0,0 +1,7 @@ +unless is_object("elementA|elementA[]") + add_field("elementB", "Hello") +end + +unless is_hash("elementA|elementA[]") + add_field("elementC", "World") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/expected.json new file mode 100644 index 00000000..6d1441e4 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/expected.json @@ -0,0 +1,13 @@ +{ + "elementA" : { + "test" : "element" + }, + "elementB" : "Hello" +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ], + "elementB" : "Hello" +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json new file mode 100644 index 00000000..04396d8b --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json @@ -0,0 +1,12 @@ +{ + "elementA" : { + "test" : "element" + } +} +{ + "elementA" : "test" +} +{ + "elementA" : [ "Test", "Another Test" ] +} + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix new file mode 100644 index 00000000..9949663c --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix @@ -0,0 +1,3 @@ +if is_string("elementA|elementA[]") + add_field("elementB", "Hello") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; From 63f5483cfe496639c8adb5104b8efc5ef74adc25 Mon Sep 17 00:00:00 2001 From: TobiasNx Date: Fri, 15 Jul 2022 13:43:07 +0200 Subject: [PATCH 09/12] Add test for is_string with number string #247 --- .../fromJson/toJson/ifIsStringsButNumbers/expected.json | 4 ++++ .../fromJson/toJson/ifIsStringsButNumbers/input.json | 5 +++++ .../fromJson/toJson/ifIsStringsButNumbers/test.fix | 3 +++ .../fromJson/toJson/ifIsStringsButNumbers/test.flux | 8 ++++++++ 4 files changed, 20 insertions(+) create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/expected.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/input.json create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.fix create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.flux diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/expected.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/expected.json new file mode 100644 index 00000000..a02550ea --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/expected.json @@ -0,0 +1,4 @@ +{ + "elementA" : "123", + "elementB" : "Hello" +} diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/input.json new file mode 100644 index 00000000..6b81e245 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/input.json @@ -0,0 +1,5 @@ +{ + "elementA" : "123" +} + + diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.fix new file mode 100644 index 00000000..2ee95c1d --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.fix @@ -0,0 +1,3 @@ +if is_string("elementA") + add_field("elementB", "Hello") +end diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.flux b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.flux new file mode 100644 index 00000000..7c3575fa --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/test.flux @@ -0,0 +1,8 @@ +FLUX_DIR + "input.json" +|open-file +|as-records +|decode-json +|fix(FLUX_DIR + "test.fix") +|encode-json(prettyPrinting="true") +|write(FLUX_DIR + "output-metafix.json") +; From 77f6a97b4322b32e2327a7515cdb2eac66fc24af Mon Sep 17 00:00:00 2001 From: TobiasNx Date: Fri, 15 Jul 2022 13:46:54 +0200 Subject: [PATCH 10/12] Delete settings-file --- .vscode/settings.json | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 709aec69..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "workbench.colorCustomizations": { - "activityBar.activeBackground": "#5ae7c2", - "activityBar.activeBorder": "#c158e7", - "activityBar.background": "#5ae7c2", - "activityBar.foreground": "#15202b", - "activityBar.inactiveForeground": "#15202b99", - "activityBarBadge.background": "#c158e7", - "activityBarBadge.foreground": "#15202b", - "sash.hoverBorder": "#5ae7c2", - "statusBar.background": "#2de1b1", - "statusBar.foreground": "#15202b", - "statusBarItem.hoverBackground": "#1bc094", - "statusBarItem.remoteBackground": "#2de1b1", - "statusBarItem.remoteForeground": "#15202b", - "titleBar.activeBackground": "#2de1b1", - "titleBar.activeForeground": "#15202b", - "titleBar.inactiveBackground": "#2de1b199", - "titleBar.inactiveForeground": "#15202b99" - }, - "peacock.color": "#2de1b1" -} From 728d796a97955c4e140028bd2628dd4459431426 Mon Sep 17 00:00:00 2001 From: TobiasNx Date: Fri, 15 Jul 2022 13:53:01 +0200 Subject: [PATCH 11/12] Fix formatting in input files --- .../conditional/fromJson/toJson/ifIsObjectSimple/input.json | 2 +- .../conditional/fromJson/toJson/ifIsStringSimple/input.json | 2 +- .../conditional/fromJson/toJson/unlessIsObjectSimple/input.json | 2 +- .../conditional/fromJson/toJson/unlessIsStringSimple/input.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json index 04396d8b..a2edfc1c 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsObjectSimple/input.json @@ -1,7 +1,7 @@ { "elementA" : { "test" : "element" - } + } } { "elementA" : "test" diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json index 04396d8b..a2edfc1c 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringSimple/input.json @@ -1,7 +1,7 @@ { "elementA" : { "test" : "element" - } + } } { "elementA" : "test" diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json index 04396d8b..a2edfc1c 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsObjectSimple/input.json @@ -1,7 +1,7 @@ { "elementA" : { "test" : "element" - } + } } { "elementA" : "test" diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json index 04396d8b..a2edfc1c 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/input.json @@ -1,7 +1,7 @@ { "elementA" : { "test" : "element" - } + } } { "elementA" : "test" From 9e27c9d93f569f11b8d4b0b788ab3f5d493b0cd9 Mon Sep 17 00:00:00 2001 From: Jens Wille Date: Fri, 15 Jul 2022 14:48:17 +0200 Subject: [PATCH 12/12] Fix integration tests for `is_string()`. (#247) --- .../conditional/fromJson/toJson/ifIsStringsButNumbers/todo.txt | 1 + .../conditional/fromJson/toJson/unlessIsStringSimple/test.fix | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/todo.txt diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/todo.txt b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/todo.txt new file mode 100644 index 00000000..cca72167 --- /dev/null +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/ifIsStringsButNumbers/todo.txt @@ -0,0 +1 @@ +See issue LibreCat/Catmandu#393 diff --git a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix index 9949663c..da7f8bdd 100644 --- a/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix +++ b/metafix/src/test/resources/org/metafacture/metafix/integration/conditional/fromJson/toJson/unlessIsStringSimple/test.fix @@ -1,3 +1,3 @@ -if is_string("elementA|elementA[]") +unless is_string("elementA|elementA[]") add_field("elementB", "Hello") end