package org.openlmis.core.network; import org.mockito.Mock; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import retrofit.client.Client; import retrofit.client.Header; import retrofit.client.Request; import retrofit.client.Response; import retrofit.mime.TypedByteArray; public class MockClient implements Client { Map<String, Response> urlToResponseMap = new HashMap<>(); @Override public Response execute(Request request) throws IOException { String requestUrl = request.getUrl(); requestUrl = requestUrl.split("9091")[1]; if (urlToResponseMap.keySet().contains(requestUrl)) { return urlToResponseMap.get(requestUrl); } return null; } public static MockClient MockClientBuilder() { return new MockClient(); } public MockClient addMockedResponse(String requestUrl, int mockedStatus, String mockedReason, byte[] responseBody) { Response response = new Response(requestUrl, mockedStatus, mockedReason, new ArrayList<Header>(), new TypedByteArray("application/json", responseBody)); urlToResponseMap.put(requestUrl, response); return this; } }