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/07/14 10:12:36 UTC
[brooklyn-server] branch master updated: add a few spec param constraint tests
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 e714eca10c add a few spec param constraint tests
e714eca10c is described below
commit e714eca10ceedd34d01f3d507f066de617c3bcba
Author: Alex Heneveld <al...@cloudsoft.io>
AuthorDate: Thu Jul 14 11:12:23 2022 +0100
add a few spec param constraint tests
---
.../brooklyn/catalog/SpecParameterParsingTest.java | 65 ++++++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/SpecParameterParsingTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/SpecParameterParsingTest.java
index af5ce016c2..a0428b4212 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/SpecParameterParsingTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/catalog/SpecParameterParsingTest.java
@@ -22,10 +22,15 @@ import static org.testng.Assert.assertEquals;
import java.util.List;
+import com.google.common.base.Predicate;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.objs.SpecParameter;
import org.apache.brooklyn.camp.brooklyn.AbstractYamlTest;
+import org.apache.brooklyn.core.objs.ConstraintSerialization;
import org.apache.brooklyn.entity.stock.BasicApplication;
+import org.apache.brooklyn.test.Asserts;
+import org.apache.brooklyn.util.collections.MutableList;
+import org.apache.brooklyn.util.collections.MutableMap;
import org.testng.annotations.Test;
import com.google.common.reflect.TypeToken;
@@ -71,4 +76,64 @@ public class SpecParameterParsingTest extends AbstractYamlTest {
assertEquals(thirdInput.getConfigKey().getName(), "third_input");
assertEquals(thirdInput.getConfigKey().getTypeToken(), TypeToken.of(Integer.class));
}
+
+ @Test
+ public void testYamlInputConstraintRegexParse() {
+ String itemId = ver("test.inputs", "0.0.1");
+ addCatalogItems(
+ "brooklyn.catalog:",
+ " id: test.inputs",
+ " version: 0.0.1",
+ " itemType: entity",
+ " item: ",
+ " type: "+ BasicApplication.class.getName(),
+ " brooklyn.parameters:",
+ " - name: p",
+ " constraints:",
+ " - required",
+ " - regex: \\d\\d?-\\d\\d(\\d\\d)?");
+ EntitySpec<?> item = mgmt().getTypeRegistry().createSpec(mgmt().getTypeRegistry().get(itemId), null, EntitySpec.class);
+ List<SpecParameter<?>> inputs = item.getParameters();
+ assertEquals(inputs.size(), NUM_APP_DEFAULT_CONFIG_KEYS + 1, "inputs="+inputs);
+ SpecParameter<?> firstInput = inputs.get(0);
+ assertEquals(firstInput.getLabel(), "p");
+ Predicate c = firstInput.getConfigKey().getConstraint();
+ Asserts.assertTrue(c.apply("12-2000"));
+ Asserts.assertFalse(c.apply("DEC-2000"));
+
+ Object serialized = ConstraintSerialization.INSTANCE.toJsonList(c);
+ Asserts.assertInstanceOf(serialized, List.class);
+ Asserts.assertSize( (List)serialized, 2);
+ Asserts.assertEquals( ((List)serialized).get(0), "required");
+ Asserts.assertEquals( ((List)serialized).get(1), MutableMap.of("regex", "\\d\\d?-\\d\\d(\\d\\d)?"));
+ }
+
+ @Test
+ public void testYamlInputConstraintRequiredUnlessParse() {
+ String itemId = ver("test.inputs", "0.0.1");
+ addCatalogItems(
+ "brooklyn.catalog:",
+ " id: test.inputs",
+ " version: 0.0.1",
+ " itemType: entity",
+ " item: ",
+ " type: "+ BasicApplication.class.getName(),
+ " brooklyn.parameters:",
+ " - name: p",
+ " constraints:",
+ " - requiredUnlessAnyOf: [ q, r ]",
+ " - q");
+ EntitySpec<?> item = mgmt().getTypeRegistry().createSpec(mgmt().getTypeRegistry().get(itemId), null, EntitySpec.class);
+ List<SpecParameter<?>> inputs = item.getParameters();
+ assertEquals(inputs.size(), NUM_APP_DEFAULT_CONFIG_KEYS + 2, "inputs="+inputs);
+ SpecParameter<?> firstInput = inputs.get(0);
+ assertEquals(firstInput.getLabel(), "p");
+ Predicate c = firstInput.getConfigKey().getConstraint();
+
+ Object serialized = ConstraintSerialization.INSTANCE.toJsonList(c);
+ Asserts.assertInstanceOf(serialized, List.class);
+ Asserts.assertSize( (List)serialized, 1);
+ Asserts.assertEquals( ((List)serialized).get(0), MutableMap.of("requiredUnlessAnyOf", MutableList.of("q", "r")));
+ }
+
}