This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.testing.caconfig-mock-plugin-1.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-caconfig-mock-plugin.git
commit b5e9e6640db45f846e5dabecdb72e164ac243c3e Author: Stefan Seifert <[email protected]> AuthorDate: Sat Dec 10 07:55:27 2016 +0000 cosmetic: use compatibility code to separate class git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/contextaware-config/testing/mocks/caconfig-mock-plugin@1773499 13f79535-47bb-0310-9956-ffa450edef68 --- ...textPluginsTest.java => CompatibilityUtil.java} | 67 +++------------------- .../testing/mock/caconfig/ContextPluginsTest.java | 40 +------------ 2 files changed, 10 insertions(+), 97 deletions(-) diff --git a/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java b/src/test/java/org/apache/sling/testing/mock/caconfig/CompatibilityUtil.java similarity index 50% copy from src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java copy to src/test/java/org/apache/sling/testing/mock/caconfig/CompatibilityUtil.java index cd94d85..56a40bf 100644 --- a/src/test/java/org/apache/sling/testing/mock/caconfig/ContextPluginsTest.java +++ b/src/test/java/org/apache/sling/testing/mock/caconfig/CompatibilityUtil.java @@ -18,54 +18,23 @@ */ package org.apache.sling.testing.mock.caconfig; -import static org.apache.sling.testing.mock.caconfig.ContextPlugins.CACONFIG; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import java.lang.reflect.Method; import java.util.Map; import org.apache.sling.api.resource.Resource; -import org.apache.sling.api.resource.ValueMap; -import org.apache.sling.caconfig.ConfigurationBuilder; import org.apache.sling.caconfig.management.ConfigurationManager; -import org.apache.sling.testing.mock.caconfig.example.SimpleConfig; import org.apache.sling.testing.mock.sling.junit.SlingContext; -import org.apache.sling.testing.mock.sling.junit.SlingContextBuilder; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -import com.google.common.collect.ImmutableMap; - -public class ContextPluginsTest { - - private static final String CONFIG_NAME = "testConfig"; - - @Rule - public SlingContext context = new SlingContextBuilder().plugin(CACONFIG).build(); - - private Resource contextResource; - @Before - public void setUp() { - context.create().resource("/content/site1", "sling:configRef", "/conf/site1"); - contextResource = context.create().resource("/content/site1/page1"); - - // register configuration annotation class - MockContextAwareConfig.registerAnnotationClasses(context, SimpleConfig.class); +/** + * Helper methods interacting with Context-Aware context supporting both version 1.1 and 2.0 of + * the Management API via reflection. + */ +public class CompatibilityUtil { - // write config - writeConfig(contextResource, CONFIG_NAME, ImmutableMap.<String, Object>of( - "stringParam", "value1", - "intParam", 123, - "boolParam", true)); - } - /** * Write configuration for impl 1.2 */ - private void writeConfig(Resource contextResource, String configName, Map<String,Object> props) { + public static void writeConfig(SlingContext context, Resource contextResource, String configName, Map<String,Object> props) { try { Class<?> configurationPersistDataClass; try { @@ -73,7 +42,7 @@ public class ContextPluginsTest { } catch (ClassNotFoundException e) { // fallback to caconfig impl 1.1 - writeConfigImpl11(contextResource, configName, props); + writeConfigImpl11(context, contextResource, configName, props); return; } @@ -86,32 +55,14 @@ public class ContextPluginsTest { throw new RuntimeException(ex); } } - + /** * Fallback: Write configuration for impl 1.1 */ - private void writeConfigImpl11(Resource contextResource, String configName, Map<String,Object> props) throws Exception { + public static void writeConfigImpl11(SlingContext context, Resource contextResource, String configName, Map<String,Object> props) throws Exception { ConfigurationManager configManager = context.getService(ConfigurationManager.class); Method persistMethod = ConfigurationManager.class.getMethod("persist", Resource.class, String.class, Map.class); persistMethod.invoke(configManager, contextResource, configName, props); } - - @Test - public void testValueMap() { - // read config - ValueMap props = contextResource.adaptTo(ConfigurationBuilder.class).name(CONFIG_NAME).asValueMap(); - assertEquals("value1", props.get("stringParam", String.class)); - assertEquals((Integer)123, props.get("intParam", Integer.class)); - assertTrue(props.get("boolParam", Boolean.class)); - } - - @Test - public void testAnnotationClass() { - // read config - SimpleConfig config = contextResource.adaptTo(ConfigurationBuilder.class).as(SimpleConfig.class); - assertEquals("value1", config.stringParam()); - assertEquals(123, config.intParam()); - assertTrue(config.boolParam()); - } } 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 cd94d85..bacb27d 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 @@ -22,13 +22,9 @@ import static org.apache.sling.testing.mock.caconfig.ContextPlugins.CACONFIG; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.lang.reflect.Method; -import java.util.Map; - import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ValueMap; import org.apache.sling.caconfig.ConfigurationBuilder; -import org.apache.sling.caconfig.management.ConfigurationManager; import org.apache.sling.testing.mock.caconfig.example.SimpleConfig; import org.apache.sling.testing.mock.sling.junit.SlingContext; import org.apache.sling.testing.mock.sling.junit.SlingContextBuilder; @@ -56,46 +52,12 @@ public class ContextPluginsTest { MockContextAwareConfig.registerAnnotationClasses(context, SimpleConfig.class); // write config - writeConfig(contextResource, CONFIG_NAME, ImmutableMap.<String, Object>of( + CompatibilityUtil.writeConfig(context, contextResource, CONFIG_NAME, ImmutableMap.<String, Object>of( "stringParam", "value1", "intParam", 123, "boolParam", true)); } - /** - * Write configuration for impl 1.2 - */ - private void writeConfig(Resource contextResource, String configName, Map<String,Object> props) { - try { - Class<?> configurationPersistDataClass; - try { - configurationPersistDataClass = Class.forName("org.apache.sling.caconfig.spi.ConfigurationPersistData"); - } - catch (ClassNotFoundException e) { - // fallback to caconfig impl 1.1 - writeConfigImpl11(contextResource, configName, props); - return; - } - - Object persistData = configurationPersistDataClass.getConstructor(Map.class).newInstance(props); - ConfigurationManager configManager = context.getService(ConfigurationManager.class); - Method persistMethod = ConfigurationManager.class.getMethod("persistConfiguration", Resource.class, String.class, configurationPersistDataClass); - persistMethod.invoke(configManager, contextResource, configName, persistData); - } - catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - /** - * Fallback: Write configuration for impl 1.1 - */ - private void writeConfigImpl11(Resource contextResource, String configName, Map<String,Object> props) throws Exception { - ConfigurationManager configManager = context.getService(ConfigurationManager.class); - Method persistMethod = ConfigurationManager.class.getMethod("persist", Resource.class, String.class, Map.class); - persistMethod.invoke(configManager, contextResource, configName, props); - } - @Test public void testValueMap() { // read config -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
