package ph.devcon.android.test.base; import android.util.Log; import com.squareup.okhttp.Cache; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.mockwebserver.MockWebServer; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import dagger.Module; import dagger.Provides; import ph.devcon.android.DevConApplication; import ph.devcon.android.base.api.ApiRequestInterceptor; import retrofit.RestAdapter; import retrofit.client.OkClient; /** * Created by lope on 11/16/14. */ @Module(includes = MockerTestModule.class, library = true, complete = true, overrides = true) public class FakeAPITestModule { @Provides public RestAdapter provideRestAdapter(MockWebServer mockWebServer) { int SIZE_OF_CACHE = 1024; OkHttpClient ok = new OkHttpClient(); ok.setReadTimeout(30, TimeUnit.SECONDS); ok.setConnectTimeout(30, TimeUnit.SECONDS); try { Cache responseCache = new Cache(DevConApplication.getInstance().getCacheDir(), SIZE_OF_CACHE); ok.setCache(responseCache); } catch (Exception e) { Log.d("OkHttp", "Unable to set http cache", e); } Executor executor = Executors.newCachedThreadPool(); return new RestAdapter.Builder() .setExecutors(executor, executor) .setClient(new OkClient(ok)) .setEndpoint(mockWebServer.getUrl("/").toString()) .setRequestInterceptor(new ApiRequestInterceptor()) .build(); } }