package com.statscollector.application.authentication;
import static org.junit.Assert.assertEquals;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.Credentials;
import org.apache.http.client.CredentialsProvider;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import com.statscollector.application.config.WebConfig;
public class AbstractAuthenticationHelperTest {
protected static final String TEST_USERNAME = "testUser";
protected static final String TEST_PASSWORD = "testPass";
protected static final Integer TEST_PORT = 8080;
protected static final String TEST_HOST = "testHost";
private final WebConfig testConfig = Mockito.mock(WebConfig.class);
private AbstractAuthenticationHelper testHelper;
@Before
public void setUp() throws Exception {
Mockito.when(testConfig.getUsername()).thenReturn(TEST_USERNAME);
Mockito.when(testConfig.getActualPassword()).thenReturn(TEST_PASSWORD);
testHelper = new AbstractAuthenticationHelper() {
@Override
protected WebConfig getConfig() {
return testConfig;
}
};
}
@Test
public void credentialsProviderBeanTest() {
CredentialsProvider credentialsProvider = testHelper.credentialsProvider();
Credentials credentials = credentialsProvider.getCredentials(AuthScope.ANY);
assertEquals(TEST_USERNAME, credentials.getUserPrincipal().getName());
assertEquals(TEST_PASSWORD, credentials.getPassword());
Credentials sameCredentials = credentialsProvider.getCredentials(AuthScope.ANY);
assertEquals(credentials, sameCredentials);
// Now Change Config
String newPassword = "NewPassword";
Mockito.when(testConfig.getActualPassword()).thenReturn(newPassword);
credentialsProvider = testHelper.credentialsProvider();
Credentials newCredentials = credentialsProvider.getCredentials(AuthScope.ANY);
assertEquals(TEST_USERNAME, newCredentials.getUserPrincipal().getName());
assertEquals(newPassword, newCredentials.getPassword());
}
}