summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java')
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactoryTest.java48
1 files changed, 45 insertions, 3 deletions
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 9bf80bb87e..eb721d93a0 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
@@ -22,6 +22,7 @@ package org.apache.qpid.server.model.adapter;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.any;
import java.util.Collections;
import java.util.HashMap;
@@ -30,7 +31,7 @@ import java.util.UUID;
import junit.framework.TestCase;
-import org.apache.qpid.server.configuration.ConfigurationEntry;
+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.PasswordCredentialManagingAuthenticationProvider;
@@ -64,9 +65,7 @@ public class AuthenticationProviderFactoryTest extends TestCase
QpidServiceLoader<AuthenticationManagerFactory> authManagerFactoryServiceLoader = mock(QpidServiceLoader.class);
AuthenticationManagerFactory authenticationManagerFactory = mock(AuthenticationManagerFactory.class);
- ConfigurationEntry configurationEntry = mock(ConfigurationEntry.class);
- when(configurationEntry.getId()).thenReturn(id);
Broker broker = mock(Broker.class);
when(authManagerFactoryServiceLoader.atLeastOneInstanceOf(AuthenticationManagerFactory.class)).thenReturn(
@@ -82,4 +81,47 @@ public class AuthenticationProviderFactoryTest extends TestCase
return provider;
}
+ @SuppressWarnings("unchecked")
+ public void testCreatePasswordCredentialManagingAuthenticationProviderFailsWhenAnotherOneAlreadyExist()
+ {
+ Broker broker = mock(Broker.class);
+ PasswordCredentialManagingAuthenticationProvider anotherProvider = mock(PasswordCredentialManagingAuthenticationProvider.class);
+ when(broker.getAuthenticationProviders()).thenReturn(Collections.<AuthenticationProvider>singleton(anotherProvider));
+
+ QpidServiceLoader<AuthenticationManagerFactory> loader = mock(QpidServiceLoader.class);
+ AuthenticationManagerFactory managerFactory = mock(AuthenticationManagerFactory.class);
+ when(managerFactory.createInstance(any(Map.class))).thenReturn(mock(PrincipalDatabaseAuthenticationManager.class));
+ when(loader.atLeastOneInstanceOf(AuthenticationManagerFactory.class)).thenReturn(Collections.singleton(managerFactory));
+
+ AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(loader);
+ try
+ {
+ providerFactory.create(UUID.randomUUID(), broker, new HashMap<String, Object>());
+ fail("Creation of anaother PasswordCredentialManagingAuthenticationProvider should fail");
+ }
+ catch (IllegalConfigurationException e)
+ {
+ // pass
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testCreateNonPasswordCredentialManagingAuthenticationProviderWhenAnotherOneAlreadyExist()
+ {
+ Broker broker = mock(Broker.class);
+ AuthenticationProvider anotherProvider = mock(AuthenticationProvider.class);
+ when(broker.getAuthenticationProviders()).thenReturn(Collections.singleton(anotherProvider));
+
+ QpidServiceLoader<AuthenticationManagerFactory> loader = mock(QpidServiceLoader.class);
+ AuthenticationManagerFactory managerFactory = mock(AuthenticationManagerFactory.class);
+ when(managerFactory.createInstance(any(Map.class))).thenReturn(mock(AuthenticationManager.class));
+ when(loader.atLeastOneInstanceOf(AuthenticationManagerFactory.class)).thenReturn(Collections.singleton(managerFactory));
+
+ AuthenticationProviderFactory providerFactory = new AuthenticationProviderFactory(loader);
+ UUID id = UUID.randomUUID();
+ AuthenticationProvider provider = providerFactory.create(id, broker, new HashMap<String, Object>());
+
+ assertNotNull("Provider is not created", provider);
+ assertEquals("Unexpected ID", id, provider.getId());
+ }
}