You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2022/08/22 10:01:01 UTC
[brooklyn-server] branch master updated: add 'not' predicate keyword
This is an automated email from the ASF dual-hosted git repository.
heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
The following commit(s) were added to refs/heads/master by this push:
new d26428f56f add 'not' predicate keyword
d26428f56f is described below
commit d26428f56fab17184a8675f2ad53f16be4ff5a82
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Mon Aug 22 11:00:52 2022 +0100
add 'not' predicate keyword
---
.../brooklyn/util/core/predicates/DslPredicates.java | 2 ++
.../brooklyn/util/core/predicates/DslPredicateTest.java | 14 ++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/core/src/main/java/org/apache/brooklyn/util/core/predicates/DslPredicates.java b/core/src/main/java/org/apache/brooklyn/util/core/predicates/DslPredicates.java
index 64bcf08117..369676a7a1 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/predicates/DslPredicates.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/predicates/DslPredicates.java
@@ -192,6 +192,7 @@ public class DslPredicates {
/** nested check */
public DslPredicate check;
+ public DslPredicate not;
public List<DslPredicate> any;
public List<DslPredicate> all;
@@ -396,6 +397,7 @@ public class DslPredicates {
return nestedPredicateCheck(test, Maybe.of(computedSize));
});
+ checker.checkTest(not, test -> !nestedPredicateCheck(test, result));
checker.checkTest(check, test -> nestedPredicateCheck(test, result));
checker.checkTest(any, test -> test.stream().anyMatch(p -> nestedPredicateCheck(p, result)));
checker.checkTest(all, test -> test.stream().allMatch(p -> nestedPredicateCheck(p, result)));
diff --git a/core/src/test/java/org/apache/brooklyn/util/core/predicates/DslPredicateTest.java b/core/src/test/java/org/apache/brooklyn/util/core/predicates/DslPredicateTest.java
index 957c3e23cf..00440c2076 100644
--- a/core/src/test/java/org/apache/brooklyn/util/core/predicates/DslPredicateTest.java
+++ b/core/src/test/java/org/apache/brooklyn/util/core/predicates/DslPredicateTest.java
@@ -272,6 +272,20 @@ public class DslPredicateTest extends BrooklynMgmtUnitTestSupport {
Asserts.assertFalse(p.test(MutableList.of("Astrid", MutableMap.of("name", "Carver"))));
}
+ @Test
+ public void testNotAndNotEmpty() {
+ DslPredicates.DslPredicate p = TypeCoercions.coerce(MutableMap.of("not", "foo"), DslPredicates.DslPredicate.class);
+ Asserts.assertTrue(p.test("bar"));
+ Asserts.assertTrue(p.test(null));
+ Asserts.assertFalse(p.test("foo"));
+
+ p = TypeCoercions.coerce(MutableMap.of("not", MutableMap.of("size", "0")), DslPredicates.DslPredicate.class);
+ Asserts.assertTrue(p.test(MutableMap.of("id", 123, "name", "Bob")));
+ Asserts.assertFalse(p.test(MutableMap.of()));
+ Asserts.assertTrue(p.test(MutableList.of("Astrid", "Bob")));
+ Asserts.assertFalse(p.test(MutableList.of()));
+ }
+
@Test
public void testJsonpath() {
DslPredicates.DslPredicate p = TypeCoercions.coerce(MutableMap.of("jsonpath", "name", "regex", "[Bb].*"), DslPredicates.DslPredicate.class);