package org.opendaylight.aaa.odl;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import org.opendaylight.aaa.api.Claim;
import org.opendaylight.aaa.api.CredentialAuth;
import org.opendaylight.aaa.api.PasswordCredentials;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Filter;
-import org.osgi.framework.ServiceEvent;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceReference;
@Mock
private CredentialAuth<PasswordCredentials> credAuth;
- @Mock
- private BundleContext ctx;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- doReturn(mock(Filter.class)).when(ctx).createFilter(anyString());
}
- @Test(expected = IllegalStateException.class)
- public void testAuthenticatedNoDelegate() throws Exception {
- CredentialServiceAuthProvider credentialServiceAuthProvider = new CredentialServiceAuthProvider(ctx);
- credentialServiceAuthProvider.authenticated("user", "pwd");
- }
@Test
public void testAuthenticatedTrue() throws Exception {
ServiceReference serviceRef = mock(ServiceReference.class);
ServiceListenerAnswer answer = new ServiceListenerAnswer();
- doAnswer(answer).when(ctx).addServiceListener(any(ServiceListener.class), anyString());
Claim claim = mock(Claim.class);
doReturn("domain").when(claim).domain();
doReturn(claim).when(credAuth).authenticate(any(PasswordCredentials.class));
- doReturn(credAuth).when(ctx).getService(serviceRef);
- CredentialServiceAuthProvider credentialServiceAuthProvider = new CredentialServiceAuthProvider(ctx);
-
- answer.serviceListener.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, serviceRef));
- assertNotNull(answer.serviceListener);
-
+ CredentialServiceAuthProvider credentialServiceAuthProvider = new CredentialServiceAuthProvider(credAuth);
assertTrue(credentialServiceAuthProvider.authenticated("user", "pwd"));
}
@Test
public void testAuthenticatedFalse() throws Exception {
- ServiceReference serviceRef = mock(ServiceReference.class);
-
- ServiceListenerAnswer answer = new ServiceListenerAnswer();
- doAnswer(answer).when(ctx).addServiceListener(any(ServiceListener.class), anyString());
-
doThrow(AuthenticationException.class).when(credAuth).authenticate(any(PasswordCredentials.class));
-
- doReturn(credAuth).when(ctx).getService(serviceRef);
- CredentialServiceAuthProvider credentialServiceAuthProvider = new CredentialServiceAuthProvider(ctx);
-
- answer.serviceListener.serviceChanged(new ServiceEvent(ServiceEvent.REGISTERED, serviceRef));
- assertNotNull(answer.serviceListener);
-
+ CredentialServiceAuthProvider credentialServiceAuthProvider = new CredentialServiceAuthProvider(credAuth);
assertFalse(credentialServiceAuthProvider.authenticated("user", "pwd"));
}