Function<JsonObject,String> uri) { return HttpStreams.<JsonObject,JsonObject>requests(stream, clientCreator, t -> HttpDelete.METHOD_NAME, uri, HttpResponders.json());
Function<JsonObject, String> uri, UnaryOperator<JsonObject> body) { return HttpStreams.<JsonObject, JsonObject> requestsWithBody(stream, clientCreator, t -> HttpPut.METHOD_NAME, uri, t -> new ByteArrayEntity(body.apply(t).toString().getBytes(StandardCharsets.UTF_8)),
TStream<JsonObject> rc = HttpStreams.getJson( topology.collection(Arrays.asList(request)), HttpClients::noAuthentication,
TStream<JsonObject> rc = HttpStreams.deleteJson( stream, HttpClients::noAuthentication, t-> url + "a=" + t.get("a").getAsString() + "&b=" + t.get("b").getAsString()
@Test public void testJsonPost() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); final String url = "http://httpbin.org/post"; JsonObject body = new JsonObject(); body.addProperty("foo", getProp1()); body.addProperty("bar", getProp2()); TStream<JsonObject> stream = topology.collection(Arrays.asList(body)); TStream<JsonObject> rc = HttpStreams.postJson( stream, HttpClients::noAuthentication, t -> url, t -> t); TStream<Boolean> resStream = rc.map(j -> { assertTrue(j.has("request")); assertTrue(j.has("response")); JsonObject req = j.getAsJsonObject("request"); JsonObject res = j.getAsJsonObject("response"); assertTrue(res.has("status")); assertTrue(res.has("entity")); assertEquals(req, res.getAsJsonObject("entity").getAsJsonObject("json")); return true; }); rc.print(); Tester tester = topology.getTester(); Condition<List<Boolean>> endCondition = tester.streamContents(resStream, true); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.getResult().toString(), endCondition.valid()); }
TStream<JsonObject> rc = HttpStreams.putJson( stream, HttpClients::noAuthentication, t -> url, t -> t);
Function<JsonObject,String> uri) { return HttpStreams.<JsonObject,JsonObject>requests(stream, clientCreator, t -> HttpGet.METHOD_NAME, uri, HttpResponders.json());
UnaryOperator<JsonObject> body) { return HttpStreams.<JsonObject, JsonObject> requestsWithBody(stream, clientCreator, t -> HttpPost.METHOD_NAME, uri, t -> new ByteArrayEntity(body.apply(t).toString().getBytes(StandardCharsets.UTF_8)),
@Test public void testStatusCode() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); String url = "http://httpbin.org/status/"; TStream<Integer> rc = HttpStreams.<Integer,Integer>requests( topology.collection(Arrays.asList(200, 404, 202)), HttpClients::noAuthentication, t-> HttpGet.METHOD_NAME, t-> url + Integer.toString(t), (t,resp) -> resp.getStatusLine().getStatusCode()); Tester tester = topology.getTester(); Condition<List<Integer>> endCondition = tester.streamContents(rc, 200, 404, 202); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.valid()); }
@Test public void testPost() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); String url = "http://httpbin.org/post"; TStream<String> stream = topology.strings(url); TStream<String> rc = HttpStreams.<String, String>requestsWithBody( stream, HttpClients::noAuthentication, t -> HttpPost.METHOD_NAME, t-> t, t-> new ByteArrayEntity(t.getBytes()), HttpResponders.inputOn200()); Tester tester = topology.getTester(); Condition<List<String>> endCondition = tester.streamContents(rc, url); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.valid()); }
/** * Test basic authentication, first with valid user/password * and then with invalid (results in 401). * @throws Exception on failure */ @Test public void testBasicAuthentication() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); String url = "http://httpbin.org/basic-auth/"; TStream<Integer> rc = HttpStreams.<String,Integer>requests( topology.strings("A", "B"), () -> HttpClients.basic("usA", "pwdA4"), t-> HttpGet.METHOD_NAME, t-> url + "us" + t + "/pwd" + t + "4", (t,resp) -> resp.getStatusLine().getStatusCode()); Tester tester = topology.getTester(); Condition<List<Integer>> endCondition = tester.streamContents(rc, 200, 401); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.getResult().toString(), endCondition.valid()); }
@Test public void testPut() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); String url = "http://httpbin.org/put"; TStream<String> stream = topology.strings(url); TStream<String> rc = HttpStreams.<String, String>requestsWithBody( stream, HttpClients::noAuthentication, t -> HttpPut.METHOD_NAME, t-> t, t-> new ByteArrayEntity(t.getBytes()), HttpResponders.inputOn200()); Tester tester = topology.getTester(); Condition<List<String>> endCondition = tester.streamContents(rc, url); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.valid()); }
@Test public void testGet() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); String url = "http://httpbin.org/get"; TStream<String> rc = HttpStreams.<String,String>requests( topology.strings(url), HttpClients::noAuthentication, t-> HttpGet.METHOD_NAME, t->t, HttpResponders.inputOn200()); Tester tester = topology.getTester(); Condition<List<String>> endCondition = tester.streamContents(rc, url); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.valid()); }
@Test public void testDelete() throws Exception { DirectProvider ep = new DirectProvider(); Topology topology = ep.newTopology(); String url = "http://httpbin.org/delete"; TStream<String> stream = topology.strings(url); TStream<String> rc = HttpStreams.<String, String>requests( stream, HttpClients::noAuthentication, t -> HttpDelete.METHOD_NAME, t-> t, HttpResponders.inputOn200()); Tester tester = topology.getTester(); Condition<List<String>> endCondition = tester.streamContents(rc, url); tester.complete(ep, new JsonObject(), endCondition, 10, TimeUnit.SECONDS); assertTrue(endCondition.valid()); }