package com.koushikdutta.ion.mock; import com.koushikdutta.async.future.Future; import com.koushikdutta.async.future.FutureCallback; import com.koushikdutta.async.future.SimpleFuture; import com.koushikdutta.async.http.AsyncHttpRequest; import com.koushikdutta.async.http.Headers; import com.koushikdutta.ion.HeadersResponse; import com.koushikdutta.ion.Response; import com.koushikdutta.ion.ResponseServedFrom; import com.koushikdutta.ion.future.ResponseFuture; /** * Created by koush on 3/6/15. */ public class MockResponseFuture<T> extends SimpleFuture<T> implements ResponseFuture<T> { private AsyncHttpRequest request; public MockResponseFuture(AsyncHttpRequest request) { this.request = request; } protected Headers getHeaders() { return new Headers(); } protected HeadersResponse getHeadersResponse() { return new HeadersResponse(200, "OK", getHeaders()); } private Response<T> getResponse(Exception e, T result) { return new Response<T>(request, ResponseServedFrom.LOADED_FROM_NETWORK, getHeadersResponse(), e, result); } @Override public Future<Response<T>> withResponse() { final SimpleFuture<Response<T>> ret = new SimpleFuture<Response<T>>(); setCallback(new FutureCallback<T>() { @Override public void onCompleted(Exception e, T result) { ret.setComplete(getResponse(e, result)); } }); ret.setParent(this); return ret; } }