package org.robolectric.shadows.httpclient; import org.apache.http.HttpException; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.conn.ConnectionKeepAliveStrategy; import org.apache.http.impl.client.DefaultRequestDirector; import org.apache.http.protocol.HttpContext; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.shadows.httpclient.FakeHttp; import org.robolectric.util.TestRunnerWithManifest; import java.io.IOException; import static org.junit.Assert.*; @RunWith(TestRunnerWithManifest.class) public class FakeHttpTest { @Test public void httpRequestWasSent_ReturnsTrueIfRequestWasSent() throws IOException, HttpException { makeRequest("http://example.com"); assertTrue(FakeHttp.httpRequestWasMade()); } @Test public void httpRequestWasMade_ReturnsFalseIfNoRequestWasMade() { assertFalse(FakeHttp.httpRequestWasMade()); } @Test public void httpRequestWasMade_returnsTrueIfRequestMatchingGivenRuleWasMade() throws IOException, HttpException { makeRequest("http://example.com"); assertTrue(FakeHttp.httpRequestWasMade("http://example.com")); } @Test public void httpRequestWasMade_returnsFalseIfNoRequestMatchingGivenRuleWasMAde() throws IOException, HttpException { makeRequest("http://example.com"); assertFalse(FakeHttp.httpRequestWasMade("http://example.org")); } private void makeRequest(String uri) throws HttpException, IOException { FakeHttp.addPendingHttpResponse(200, "a happy response body"); ConnectionKeepAliveStrategy connectionKeepAliveStrategy = new ConnectionKeepAliveStrategy() { @Override public long getKeepAliveDuration(HttpResponse httpResponse, HttpContext httpContext) { return 0; } }; DefaultRequestDirector requestDirector = new DefaultRequestDirector(null, null, null, connectionKeepAliveStrategy, null, null, null, null, null, null, null, null); requestDirector.execute(null, new HttpGet(uri), null); } }