package oauth.signpost.commonshttp;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import oauth.signpost.http.HttpRequest;
import oauth.signpost.mocks.OAuthProviderMock;
import org.apache.ogt.http.HttpResponse;
import org.apache.ogt.http.ProtocolVersion;
import org.apache.ogt.http.StatusLine;
import org.apache.ogt.http.client.HttpClient;
import org.apache.ogt.http.client.methods.HttpUriRequest;
import org.apache.ogt.http.entity.InputStreamEntity;
import org.apache.ogt.http.message.BasicStatusLine;
import org.mockito.Mockito;
@SuppressWarnings("serial")
public class CommonHttpOAuthProviderMock extends CommonsHttpOAuthProvider implements
OAuthProviderMock {
private HttpClient httpClientMock;
public CommonHttpOAuthProviderMock(String requestTokenUrl, String accessTokenUrl,
String websiteUrl) {
super(requestTokenUrl, accessTokenUrl, websiteUrl);
}
@Override
protected oauth.signpost.http.HttpResponse sendRequest(HttpRequest request) throws Exception {
HttpResponse resp = httpClientMock.execute((HttpUriRequest) request.unwrap());
return new HttpResponseAdapter(resp);
}
public void mockConnection(String responseBody) throws Exception {
HttpResponse response = mock(HttpResponse.class);
this.httpClientMock = mock(HttpClient.class);
InputStream is = new ByteArrayInputStream(responseBody.getBytes());
InputStreamEntity entity = new InputStreamEntity(is, responseBody.length());
StatusLine statusLine = new BasicStatusLine(new ProtocolVersion("HTTP", 1, 1), 200, "OK");
when(response.getStatusLine()).thenReturn(statusLine);
when(response.getEntity()).thenReturn(entity);
when(httpClientMock.execute(Mockito.any(HttpUriRequest.class))).thenReturn(response);
}
}