summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/test
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-09-14 11:25:57 +0000
committerAlex Rudyy <orudyy@apache.org>2013-09-14 11:25:57 +0000
commitfffdab69bb44b9b9e8361a9d0ad250f48129a117 (patch)
tree4103d8393d3cb93181f849142fcbe83d7b305c0e /qpid/java/broker/src/test
parent2af29db3885316bbb42c99f423cbc9f50619c925 (diff)
downloadqpid-python-fffdab69bb44b9b9e8361a9d0ad250f48129a117.tar.gz
QPID-5138: Integrate preferences provider into Broker model, create association between preferences provider and authentication provider, add preferences provider recoverer and factory
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1523218 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/test')
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecovererTest.java126
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java6
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java5
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecovererTest.java75
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java3
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java7
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java118
7 files changed, 334 insertions, 6 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecovererTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecovererTest.java
new file mode 100644
index 0000000000..36e485844f
--- /dev/null
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecovererTest.java
@@ -0,0 +1,126 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.configuration.startup;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
+import org.apache.qpid.server.configuration.RecovererProvider;
+import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.PreferencesProvider;
+import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
+import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider;
+import org.apache.qpid.server.model.adapter.PreferencesProviderCreator;
+import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
+import org.apache.qpid.server.plugin.QpidServiceLoader;
+import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
+import org.apache.qpid.server.util.BrokerTestHelper;
+import org.apache.qpid.test.utils.QpidTestCase;
+import org.apache.qpid.test.utils.TestFileUtils;
+
+public class AuthenticationProviderRecovererTest extends QpidTestCase
+{
+ private Broker _broker;
+ private AuthenticationProviderRecoverer _recoverer;
+ private ConfigurationEntryStore _configurationStore;
+ private PreferencesProviderCreator _preferencesProviderCreator;
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ BrokerTestHelper.setUp();
+ _broker = BrokerTestHelper.createBrokerMock();
+ _preferencesProviderCreator = new PreferencesProviderCreator();
+ QpidServiceLoader<AuthenticationManagerFactory> serviceLoader = new QpidServiceLoader<AuthenticationManagerFactory>();
+ AuthenticationProviderFactory authenticationProviderFactory = new AuthenticationProviderFactory(serviceLoader, _preferencesProviderCreator);
+ StoreConfigurationChangeListener storeChangeListener = mock(StoreConfigurationChangeListener.class);
+ _recoverer = new AuthenticationProviderRecoverer(authenticationProviderFactory, storeChangeListener);
+ _configurationStore = mock(ConfigurationEntryStore.class);
+ }
+
+ public void tearDown() throws Exception
+ {
+ try
+ {
+ BrokerTestHelper.tearDown();
+ }
+ finally
+ {
+ super.tearDown();
+ }
+ }
+
+ public void testRecoverAuthenticationProviderWithPreferencesProvider()
+ {
+ Map<String, Object> authenticationAttributes = new HashMap<String, Object>();
+ authenticationAttributes.put(AuthenticationManagerFactory.ATTRIBUTE_TYPE, AnonymousAuthenticationManagerFactory.PROVIDER_TYPE);
+ authenticationAttributes.put(AuthenticationProvider.NAME, "test-authenticator");
+ UUID authenticationId = UUID.randomUUID();
+
+ final PreferencesProviderRecoverer preferencesRecoverer = new PreferencesProviderRecoverer(_preferencesProviderCreator);
+ RecovererProvider recovererProvider = new RecovererProvider()
+ {
+ @Override
+ public ConfiguredObjectRecoverer<? extends ConfiguredObject> getRecoverer(String type)
+ {
+ return preferencesRecoverer;
+ }
+ };
+
+ Map<String, Object> preferencesAttributes = new HashMap<String, Object>();
+ UUID preferencesId = UUID.randomUUID();
+ preferencesAttributes.put(PreferencesProvider.TYPE, FileSystemPreferencesProvider.class);
+ preferencesAttributes.put(PreferencesProvider.NAME, "test-provider");
+ File file = TestFileUtils.createTempFile(this, ".prefs.json", "{\"test_user\":{\"pref1\": \"pref1Value\", \"pref2\": 1.0} }");
+ preferencesAttributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
+ ConfigurationEntry preferencesEntry = new ConfigurationEntry(preferencesId, PreferencesProvider.class.getSimpleName(), preferencesAttributes, Collections.<UUID>emptySet(), _configurationStore);
+ when(_configurationStore.getEntry(preferencesId)).thenReturn(preferencesEntry);
+
+ ConfigurationEntry authenticationProviderEntry = new ConfigurationEntry(authenticationId, AuthenticationProvider.class.getSimpleName(), authenticationAttributes, Collections.singleton(preferencesId), _configurationStore);
+ try
+ {
+ AuthenticationProvider authenticationProvider = _recoverer.create(recovererProvider, authenticationProviderEntry, _broker);
+ assertNotNull("Authentication provider was not recovered", authenticationProvider);
+ assertEquals("Unexpected name", "test-authenticator", authenticationProvider.getName());
+ assertEquals("Unexpected id", authenticationId, authenticationProvider.getId());
+ PreferencesProvider preferencesProvider = authenticationProvider.getPreferencesProvider();
+ assertNotNull("Preferences provider was not recovered", preferencesProvider);
+ assertEquals("Unexpected path", file.getAbsolutePath(), preferencesProvider.getAttribute(FileSystemPreferencesProvider.PATH));
+ }
+ finally
+ {
+ file.delete();
+ }
+ }
+
+}
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
index 589f0fc5af..e6db5af222 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/BrokerRecovererTest.java
@@ -55,6 +55,8 @@ import org.apache.qpid.server.model.adapter.AccessControlProviderFactory;
import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
import org.apache.qpid.server.model.adapter.GroupProviderFactory;
import org.apache.qpid.server.model.adapter.PortFactory;
+import org.apache.qpid.server.model.adapter.PreferencesProviderCreator;
+import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.stats.StatisticsGatherer;
import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
@@ -76,7 +78,9 @@ public class BrokerRecovererTest extends TestCase
super.setUp();
_brokerRecoverer = new BrokerRecoverer(mock(AuthenticationProviderFactory.class), mock(GroupProviderFactory.class), mock(AccessControlProviderFactory.class), mock(PortFactory.class),
- mock(StatisticsGatherer.class), mock(VirtualHostRegistry.class), mock(LogRecorder.class), mock(RootMessageLogger.class), mock(TaskExecutor.class), mock(BrokerOptions.class));
+ mock(PreferencesProviderCreator.class),
+ mock(StatisticsGatherer.class), mock(VirtualHostRegistry.class), mock(LogRecorder.class), mock(RootMessageLogger.class), mock(TaskExecutor.class), mock(BrokerOptions.class),
+ mock(StoreConfigurationChangeListener.class));
when(_brokerEntry.getId()).thenReturn(_brokerId);
when(_brokerEntry.getChildren()).thenReturn(_brokerEntryChildren);
when(_brokerEntry.getAttributes()).thenReturn(Collections.<String, Object>singletonMap(Broker.MODEL_VERSION, Model.MODEL_VERSION));
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
index b958ba1f56..9e2f2fcf32 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/DefaultRecovererProviderTest.java
@@ -35,6 +35,7 @@ import org.apache.qpid.server.model.Plugin;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.TrustStore;
import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.stats.StatisticsGatherer;
import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
@@ -55,7 +56,9 @@ public class DefaultRecovererProviderTest extends TestCase
RootMessageLogger rootMessageLogger = mock(RootMessageLogger.class);
TaskExecutor taskExecutor = mock(TaskExecutor.class);
- DefaultRecovererProvider provider = new DefaultRecovererProvider(statisticsGatherer, virtualHostRegistry, logRecorder, rootMessageLogger, taskExecutor, mock(BrokerOptions.class));
+ DefaultRecovererProvider provider = new DefaultRecovererProvider(statisticsGatherer, virtualHostRegistry,
+ logRecorder, rootMessageLogger, taskExecutor, mock(BrokerOptions.class),
+ mock(StoreConfigurationChangeListener.class));
for (String configuredObjectType : supportedTypes)
{
ConfiguredObjectRecoverer<?> recovever = provider.getRecoverer(configuredObjectType);
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecovererTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecovererTest.java
new file mode 100644
index 0000000000..aba9e1e5fa
--- /dev/null
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecovererTest.java
@@ -0,0 +1,75 @@
+package org.apache.qpid.server.configuration.startup;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.qpid.server.configuration.ConfigurationEntry;
+import org.apache.qpid.server.configuration.ConfigurationEntryStore;
+import org.apache.qpid.server.configuration.RecovererProvider;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.PreferencesProvider;
+import org.apache.qpid.server.model.adapter.FileSystemPreferencesProvider;
+import org.apache.qpid.server.model.adapter.PreferencesProviderCreator;
+import org.apache.qpid.server.util.BrokerTestHelper;
+import org.apache.qpid.test.utils.QpidTestCase;
+import org.apache.qpid.test.utils.TestFileUtils;
+
+public class PreferencesProviderRecovererTest extends QpidTestCase
+{
+ private AuthenticationProvider _authenticationProvider;
+ private Broker _broker;
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ BrokerTestHelper.setUp();
+ _authenticationProvider = mock(AuthenticationProvider.class);
+ _broker = BrokerTestHelper.createBrokerMock();
+ when(_authenticationProvider.getParent(Broker.class)).thenReturn(_broker);
+ }
+
+ public void tearDown() throws Exception
+ {
+ try
+ {
+ BrokerTestHelper.tearDown();
+ }
+ finally
+ {
+ super.tearDown();
+ }
+ }
+
+ public void testRecoverFileSystemPreferencesProvider()
+ {
+ PreferencesProviderRecoverer recoverer = new PreferencesProviderRecoverer(new PreferencesProviderCreator());
+
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ UUID id = UUID.randomUUID();
+ attributes.put(PreferencesProvider.TYPE, FileSystemPreferencesProvider.class);
+ attributes.put(PreferencesProvider.NAME, "test-provider");
+ File file = TestFileUtils.createTempFile(this, ".prefs.json", "{\"test_user\":{\"pref1\": \"pref1Value\", \"pref2\": 1.0} }");
+ try
+ {
+ attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
+ ConfigurationEntry entry = new ConfigurationEntry(id, PreferencesProvider.class.getSimpleName(), attributes, Collections.<UUID>emptySet(), mock(ConfigurationEntryStore.class));
+ PreferencesProvider provider = recoverer.create(mock(RecovererProvider.class), entry, _authenticationProvider);
+ assertNotNull("Preferences provider was not recovered", provider);
+ assertEquals("Unexpected name", "test-provider", provider.getName());
+ assertEquals("Unexpected id", id, provider.getId());
+ assertEquals("Unexpected path", file.getAbsolutePath(), provider.getAttribute(FileSystemPreferencesProvider.PATH));
+ }
+ finally
+ {
+ file.delete();
+ }
+ }
+
+}
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
index 46a81e6454..72cf09585c 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/ConfiguredObjectStateTransitionTest.java
@@ -35,6 +35,7 @@ import org.apache.qpid.server.configuration.ConfigurationEntryStore;
import org.apache.qpid.server.configuration.ConfiguredObjectRecoverer;
import org.apache.qpid.server.configuration.RecovererProvider;
import org.apache.qpid.server.configuration.startup.DefaultRecovererProvider;
+import org.apache.qpid.server.configuration.store.StoreConfigurationChangeListener;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
import org.apache.qpid.server.security.group.FileGroupManagerFactory;
@@ -62,7 +63,7 @@ public class ConfiguredObjectStateTransitionTest extends QpidTestCase
when(_broker.getTaskExecutor()).thenReturn(executor);
_recovererProvider = new DefaultRecovererProvider(statisticsGatherer, _broker.getVirtualHostRegistry(),
- _broker.getLogRecorder(), _broker.getRootMessageLogger(), executor, new BrokerOptions());
+ _broker.getLogRecorder(), _broker.getRootMessageLogger(), executor, new BrokerOptions(), mock(StoreConfigurationChangeListener.class));
_store = mock(ConfigurationEntryStore.class);
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java
index fbb1e4105f..ed22843e07 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java
@@ -43,6 +43,7 @@ import org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthenticat
public class AuthenticationProviderFactoryTest extends TestCase
{
+ private PreferencesProviderCreator _preferencesProviderCreator = mock(PreferencesProviderCreator.class);
public void testCreatePasswordCredentialManagingAuthenticationProvider()
{
@@ -95,7 +96,7 @@ public class AuthenticationProviderFactoryTest extends TestCase
Collections.singleton(authenticationManagerFactory));
when(authenticationManagerFactory.createInstance(attributes)).thenReturn(authenticationManager);
- AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(authManagerFactoryServiceLoader);
+ AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(authManagerFactoryServiceLoader, _preferencesProviderCreator);
AuthenticationProvider provider = null;
if (create)
@@ -124,7 +125,7 @@ public class AuthenticationProviderFactoryTest extends TestCase
when(managerFactory.createInstance(any(Map.class))).thenReturn(mock(PrincipalDatabaseAuthenticationManager.class));
when(loader.atLeastOneInstanceOf(AuthenticationManagerFactory.class)).thenReturn(Collections.singleton(managerFactory));
- AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(loader);
+ AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(loader, _preferencesProviderCreator);
UUID randomUUID = UUID.randomUUID();
AuthenticationProvider provider = providerFactory.create(randomUUID, broker, new HashMap<String, Object>());
@@ -145,7 +146,7 @@ public class AuthenticationProviderFactoryTest extends TestCase
when(managerFactory.createInstance(any(Map.class))).thenReturn(mock(AuthenticationManager.class));
when(loader.atLeastOneInstanceOf(AuthenticationManagerFactory.class)).thenReturn(Collections.singleton(managerFactory));
- AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(loader);
+ AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(loader, _preferencesProviderCreator);
UUID id = UUID.randomUUID();
AuthenticationProvider provider = providerFactory.create(id, broker, new HashMap<String, Object>());
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java
new file mode 100644
index 0000000000..fcfb1dd0ea
--- /dev/null
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderFactoryTest.java
@@ -0,0 +1,118 @@
+package org.apache.qpid.server.model.adapter;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.AuthenticationProvider;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.PreferencesProvider;
+import org.apache.qpid.server.util.BrokerTestHelper;
+import org.apache.qpid.test.utils.QpidTestCase;
+import org.apache.qpid.test.utils.TestFileUtils;
+
+public class FileSystemPreferencesProviderFactoryTest extends QpidTestCase
+{
+ private AuthenticationProvider _authenticationProvider;
+ private Broker _broker;
+ private FileSystemPreferencesProviderFactory _factory;
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ BrokerTestHelper.setUp();
+ _authenticationProvider = mock(AuthenticationProvider.class);
+ _broker = BrokerTestHelper.createBrokerMock();
+ when(_authenticationProvider.getParent(Broker.class)).thenReturn(_broker);
+ _factory = new FileSystemPreferencesProviderFactory();
+ }
+
+ public void tearDown() throws Exception
+ {
+ try
+ {
+ BrokerTestHelper.tearDown();
+ }
+ finally
+ {
+ super.tearDown();
+ }
+ }
+
+ public void testGetType()
+ {
+ assertEquals(FileSystemPreferencesProvider.PROVIDER_TYPE, _factory.getType());
+ }
+
+ public void testCreateInstanceRecovering()
+ {
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ UUID id = UUID.randomUUID();
+ attributes.put(PreferencesProvider.TYPE, FileSystemPreferencesProvider.class);
+ attributes.put(PreferencesProvider.NAME, "test-provider");
+ File file = TestFileUtils.createTempFile(this, ".prefs.json", "{\"test_user\":{\"pref1\": \"pref1Value\", \"pref2\": 1.0} }");
+ try
+ {
+ attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
+ PreferencesProvider provider = _factory.createInstance(id, attributes, _authenticationProvider);
+ assertNotNull("Preferences provider was not instantiated", provider);
+ assertEquals("Unexpected name", "test-provider", provider.getName());
+ assertEquals("Unexpected id", id, provider.getId());
+ assertEquals("Unexpected path", file.getAbsolutePath(),
+ provider.getAttribute(FileSystemPreferencesProvider.PATH));
+ }
+ finally
+ {
+ file.delete();
+ }
+ }
+
+ public void testCreateInstanceRecoveringWhenPrefStoreDoesNotExist()
+ {
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ UUID id = UUID.randomUUID();
+ attributes.put(PreferencesProvider.TYPE, FileSystemPreferencesProvider.class);
+ attributes.put(PreferencesProvider.NAME, "test-provider");
+ File file = new File(TMP_FOLDER, UUID.randomUUID() + "prefs.json");
+ assertFalse("Preferences store file should not exist", file.exists());
+ try
+ {
+ attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
+ _factory.createInstance(id, attributes, _authenticationProvider);
+ }
+ catch (IllegalConfigurationException e)
+ {
+ // exception should be thrown if preferences store does not exist
+ }
+ }
+
+ public void testCreateInstanceNotRecovering()
+ {
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ UUID id = UUID.randomUUID();
+ attributes.put(PreferencesProvider.TYPE, FileSystemPreferencesProvider.class);
+ attributes.put(PreferencesProvider.NAME, "test-provider");
+ File file = new File(TMP_FOLDER, UUID.randomUUID() + "prefs.json");
+ assertFalse("Preferences store file should not exist", file.exists());
+ try
+ {
+ attributes.put(FileSystemPreferencesProvider.PATH, file.getAbsolutePath());
+ PreferencesProvider provider = _factory.createInstance(id, attributes, _authenticationProvider);
+ assertNotNull("Preferences provider was not recovered", provider);
+ assertEquals("Unexpected name", "test-provider", provider.getName());
+ assertEquals("Unexpected id", id, provider.getId());
+ assertEquals("Unexpected path", file.getAbsolutePath(), provider.getAttribute(FileSystemPreferencesProvider.PATH));
+ assertTrue("Preferences store file should exist", file.exists());
+ }
+ finally
+ {
+ file.delete();
+ }
+ }
+
+}