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/18 23:29:04 UTC

[sling-org-apache-sling-testing-caconfig-mock-plugin] 19/23: SLING-6880 CAConfig Mock Plugin: Add helper methods for writing configurations

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-testing-caconfig-mock-plugin.git

commit 083991eea0f613eff393a83312008754df2ba36f
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Wed May 24 14:31:47 2017 +0000

    SLING-6880 CAConfig Mock Plugin: Add helper methods for writing configurations
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1796067 13f79535-47bb-0310-9956-ffa450edef68
---
 .../mock/caconfig/MockContextAwareConfig.java      | 47 ++++++++++++++++++++++
 .../testing/mock/caconfig/ContextPluginsTest.java  |  4 +-
 .../mock/caconfig/MockContextAwareConfigTest.java  |  4 +-
 .../mock/caconfig/example/SimpleConfig.java        |  2 +-
 4 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java b/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java
index 46e4135..ac13366 100644
--- a/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java
+++ b/src/main/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfig.java
@@ -25,6 +25,7 @@ import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.sling.api.resource.Resource;
+import org.apache.sling.caconfig.annotation.Configuration;
 import org.apache.sling.caconfig.management.ConfigurationManager;
 import org.apache.sling.caconfig.spi.ConfigurationCollectionPersistData;
 import org.apache.sling.caconfig.spi.ConfigurationPersistData;
@@ -75,6 +76,19 @@ public final class MockContextAwareConfig {
      * provider.
      * @param context Sling context
      * @param contextPath Configuration id
+     * @param configClass Configuration class
+     * @param values Configuration values
+     */
+    public static void writeConfiguration(SlingContextImpl context, String contextPath, Class<?> configClass,
+            Map<String, Object> values) {
+        writeConfiguration(context, contextPath, getConfigurationName(configClass), values);
+    }
+    
+    /**
+     * Writes configuration parameters using the primary configured persistence
+     * provider.
+     * @param context Sling context
+     * @param contextPath Configuration id
      * @param configName Config name
      * @param values Configuration values
      */
@@ -90,6 +104,18 @@ public final class MockContextAwareConfig {
      * provider.
      * @param context Sling context
      * @param contextPath Configuration id
+     * @param configClass Configuration class
+     * @param values Configuration values
+     */
+    public static void writeConfiguration(SlingContextImpl context, String contextPath, Class<?> configClass, Object... values) {
+        writeConfiguration(context, contextPath, getConfigurationName(configClass), values);
+    }
+
+    /**
+     * Writes configuration parameters using the primary configured persistence
+     * provider.
+     * @param context Sling context
+     * @param contextPath Configuration id
      * @param configName Config name
      * @param values Configuration values
      */
@@ -102,6 +128,19 @@ public final class MockContextAwareConfig {
      * configured persistence provider.
      * @param context Sling context
      * @param contextPath Configuration id
+     * @param configClass Configuration class
+     * @param values Configuration values
+     */
+    public static void writeConfigurationCollection(SlingContextImpl context, String contextPath,  Class<?> configClass,
+            Collection<Map<String, Object>> values) {
+        writeConfigurationCollection(context, contextPath, getConfigurationName(configClass), values);
+    }
+    
+    /**
+     * Writes a collection of configuration parameters using the primary
+     * configured persistence provider.
+     * @param context Sling context
+     * @param contextPath Configuration id
      * @param configName Config name
      * @param values Configuration values
      */
@@ -117,5 +156,13 @@ public final class MockContextAwareConfig {
         configManager.persistConfigurationCollection(contextResource, configName,
                 new ConfigurationCollectionPersistData(items));
     }
+    
+    private static String getConfigurationName(Class<?> configClass) {
+        Configuration annotation = configClass.getAnnotation(Configuration.class);
+        if (annotation != null && StringUtils.isNotBlank(annotation.name())) {
+            return annotation.name();
+        }
+        return configClass.getName();
+    }
 
 }
diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java b/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java
index 1db5779..d331e19 100644
--- a/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java
@@ -34,7 +34,7 @@ import org.junit.Test;
 
 public class ContextPluginsTest {
     
-    private static final String CONFIG_NAME = SimpleConfig.class.getName();
+    private static final String CONFIG_NAME = "testConfig";
     
     @Rule
     public SlingContext context = new SlingContextBuilder()
@@ -52,7 +52,7 @@ public class ContextPluginsTest {
         MockContextAwareConfig.registerAnnotationClasses(context, SimpleConfig.class);
 
         // write config
-        MockContextAwareConfig.writeConfiguration(context, contextResource.getPath(), CONFIG_NAME, 
+        MockContextAwareConfig.writeConfiguration(context, contextResource.getPath(), SimpleConfig.class, 
                         "stringParam", "value1",
                         "intParam", 123,
                         "boolParam", true);
diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java b/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
index da190c2..4c71660 100644
--- a/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
+++ b/src/test/java/org/apache/sling/testing/mock/caconfig/MockContextAwareConfigTest.java
@@ -54,10 +54,10 @@ public class MockContextAwareConfigTest {
 
         context.currentResource(context.create().resource("/content/region/site/en"));
 
-        MockContextAwareConfig.writeConfiguration(context, "/content/region/site", SimpleConfig.class.getName(),
+        MockContextAwareConfig.writeConfiguration(context, "/content/region/site", SimpleConfig.class,
                 "stringParam", "value1");
 
-        MockContextAwareConfig.writeConfigurationCollection(context, "/content/region/site", ListConfig.class.getName(),
+        MockContextAwareConfig.writeConfigurationCollection(context, "/content/region/site", ListConfig.class,
                 ImmutableList.of((Map<String, Object>) ImmutableMap.<String, Object> of("stringParam", "value1"),
                         (Map<String, Object>) ImmutableMap.<String, Object> of("stringParam", "value2")));
     }
diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/example/SimpleConfig.java b/src/test/java/org/apache/sling/testing/mock/caconfig/example/SimpleConfig.java
index b314fb3..821bd9e 100644
--- a/src/test/java/org/apache/sling/testing/mock/caconfig/example/SimpleConfig.java
+++ b/src/test/java/org/apache/sling/testing/mock/caconfig/example/SimpleConfig.java
@@ -20,7 +20,7 @@ package org.apache.sling.testing.mock.caconfig.example;
 
 import org.apache.sling.caconfig.annotation.Configuration;
 
-@Configuration
+@Configuration(name = "testConfig")
 public @interface SimpleConfig {
 
     String stringParam();

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