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 <[email protected]> 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 "[email protected]" <[email protected]>.
