Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ed1122a
commit fbbf07c
Showing
3 changed files
with
207 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
121 changes: 121 additions & 0 deletions
121
retrofit/src/test/java/retrofit/client/OkClientTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
package retrofit.client; | ||
|
||
import com.google.common.io.ByteStreams; | ||
import com.squareup.okhttp.Headers; | ||
import com.squareup.okhttp.MediaType; | ||
import com.squareup.okhttp.Protocol; | ||
import com.squareup.okhttp.RequestBody; | ||
import com.squareup.okhttp.ResponseBody; | ||
import java.io.IOException; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import okio.Buffer; | ||
import okio.BufferedSource; | ||
import org.junit.Test; | ||
import retrofit.mime.TypedInput; | ||
import retrofit.mime.TypedString; | ||
|
||
import static org.assertj.core.api.Assertions.assertThat; | ||
import static retrofit.TestingUtils.assertBytes; | ||
|
||
public final class OkClientTest { | ||
private static final String HOST = "http://example.com"; | ||
|
||
@Test public void get() { | ||
Request request = new Request("GET", HOST + "/foo/bar/?kit=kat", null, null); | ||
com.squareup.okhttp.Request okRequest = OkClient.createRequest(request); | ||
|
||
assertThat(okRequest.method()).isEqualTo("GET"); | ||
assertThat(okRequest.urlString()).isEqualTo(HOST + "/foo/bar/?kit=kat"); | ||
assertThat(okRequest.headers().size()).isEqualTo(0); | ||
assertThat(okRequest.body()).isNull(); | ||
} | ||
|
||
@Test public void post() throws IOException { | ||
TypedString body = new TypedString("hi"); | ||
Request request = new Request("POST", HOST + "/foo/bar/", null, body); | ||
com.squareup.okhttp.Request okRequest = OkClient.createRequest(request); | ||
|
||
assertThat(okRequest.method()).isEqualTo("POST"); | ||
assertThat(okRequest.urlString()).isEqualTo(HOST + "/foo/bar/"); | ||
assertThat(okRequest.headers().size()).isEqualTo(0); | ||
|
||
RequestBody okBody = okRequest.body(); | ||
assertThat(okBody).isNotNull(); | ||
|
||
Buffer buffer = new Buffer(); | ||
okBody.writeTo(buffer); | ||
assertThat(buffer.readUtf8()).isEqualTo("hi"); | ||
} | ||
|
||
@Test public void headers() { | ||
List<Header> headers = new ArrayList<Header>(); | ||
headers.add(new Header("kit", "kat")); | ||
headers.add(new Header("foo", "bar")); | ||
Request request = new Request("GET", HOST + "/this/", headers, null); | ||
com.squareup.okhttp.Request okRequest = OkClient.createRequest(request); | ||
|
||
Headers okHeaders = okRequest.headers(); | ||
assertThat(okHeaders.size()).isEqualTo(2); | ||
assertThat(okHeaders.get("kit")).isEqualTo("kat"); | ||
assertThat(okHeaders.get("foo")).isEqualTo("bar"); | ||
} | ||
|
||
@Test public void response() throws IOException { | ||
ResponseBody body = new ResponseBody() { | ||
@Override public MediaType contentType() { | ||
return MediaType.parse("text/plain"); | ||
} | ||
|
||
@Override public long contentLength() { | ||
return 5; | ||
} | ||
|
||
@Override public BufferedSource source() { | ||
return new Buffer().writeUtf8("hello"); | ||
} | ||
}; | ||
com.squareup.okhttp.Response okResponse = new com.squareup.okhttp.Response.Builder() | ||
.code(200).message("OK") | ||
.body(body) | ||
.addHeader("foo", "bar") | ||
.addHeader("kit", "kat") | ||
.protocol(Protocol.HTTP_1_1) | ||
.request(new com.squareup.okhttp.Request.Builder() | ||
.url(HOST + "/foo/bar/") | ||
.get() | ||
.build()) | ||
.build(); | ||
Response response = OkClient.parseResponse(okResponse); | ||
|
||
assertThat(response.getUrl()).isEqualTo(HOST + "/foo/bar/"); | ||
assertThat(response.getStatus()).isEqualTo(200); | ||
assertThat(response.getReason()).isEqualTo("OK"); | ||
assertThat(response.getHeaders()).hasSize(2) // | ||
.containsOnly(new Header("foo", "bar"), new Header("kit", "kat")); | ||
TypedInput responseBody = response.getBody(); | ||
assertThat(responseBody.mimeType()).isEqualTo("text/plain"); | ||
assertBytes(ByteStreams.toByteArray(responseBody.in()), "hello"); | ||
} | ||
|
||
@Test public void emptyResponse() throws IOException { | ||
com.squareup.okhttp.Response okResponse = new com.squareup.okhttp.Response.Builder() | ||
.code(200).message("OK") | ||
.addHeader("foo", "bar") | ||
.addHeader("kit", "kat") | ||
.protocol(Protocol.HTTP_1_1) | ||
.request(new com.squareup.okhttp.Request.Builder() | ||
.url(HOST + "/foo/bar/") | ||
.get() | ||
.build()) | ||
.build(); | ||
Response response = OkClient.parseResponse(okResponse); | ||
|
||
assertThat(response.getUrl()).isEqualTo(HOST + "/foo/bar/"); | ||
assertThat(response.getStatus()).isEqualTo(200); | ||
assertThat(response.getReason()).isEqualTo("OK"); | ||
assertThat(response.getHeaders()).hasSize(2) // | ||
.containsExactly(new Header("foo", "bar"), new Header("kit", "kat")); | ||
assertThat(response.getBody()).isNull(); | ||
} | ||
} |