package org.simbasecurity.dwclient.dropwizard.credentials;
import static org.fest.assertions.api.Assertions.*;
import static org.simbasecurity.dwclient.dropwizard.credentials.SimbaCredentialsBuilderForTests.*;
import java.util.Map;
import org.eclipse.jetty.http.HttpHeaders;
import org.junit.Test;
import org.simbasecurity.api.service.thrift.RequestData;
import org.simbasecurity.api.service.thrift.SSOToken;
import org.simbasecurity.dwclient.test.stub.simba.RequestDataBuilderForTests;
import com.google.common.collect.Maps;
public class SimbaCredentialsTest {
@Test
public void asRequestData_ReturnsRequestDataFromInternals() throws Exception {
Map<String, String> requestHeaders = Maps.newHashMap();
requestHeaders.put(HttpHeaders.WWW_AUTHENTICATE, "auth-string");
Map<String, String> requestParameters = Maps.newHashMap();
requestParameters.put("format", "timeseries");
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestUrl(SimbaCredentialsBuilderForTests.REQUESTURL + "?format=timeseries")
.withRequestHeaders(requestHeaders)
.withRequestParameters(requestParameters)
.withSsotoken("123456")
.withIsLoginRequest(true)
.build();
RequestData expected = new RequestDataBuilderForTests()
.withHostServerName(HOSTSERVERNAME)
.withRequestMethod(HTTP_METHOD)
.withRequestUrl(REQUESTURL + "?format=timeseries")
.withSimbaWebURL(SIMBAWEBURL)
.withRequestHeaders(requestHeaders)
.withRequestParameters(requestParameters)
.withSsoToken(new SSOToken("123456"))
.withLoginRequest(true)
.build();
RequestData actual = simbaCredentials.asRequestData();
assertThat(actual).isEqualTo(expected);
}
@Test
public void asRequestData_IfEmptySSOTokenOnCredentials_ReturnsRequestDataWithSSOTokenNull() throws Exception {
Map<String, String> requestHeaders = Maps.newHashMap();
requestHeaders.put(HttpHeaders.WWW_AUTHENTICATE, "auth-string");
Map<String, String> requestParameters = Maps.newHashMap();
requestParameters.put("format", "timeseries");
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestUrl(SimbaCredentialsBuilderForTests.REQUESTURL + "?format=timeseries")
.withRequestHeaders(requestHeaders)
.withRequestParameters(requestParameters)
.withSsotoken("")
.build();
RequestData expected = new RequestDataBuilderForTests()
.withHostServerName(HOSTSERVERNAME)
.withRequestMethod(HTTP_METHOD)
.withRequestUrl(REQUESTURL + "?format=timeseries")
.withSimbaWebURL(SIMBAWEBURL)
.withRequestHeaders(requestHeaders)
.withRequestParameters(requestParameters)
.withSsoToken(null)
.build();
RequestData actual = simbaCredentials.asRequestData();
assertThat(actual).isEqualTo(expected);
}
@Test
public void asRequestData_IfNoSSOTokenOnCredentials_ReturnsRequestDataWithSSOTokenNull() throws Exception {
Map<String, String> requestHeaders = Maps.newHashMap();
requestHeaders.put(HttpHeaders.WWW_AUTHENTICATE, "auth-string");
Map<String, String> requestParameters = Maps.newHashMap();
requestParameters.put("format", "timeseries");
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestUrl(SimbaCredentialsBuilderForTests.REQUESTURL + "?format=timeseries")
.withRequestHeaders(requestHeaders)
.withRequestParameters(requestParameters)
.withSsotoken(null)
.build();
RequestData expected = new RequestDataBuilderForTests()
.withHostServerName(HOSTSERVERNAME)
.withRequestMethod(HTTP_METHOD)
.withRequestUrl(REQUESTURL + "?format=timeseries")
.withSimbaWebURL(SIMBAWEBURL)
.withRequestHeaders(requestHeaders)
.withRequestParameters(requestParameters)
.withSsoToken(null)
.build();
RequestData actual = simbaCredentials.asRequestData();
assertThat(actual).isEqualTo(expected);
}
@Test
public void getUserAgentHeader_WhenHeaderIsNull_ReturnEmptyString() throws Exception {
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestHeaders(null)
.build();
assertThat(simbaCredentials.getUserAgentHeader()).isNull();
}
@Test
public void getUserAgentHeader_WhenRequestHeadersIsNull_ReturnNull() throws Exception {
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestHeaders(null)
.build();
assertThat(simbaCredentials.getUserAgentHeader()).isNull();
}
@Test
public void getUserAgentHeader_WhenHeadersDoesNotContainUserAgentHeader_ReturnNull() throws Exception {
Map<String, String> requestHeaders = Maps.newHashMap();
requestHeaders.put(HttpHeaders.WWW_AUTHENTICATE, "auth-string");
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestHeaders(requestHeaders)
.build();
assertThat(simbaCredentials.getUserAgentHeader()).isNull();
}
@Test
public void getUserAgentHeader_WhenUserAgentHeaderIsNull_ReturnEmptyString() throws Exception {
Map<String, String> requestHeaders = Maps.newHashMap();
requestHeaders.put(HttpHeaders.USER_AGENT, null);
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestHeaders(requestHeaders)
.build();
assertThat(simbaCredentials.getUserAgentHeader()).isNull();
}
@Test
public void getUserAgentHeader_WhenUserAgentHeaderIsNotNull_ReturnUserAgentHeader() throws Exception {
String userAgentHeader = "mozilla";
Map<String, String> requestHeaders = Maps.newHashMap();
requestHeaders.put(HttpHeaders.USER_AGENT, userAgentHeader);
SimbaCredentials simbaCredentials = new SimbaCredentialsBuilderForTests()
.withRequestHeaders(requestHeaders)
.build();
assertThat(simbaCredentials.getUserAgentHeader()).isEqualTo(userAgentHeader);
}
}