private MockResponse createContentResponse(String contentType, byte[] content) { MockResponse response = new MockResponse(); response.setHeader("content-type", contentType); Buffer body = new Buffer(); body.write(content); response.setBody(body); return response; }
@After public void tearDown() throws Exception { server.shutdown(); } }
public void testUserAgentIsSetInRequestHeader() throws Exception { MockWebServer server = new MockWebServer(); server.enqueue(new MockResponse().setBody("OK")); server.play(); String url = server.getUrl("/").toString(); OkHttpClient client = new OkHttpClient(); client.networkInterceptors().add(new UserAgentInterceptor("foo/bar")); Request testRequest = new Request.Builder().url(url).build() String result = client.newCall(testRequest).execute().body().string(); assertEquals("OK", result); RecordedRequest request = server.takeRequest(); assertEquals("foo/bar", request.getHeader("User-Agent")); }
@Test public void testWithResponseCompression() throws IOException { ByteArrayOutputStream capturedOutput = hookAlmostRealInterpretResponseStream(mMockEventReporter); byte[] uncompressedData = repeat(".", 1024).getBytes(); byte[] compressedData = compress(uncompressedData); MockWebServer server = new MockWebServer(); server.start(); server.enqueue(new MockResponse() .setBody(new Buffer().write(compressedData)) .addHeader("Content-Encoding: gzip")); Request request = new Request.Builder() .url(server.url("/")) .build(); Response response = mClientWithInterceptor.newCall(request).execute(); // Verify that the final output and the caller both saw the uncompressed stream. assertArrayEquals(uncompressedData, response.body().bytes()); assertArrayEquals(uncompressedData, capturedOutput.toByteArray()); // And verify that the StethoInterceptor was able to see both. Mockito.verify(mMockEventReporter) .dataReceived( anyString(), eq(compressedData.length), eq(uncompressedData.length)); server.shutdown(); }
hookAlmostRealRequestWillBeSent(mMockEventReporter); MockWebServer server = new MockWebServer(); server.start(); server.enqueue(new MockResponse() .setBody("Success!")); compress(decompressed)); Request request = new Request.Builder() .url(server.getUrl("/")) .addHeader("Content-Encoding", "gzip") .post(compressedBody) eq(compressed.length)); server.shutdown();
@Test @SuppressWarnings("unchecked") public void testImport() throws Exception { server.enqueue(new MockResponse().setBody(BATCH_CALENDAR_RESPONSE)); server.enqueue(new MockResponse().setResponseCode(201).setBody(BATCH_EVENT_RESPONSE)); server.start(); HttpUrl baseUrl = server.url(""); MicrosoftCalendarImporter importer = new MicrosoftCalendarImporter( RecordedRequest calendarBatch = server.takeRequest(); Map<String, Object> calendarBody = (Map<String, Object>) mapper.readValue(calendarBatch.getBody().readUtf8(), Map.class); RecordedRequest eventBatch = server.takeRequest(); Map<String, Object> eventRequests = (Map<String, Object>) mapper.readValue(eventBatch.getBody().readUtf8(), Map.class); Map<String, Object> eventRequest = (Map<String, Object>) ((List<Map<String, Object>>) eventRequests.get("requests")).get(0);
@Test public void testExport() throws Exception { server.enqueue(new MockResponse().setBody(CALENDARS_RESPONSE)); server.enqueue(new MockResponse().setBody(CALENDAR1_EVENTS_RESPONSE)); server.enqueue(new MockResponse().setBody(CALENDAR2_EVENTS_RESPONSE)); server.start(); HttpUrl baseUrl = server.url(""); MicrosoftCalendarExporter exporter = new MicrosoftCalendarExporter(baseUrl.toString(), client, mapper, transformerService); ExportResult<CalendarContainerResource> resource = exporter .export(UUID.randomUUID(), token, Optional.empty()); CalendarContainerResource calendarResource = resource.getExportedData(); Assert.assertEquals(2, calendarResource.getCalendars().size()); Assert.assertFalse( calendarResource .getCalendars() .stream() .anyMatch(c -> "Calendar1".equals(c.getId()) && "Calendar2".equals(c.getId()))); Assert.assertEquals(2, calendarResource.getEvents().size()); Assert.assertFalse( calendarResource .getEvents() .stream() .anyMatch( e -> "Test Appointment 1".equals(e.getTitle()) && "Test Appointment 2".equals(e.getTitle()))); }
@Override public MockResponse dispatch(RecordedRequest request) { switch (request.getPath()) { case "/v1/agent/self": return new MockResponse().setResponseCode(200).setBody(PING_RESPONSE); case "/v1/kv/?recurse=true": return new MockResponse() .setResponseCode(200) .addHeader("Content-Type", "application/json; charset=utf-8") .setBody("[{\"CreateIndex\":1,\"ModifyIndex\":1,\"LockIndex\":0,\"Key\":\"us-west-1/featureA.toggle\",\"Flags\":0,\"Value\":\"ZGlzYWJsZWQ=\"}]"); } return new MockResponse().setResponseCode(404); } }
protected void enqueueMockResponse(int code, String response) throws IOException { MockResponse mockResponse = new MockResponse(); mockResponse.setResponseCode(code); mockResponse.setBody(response); server.enqueue(mockResponse); }
public void setFailFast(boolean failFast) { MockResponse failFastResponse = failFast ? new MockResponse().setResponseCode(HttpURLConnection.HTTP_NOT_FOUND) : null; setFailFast(failFastResponse); }
private void runMockServer() throws IOException { server = new MockWebServer(); server.setDispatcher(dispatcher); server.start(0); } }
@Before public void setUp() { client = new OkHttpClient.Builder().build(); mapper = new ObjectMapper(); transformerService = new TransformerServiceImpl(); token = new TokensAndUrlAuthData("token123", "refreshToken", "tokenUrl"); server = new MockWebServer(); }
/** * Returns an early guess of the next response, used for policy on how an * incoming request should be received. The default implementation returns an * empty response. Mischievous implementations can return other values to test * HTTP edge cases, such as unhappy socket policies or throttled request * bodies. */ public MockResponse peek() { return new MockResponse().setSocketPolicy(SocketPolicy.KEEP_OPEN); } }
/** * Scripts {@code response} to be returned to a request made in sequence. The * first request is served by the first enqueued response; the second request * by the second enqueued response; and so on. * * @throws ClassCastException if the default dispatcher has been replaced * with {@link #setDispatcher(Dispatcher)}. */ public void enqueue(MockResponse response) { ((QueueDispatcher) dispatcher).enqueueResponse(response.clone()); }
@Test public void testExport() throws Exception { server.enqueue(new MockResponse().setBody(PHOTOS_RESPONSE)); server.enqueue(new MockResponse().setBody(FOLDER_RESPONSE)); server.enqueue(content1Response); server.enqueue(content2Response); server.start(); HttpUrl baseUrl = server.url(""); MicrosoftPhotosExporter exporter = new MicrosoftPhotosExporter(baseUrl.toString(), client, mapper, jobStore);
@After public void tearDown() throws Exception { server.shutdown(); } }
private void runMockServer() throws IOException { server = new MockWebServer(); server.setDispatcher(dispatcher); server.start(0); } }
@Before public void setUp() { client = new OkHttpClient.Builder().build(); mapper = new ObjectMapper(); token = new TokensAndUrlAuthData("token456", "refreshToken", "tokenUrl"); server = new MockWebServer(); jobStore = new MockJobStore(); }
@After public void tearDown() throws Exception { server.shutdown(); } }
@Before public void setUp() { client = new OkHttpClient.Builder().build(); mapper = new ObjectMapper(); transformerService = new TransformerServiceImpl(); token = new TokenAuthData("token456"); server = new MockWebServer(); jobStore = new MockJobStore(); }