You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/20 14:39:20 UTC

[sling-org-apache-sling-models-validation-impl] 20/34: add some more tests around optional and disabled validation

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

rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-validation-impl.git

commit 4ea2e70f46ca48f2e9e983e1e9b36eace22608dd
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Mar 3 10:59:02 2017 +0000

    add some more tests around optional and disabled validation
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1785265 13f79535-47bb-0310-9956-ffa450edef68
---
 ...nRequired.java => ModelValidationDisabled.java} |  4 +-
 .../validation/impl/it/ModelValidationIT.java      | 51 ++++++++++++++++++----
 ...nRequired.java => ModelValidationOptional.java} |  4 +-
 ...nRequired.java => ModelValidationRequired.java} |  2 +-
 .../content/contentWithNoValidationModel.json      |  6 +++
 .../apps/sling/validation/models/model1.json       |  2 +-
 6 files changed, 54 insertions(+), 15 deletions(-)

diff --git a/src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationDisabled.java
similarity index 89%
copy from src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java
copy to src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationDisabled.java
index f844c38..e9a8068 100644
--- a/src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java
+++ b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationDisabled.java
@@ -20,7 +20,7 @@ import org.apache.sling.api.resource.Resource;
 import org.apache.sling.models.annotations.Model;
 import org.apache.sling.models.annotations.ValidationStrategy;
 
-@Model(validation=ValidationStrategy.REQUIRED, adaptables = { Resource.class })
-public class ResourceType1ModelValidationRequired {
+@Model(validation=ValidationStrategy.DISABLED, adaptables = { Resource.class })
+public class ModelValidationDisabled {
 
 }
diff --git a/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationIT.java b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationIT.java
index 124c21a..25f476d 100644
--- a/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationIT.java
+++ b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationIT.java
@@ -25,6 +25,7 @@ import org.apache.sling.api.resource.ResourceResolverFactory;
 import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.junit.rules.TeleporterRule;
 import org.apache.sling.models.factory.ModelFactory;
+import org.apache.sling.models.factory.ValidationException;
 import org.apache.sling.models.validation.InvalidResourceException;
 import org.apache.sling.validation.ValidationService;
 import org.apache.sling.validation.model.ValidationModel;
@@ -41,18 +42,18 @@ public class ModelValidationIT {
 
     @Rule
     public final TeleporterRule teleporter = TeleporterRule.forClass(getClass()).withResources("/SLING-CONTENT/");
-    
+
     @Rule
     public ExpectedException expectedEx = ExpectedException.none();
 
     private ValidationService validationService;
 
     private ValidationModel validationModel;
-    
+
     private ModelFactory modelFactory;
-    
+
     private ResourceResolverFactory resourceResolverFactory;
-    
+
     private ResourceResolver resourceResolver = null;
 
     private static final int MODEL_AVAILABLE_TIMEOUT_SECONDS = Integer.getInteger("ValidationServiceIT.ModelAvailabelTimeoutSeconds", 10);
@@ -60,7 +61,7 @@ public class ModelValidationIT {
     @Before
     public void setUp() throws InterruptedException, LoginException {
         validationService = teleporter.getService(ValidationService.class);
-        
+
         long timeoutMs = System.currentTimeMillis() + MODEL_AVAILABLE_TIMEOUT_SECONDS * 1000l;
         // wait for the model to become available (internally relies on search, is therefore asynchronous)
         do {
@@ -76,7 +77,7 @@ public class ModelValidationIT {
         resourceResolverFactory = teleporter.getService(ResourceResolverFactory.class);
         resourceResolver = resourceResolverFactory.getServiceResourceResolver(null);
     }
-    
+
     @After
     public void tearDown() {
         if (resourceResolver != null) {
@@ -90,7 +91,7 @@ public class ModelValidationIT {
         Resource contentResource = resourceResolver.getResource("/apps/sling/validation/content/contentValid");
         Assert.assertNotNull("Content resource must exist", contentResource);
         // generate a model
-        ResourceType1ModelValidationRequired model = modelFactory.createModel(contentResource, ResourceType1ModelValidationRequired.class);
+        ModelValidationRequired model = modelFactory.createModel(contentResource, ModelValidationRequired.class);
         Assert.assertNotNull("model must have been created", model);
     }
 
@@ -100,8 +101,40 @@ public class ModelValidationIT {
         Resource contentResource = resourceResolver.getResource("/apps/sling/validation/content/contentInvalid");
         Assert.assertNotNull("Content resource must exist", contentResource);
         expectedEx.expect(InvalidResourceException.class);
-        expectedEx.expectMessage("Validation errors for '/apps/sling/validation/content/contentInvalid':\nfield1:Property does not match the pattern \"^\\p{Upper}+$\"");
+        expectedEx.expectMessage(
+                "Validation errors for '/apps/sling/validation/content/contentInvalid':\nfield1:Property does not match the pattern \"^\\p{Upper}+$\"");
+        // generate a model
+        modelFactory.createModel(contentResource, ModelValidationRequired.class);
+    }
+
+    @Test
+    public void testModelWithoutRequiredValidationModel() {
+        // create a valid resource
+        Resource contentResource = resourceResolver.getResource("/apps/sling/validation/content/contentWithNoValidationModel");
+        Assert.assertNotNull("Content resource must exist", contentResource);
+        expectedEx.expect(ValidationException.class);
+        expectedEx.expectMessage("Could not find validation model for resource '/apps/sling/validation/content/contentWithNoValidationModel' with type 'test/resourceType1'");
+        // generate a model
+        modelFactory.createModel(contentResource, ModelValidationRequired.class);
+    }
+
+    @Test
+    public void testModelWithoutOptionalValidationModel() {
+        // create a valid resource
+        Resource contentResource = resourceResolver.getResource("/apps/sling/validation/content/contentWithNoValidationModel");
+        Assert.assertNotNull("Content resource must exist", contentResource);
         // generate a model
-        modelFactory.createModel(contentResource, ResourceType1ModelValidationRequired.class);
+        ModelValidationOptional model = modelFactory.createModel(contentResource, ModelValidationOptional.class);
+        Assert.assertNotNull("model must have been created", model);
+    }
+
+    @Test
+    public void testInvalidModelWithValidationDisabled() {
+        // create a valid resource
+        Resource contentResource = resourceResolver.getResource("/apps/sling/validation/content/contentWithNoValidationModel");
+        Assert.assertNotNull("Content resource must exist", contentResource);
+        // generate a model
+        ModelValidationDisabled model = modelFactory.createModel(contentResource, ModelValidationDisabled.class);
+        Assert.assertNotNull("model must have been created", model);
     }
 }
diff --git a/src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationOptional.java
similarity index 89%
copy from src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java
copy to src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationOptional.java
index f844c38..5ff27db 100644
--- a/src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java
+++ b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationOptional.java
@@ -20,7 +20,7 @@ import org.apache.sling.api.resource.Resource;
 import org.apache.sling.models.annotations.Model;
 import org.apache.sling.models.annotations.ValidationStrategy;
 
-@Model(validation=ValidationStrategy.REQUIRED, adaptables = { Resource.class })
-public class ResourceType1ModelValidationRequired {
+@Model(validation=ValidationStrategy.OPTIONAL, adaptables = { Resource.class })
+public class ModelValidationOptional {
 
 }
diff --git a/src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationRequired.java
similarity index 95%
rename from src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java
rename to src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationRequired.java
index f844c38..84d2a59 100644
--- a/src/test/java/org/apache/sling/models/validation/impl/it/ResourceType1ModelValidationRequired.java
+++ b/src/test/java/org/apache/sling/models/validation/impl/it/ModelValidationRequired.java
@@ -21,6 +21,6 @@ import org.apache.sling.models.annotations.Model;
 import org.apache.sling.models.annotations.ValidationStrategy;
 
 @Model(validation=ValidationStrategy.REQUIRED, adaptables = { Resource.class })
-public class ResourceType1ModelValidationRequired {
+public class ModelValidationRequired {
 
 }
diff --git a/src/test/resources/SLING-CONTENT/apps/sling/validation/content/contentWithNoValidationModel.json b/src/test/resources/SLING-CONTENT/apps/sling/validation/content/contentWithNoValidationModel.json
new file mode 100644
index 0000000..998657e
--- /dev/null
+++ b/src/test/resources/SLING-CONTENT/apps/sling/validation/content/contentWithNoValidationModel.json
@@ -0,0 +1,6 @@
+{
+	"jcr:primaryType": "nt:unstructured",
+	"sling:resourceType": "test/resourceType1",
+	"field1": "HELLOWORLD",
+	"field2": "anything"
+}
diff --git a/src/test/resources/SLING-CONTENT/apps/sling/validation/models/model1.json b/src/test/resources/SLING-CONTENT/apps/sling/validation/models/model1.json
index cb46377..b603ec6 100644
--- a/src/test/resources/SLING-CONTENT/apps/sling/validation/models/model1.json
+++ b/src/test/resources/SLING-CONTENT/apps/sling/validation/models/model1.json
@@ -10,7 +10,7 @@
                 "jcr:primaryType" : "nt:unstructured",
                 "org.apache.sling.validation.core.RegexValidator": {
                     "jcr:primaryType" : "nt:unstructured",
-                    "validatorArguments" : ["regex=^\\\p{Upper}+$"],
+                    "validatorArguments" : ["regex=^\\p{Upper}+$"],
                     "severity" : "10"
                 }
             }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.