You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2021/11/26 14:58:24 UTC
[sling-org-apache-sling-testing-osgi-mock] 01/01: SLING-10940 osgi-mock: Implement MockConfigurationAdmin.getConfiguration(pid, location)
This is an automated email from the ASF dual-hosted git repository.
sseifert pushed a commit to branch feature/SLING-10940-configadmin-getconfig-location
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-osgi-mock.git
commit bf60b06cb263dbfb1a999875216237e144624a2f
Author: Stefan Seifert <st...@users.noreply.github.com>
AuthorDate: Fri Nov 26 15:57:53 2021 +0100
SLING-10940 osgi-mock: Implement MockConfigurationAdmin.getConfiguration(pid, location)
---
.../testing/mock/osgi/MockConfigurationAdmin.java | 10 ++---
.../mock/osgi/MockConfigurationAdminTest.java | 48 ++++++++++++++++++----
2 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/core/src/main/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdmin.java b/core/src/main/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdmin.java
index 5c8eda0..9059c89 100644
--- a/core/src/main/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdmin.java
+++ b/core/src/main/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdmin.java
@@ -47,6 +47,11 @@ class MockConfigurationAdmin implements ConfigurationAdmin {
}
@Override
+ public Configuration getConfiguration(final String pid, final String location) throws IOException {
+ return getConfiguration(pid);
+ }
+
+ @Override
@SuppressWarnings("squid:S1168")
public Configuration[] listConfigurations(final String filter) throws IOException, InvalidSyntaxException {
final Filter filterObject = bundleContext.createFilter(filter);
@@ -64,11 +69,6 @@ class MockConfigurationAdmin implements ConfigurationAdmin {
// --- unsupported operations ---
@Override
- public Configuration getConfiguration(final String pid, final String location) throws IOException {
- throw new UnsupportedOperationException();
- }
-
- @Override
public Configuration createFactoryConfiguration(final String factoryPid) throws IOException {
throw new UnsupportedOperationException();
}
diff --git a/core/src/test/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdminTest.java b/core/src/test/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdminTest.java
index 4cb6574..4066958 100644
--- a/core/src/test/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdminTest.java
+++ b/core/src/test/java/org/apache/sling/testing/mock/osgi/MockConfigurationAdminTest.java
@@ -20,6 +20,7 @@ package org.apache.sling.testing.mock.osgi;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -27,16 +28,17 @@ import java.io.IOException;
import org.apache.sling.testing.mock.osgi.OsgiMetadataUtilTest.ServiceWithMetadata;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
+import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.osgi.framework.Constants;
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
-
-import com.google.common.collect.ImmutableMap;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
+import com.google.common.collect.ImmutableMap;
+
public class MockConfigurationAdminTest {
private static final String[] TEST_ADAPTABLES = new String[] {
@@ -47,6 +49,13 @@ public class MockConfigurationAdminTest {
@Rule
public OsgiContext context = new OsgiContext();
+ private ConfigurationAdmin underTest;
+
+ @Before
+ public void setUp() {
+ underTest = context.getService(ConfigurationAdmin.class);
+ }
+
@Test
public void testGetConfigurationString() throws IOException {
MockOsgi.setConfigForPid(context.bundleContext(), "org.apache.sling.testing.mock.osgi.OsgiMetadataUtilTest$ServiceWithMetadata",
@@ -112,17 +121,42 @@ public class MockConfigurationAdminTest {
MockOsgi.setConfigForPid(context.bundleContext(), "Configuration2", "prop1", 2, "prop2", "A");
MockOsgi.setConfigForPid(context.bundleContext(), "Configuration3", "prop1", 3, "prop2", "A");
- final ConfigurationAdmin configurationAdmin = context.bundleContext().getService(context.bundleContext().getServiceReference(ConfigurationAdmin.class));
- final Configuration[] allConfigurations = configurationAdmin.listConfigurations("(prop1=*)");
+ final Configuration[] allConfigurations = underTest.listConfigurations("(prop1=*)");
assertEquals(3, allConfigurations.length);
- final Configuration[] prop2AConfigurations = configurationAdmin.listConfigurations("(prop2=A)");
+ final Configuration[] prop2AConfigurations = underTest.listConfigurations("(prop2=A)");
assertEquals(2, prop2AConfigurations.length);
- final Configuration[] searchForAllConfigurations = configurationAdmin.listConfigurations(null);
+ final Configuration[] searchForAllConfigurations = underTest.listConfigurations(null);
assertTrue(searchForAllConfigurations.length >= 3); // Other configurations could be registered outside this method as well
- final Configuration[] noConfigurations = configurationAdmin.listConfigurations("(nonexistingprop=nonexistingvalue)");
+ final Configuration[] noConfigurations = underTest.listConfigurations("(nonexistingprop=nonexistingvalue)");
assertNull(noConfigurations);
}
+ @Test
+ public void testGetConfigurationViaConfigAdmin_NonExisting() throws IOException {
+ Configuration config = underTest.getConfiguration("Configuration1");
+ assertNotNull(config);
+ assertEquals("Configuration1", config.getPid());
+
+ config = underTest.getConfiguration("Configuration1", "location1");
+ assertNotNull(config);
+ assertEquals("Configuration1", config.getPid());
+ }
+
+ @Test
+ public void testGetConfigurationViaConfigAdmin_Existing() throws IOException {
+ MockOsgi.setConfigForPid(context.bundleContext(), "Configuration1", "prop1", 1);
+
+ Configuration config = underTest.getConfiguration("Configuration1");
+ assertNotNull(config);
+ assertEquals("Configuration1", config.getPid());
+ assertEquals(1, config.getProperties().get("prop1"));
+
+ config = underTest.getConfiguration("Configuration1", "location1");
+ assertNotNull(config);
+ assertEquals("Configuration1", config.getPid());
+ assertEquals(1, config.getProperties().get("prop1"));
+ }
+
static class ServiceWithConfigurationPID {}
static class ServiceWithMultipleConfigurationPID {}