public LatencyProcedure asProcedure() { return Moco.latency(latency, unit); } }
public static MocoEventAction async(final MocoEventAction action) { return async(checkNotNull(action, "Action should not be null"), latency(DEFAULT_LATENCY, TimeUnit.MILLISECONDS)); }
@Test public void should_wait_for_awhile_with_time_unit() throws Exception { final long delta = 200; server.response(latency(1, TimeUnit.SECONDS)); running(server, new Runnable() { @Override public void run() throws IOException { long start = System.currentTimeMillis(); helper.get(root()); int code = helper.getForStatus(root()); long stop = System.currentTimeMillis(); long gap = stop - start + delta; assertThat(gap, greaterThan(TimeUnit.SECONDS.toMillis(1))); assertThat(code, is(200)); } }); }
@Test public void should_wait_for_awhile() throws Exception { final long latency = 1000; final long delta = 200; server.response(latency(latency, TimeUnit.MILLISECONDS)); running(server, new Runnable() { @Override public void run() throws IOException { long start = System.currentTimeMillis(); helper.get(root()); int code = helper.getForStatus(root()); long stop = System.currentTimeMillis(); long gap = stop - start + delta; assertThat(gap, greaterThan(latency)); assertThat(code, is(200)); } }); }
@Test public void should_return_all_response_for_latency_with_header() throws Exception { server = httpServer(port(), response(header("foo", "bar"))); server.response(latency(1, TimeUnit.SECONDS)); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse response = helper.getResponse(root()); Header header = response.getFirstHeader("foo"); assertThat(header.getValue(), is("bar")); } }); }
@Test public void should_send_post_request_to_target_on_complete_async_after_awhile() throws Exception { final ResponseHandler handler = mock(ResponseHandler.class); server.request(and(by(uri("/target")), by("content"))).response(handler); server.request(by(uri("/event"))).response("event").on(complete(async(post(remoteUrl("/target"), text("content")), latency(1, TimeUnit.SECONDS)))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(remoteUrl("/event")), is("event")); verify(handler, never()).writeToResponse(any(SessionContext.class)); Idles.idle(2, TimeUnit.SECONDS); } }); verify(handler).writeToResponse(any(SessionContext.class)); }
public LatencyProcedure asProcedure() { return Moco.latency(latency, unit); } }