CallTest.java 文件源码

java
阅读 56 收藏 0 点赞 0 评论 0

项目:PriorityOkHttp 作者:
/**
 * This test puts a request in front of one that is to be canceled, so that it is canceled before
 * I/O takes place.
 */
@Test public void canceledBeforeIOSignalsOnFailure() throws Exception {
  client.dispatcher().setMaxRequests(1); // Force requests to be executed serially.

  Request requestA = new Request.Builder().url(server.url("/a")).build();
  Request requestB = new Request.Builder().url(server.url("/b")).build();
  final Call callA = client.newCall(requestA);
  final Call callB = client.newCall(requestB);

  server.setDispatcher(new Dispatcher() {
    char nextResponse = 'A';

    @Override public MockResponse dispatch(RecordedRequest request) {
      callB.cancel();
      return new MockResponse().setBody(Character.toString(nextResponse++));
    }
  });

  callA.enqueue(callback);
  callB.enqueue(callback);
  assertEquals("/a", server.takeRequest().getPath());

  callback.await(requestA.url()).assertBody("A");
  // At this point we know the callback is ready, and that it will receive a cancel failure.
  callback.await(requestB.url()).assertFailure("Canceled");
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号