diff options
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.java | 48 |
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()); + } } |