You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2020/11/27 09:21:59 UTC

[sling-org-apache-sling-feature-extension-apiregions] branch master updated: SLING-9867 : Update unit tests

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-extension-apiregions.git


The following commit(s) were added to refs/heads/master by this push:
     new 00ca414  SLING-9867 : Update unit tests
00ca414 is described below

commit 00ca41423fd37b5f7de5e0c17b19395d142e0702
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Nov 27 10:21:35 2020 +0100

    SLING-9867 : Update unit tests
---
 .../config/validation/PropertyValidatorTest.java   | 293 ++++++++++++---------
 1 file changed, 164 insertions(+), 129 deletions(-)

diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidatorTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidatorTest.java
index acbffa5..ea45d0d 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidatorTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidatorTest.java
@@ -50,210 +50,207 @@ public class PropertyValidatorTest {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.BOOLEAN);
 
-        final List<String> messages = new ArrayList<>();
-
-        validator.validateBoolean(prop, Boolean.TRUE, messages);
-        assertTrue(messages.isEmpty());
+        PropertyValidationResult result;
+        result = validator.validate(Boolean.TRUE, prop);
+        assertTrue(result.isValid());
 
-        validator.validateBoolean(prop, Boolean.FALSE, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(Boolean.FALSE, prop);
+        assertTrue(result.isValid());
 
-        validator.validateBoolean(prop, "TRUE", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("TRUE", prop);
+        assertTrue(result.isValid());
 
-        validator.validateBoolean(prop, "FALSE", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("FALSE", prop);
+        assertTrue(result.isValid());
 
-        validator.validateBoolean(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateBoolean(prop, 1, messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate(1, prop);
+        assertEquals(1, result.getErrors().size());
     }
 
     @Test public void testValidateByte() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.BYTE);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateByte(prop, (byte)1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate((byte)1, prop);
+        assertTrue(result.isValid());
 
-        validator.validateByte(prop, "1", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("1", prop);
+        assertTrue(result.isValid());
 
-        validator.validateByte(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateByte(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidateShort() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.SHORT);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateShort(prop, (short)1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate((short)1, prop);
+        assertTrue(result.isValid());
 
-        validator.validateShort(prop, "1", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("1", prop);
+        assertTrue(result.isValid());
 
-        validator.validateShort(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateShort(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidateInteger() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.INTEGER);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateInteger(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
 
-        validator.validateInteger(prop, "1", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("1", prop);
+        assertTrue(result.isValid());
 
-        validator.validateInteger(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateInteger(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidateLong() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.LONG);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateLong(prop, 1L, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1L, prop);
+        assertTrue(result.isValid());
 
-        validator.validateLong(prop, "1", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("1", prop);
+        assertTrue(result.isValid());
 
-        validator.validateLong(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateLong(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidateFloat() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.FLOAT);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateFloat(prop, 1.1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1.1, prop);
+        assertTrue(result.isValid());
 
-        validator.validateFloat(prop, "1.1", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("1.1", prop);
+        assertTrue(result.isValid());
 
-        validator.validateFloat(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateFloat(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidateDouble() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.DOUBLE);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateDouble(prop, 1.1d, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1.1d, prop);
+        assertTrue(result.isValid());
 
-        validator.validateDouble(prop, "1.1", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("1.1", prop);
+        assertTrue(result.isValid());
 
-        validator.validateDouble(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
 
-        validator.validateDouble(prop, 1, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(1, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidateChar() {
         final PropertyDescription prop = new PropertyDescription();
         prop.setType(PropertyType.CHARACTER);
 
-        final List<String> messages = new ArrayList<>();
+        PropertyValidationResult result;
 
-        validator.validateCharacter(prop, 'x', messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate('x', prop);
+        assertTrue(result.isValid());
 
-        validator.validateCharacter(prop, "y", messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate("y", prop);
+        assertTrue(result.isValid());
 
-        validator.validateCharacter(prop, "yes", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("yes", prop);
+        assertEquals(1, result.getErrors().size());
     }
 
     @Test public void testValidateUrl() {
-        final List<String> messages = new ArrayList<>();
+        final PropertyDescription prop = new PropertyDescription();
+        prop.setType(PropertyType.URL);
 
-        validator.validateURL(null, "https://sling.apache.org/documentation", messages);
-        assertTrue(messages.isEmpty());
+        PropertyValidationResult result;
 
-        validator.validateURL(null, "hello world", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("https://sling.apache.org/documentation", prop);
+        assertTrue(result.isValid());
+
+        result = validator.validate("hello world", prop);
+        assertEquals(1, result.getErrors().size());
     }
 
     @Test public void testValidateEmail() {
-        final List<String> messages = new ArrayList<>();
+        final PropertyDescription prop = new PropertyDescription();
+        prop.setType(PropertyType.EMAIL);
 
-        validator.validateEmail(null, "a@b.com", messages);
-        assertTrue(messages.isEmpty());
+        PropertyValidationResult result;
 
-        validator.validateEmail(null, "hello world", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("a@b.com", prop);
+        assertTrue(result.isValid());
+
+        result = validator.validate("hello world", prop);
+        assertEquals(1, result.getErrors().size());
     }
 
     @Test public void testValidatePassword() {
         final PropertyDescription prop = new PropertyDescription();
-        final List<String> messages = new ArrayList<>();
+        prop.setType(PropertyType.PASSWORD);
 
-        validator.validatePassword(prop, null, messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        PropertyValidationResult result;
+
+        result = validator.validate(null, prop);
+        assertTrue(result.isValid());
 
         prop.setVariable("secret");
-        validator.validatePassword(prop, null, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(null, prop);
+        assertTrue(result.isValid());
     }
 
     @Test public void testValidatePath() {
-        final List<String> messages = new ArrayList<>();
+        final PropertyDescription prop = new PropertyDescription();
+        prop.setType(PropertyType.PATH);
 
-        validator.validatePath(null, "/a/b/c", messages);
-        assertTrue(messages.isEmpty());
+        PropertyValidationResult result;
 
-        validator.validateEmail(null, "hello world", messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate("/a/b/c", prop);
+        assertTrue(result.isValid());
+
+        result = validator.validate("hello world", prop);
+        assertEquals(1, result.getErrors().size());
     }
     
     @Test public void testValidateRange() {
@@ -352,7 +349,6 @@ public class PropertyValidatorTest {
     }
     
     @Test public void testValidateList() {
-        final List<String> messages = new ArrayList<>();
         final PropertyDescription prop = new PropertyDescription();
 
         final List<Object> values = new ArrayList<>();
@@ -361,44 +357,83 @@ public class PropertyValidatorTest {
         values.add("c");
 
         // default cardinality - no excludes/includes
-        validator.validateList(prop, values, messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        PropertyValidationResult result;
+        result = validator.validate(values, prop);
+        assertEquals(1, result.getErrors().size());
 
         // cardinality 3 - no excludes/includes
         prop.setCardinality(3);
-        validator.validateList(prop, values, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
 
         values.add("d");
-        validator.validateList(prop, values, messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate(values, prop);
+        assertEquals(1, result.getErrors().size());
 
         // excludes
         prop.setExcludes(new String[] {"d", "e"});
-        validator.validateList(prop, values, messages);
-        assertEquals(2, messages.size()); // cardinality and exclude
-        messages.clear();
+        result = validator.validate(values, prop);
+        assertEquals(2, result.getErrors().size()); // cardinality and exclude
 
         values.remove("d");
-        validator.validateList(prop, values, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
 
         // includes
         prop.setIncludes(new String[] {"b"});
-        validator.validateList(prop, values, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
 
         prop.setIncludes(new String[] {"x"});
-        validator.validateList(prop, values, messages);
-        assertEquals(1, messages.size());
-        messages.clear();
+        result = validator.validate(values, prop);
+        assertEquals(1, result.getErrors().size());
 
         values.add("x");
         values.remove("a");
-        validator.validateList(prop, values, messages);
-        assertTrue(messages.isEmpty());
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
+    }
+
+    @Test public void testValidateArray() {
+        final PropertyDescription prop = new PropertyDescription();
+
+        String[] values = new String[] {"a", "b", "c"};
+
+        // default cardinality - no excludes/includes
+        PropertyValidationResult result;
+        result = validator.validate(values, prop);
+        assertEquals(1, result.getErrors().size());
+
+        // cardinality 3 - no excludes/includes
+        prop.setCardinality(3);
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
+
+        values = new String[] {"a", "b", "c", "d"};
+        result = validator.validate(values, prop);
+        assertEquals(1, result.getErrors().size());
+
+        // excludes
+        prop.setExcludes(new String[] {"d", "e"});
+        result = validator.validate(values, prop);
+        assertEquals(2, result.getErrors().size()); // cardinality and exclude
+
+        values = new String[] {"a", "b", "c"};
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
+
+        // includes
+        prop.setIncludes(new String[] {"b"});
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
+
+        prop.setIncludes(new String[] {"x"});
+        result = validator.validate(values, prop);
+        assertEquals(1, result.getErrors().size());
+
+        values = new String[] {"b", "c", "x"};
+        result = validator.validate(values, prop);
+        assertTrue(result.getErrors().isEmpty());
     }
 
     @Test public void testDeprecation() {