@Test public void single() { final HttpClient client = HttpClient.of(rule.uri("/single")); AggregatedHttpMessage msg; msg = client.get("/string").aggregate().join(); assertThat(msg.headers().contentType()).isEqualTo(MediaType.PLAIN_TEXT_UTF_8); assertThat(msg.content().toStringUtf8()).isEqualTo("a"); msg = client.get("/json").aggregate().join(); assertThat(msg.headers().contentType()).isEqualTo(MediaType.JSON_UTF_8); assertThatJson(msg.content().toStringUtf8()).isStringEqualTo("a"); msg = client.get("/error").aggregate().join(); assertThat(msg.headers().status()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); }
@Test public void maybe() { final HttpClient client = HttpClient.of(rule.uri("/maybe")); AggregatedHttpMessage msg; msg = client.get("/string").aggregate().join(); assertThat(msg.headers().contentType()).isEqualTo(MediaType.PLAIN_TEXT_UTF_8); assertThat(msg.content().toStringUtf8()).isEqualTo("a"); msg = client.get("/json").aggregate().join(); assertThat(msg.headers().contentType()).isEqualTo(MediaType.JSON_UTF_8); assertThatJson(msg.content().toStringUtf8()).isStringEqualTo("a"); msg = client.get("/empty").aggregate().join(); assertThat(msg.headers().status()).isEqualTo(HttpStatus.OK); assertThat(msg.content().isEmpty()).isTrue(); msg = client.get("/error").aggregate().join(); assertThat(msg.headers().status()).isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR); }
@Test public void testThriftServiceRegistrationBean() throws Exception { final HelloService.Iface client = Clients.newClient(newUrl("tbinary+h1c") + "/thrift", HelloService.Iface.class); assertThat(client.hello("world")).isEqualTo("hello world"); final HttpClient httpClient = HttpClient.of(newUrl("h1c")); final HttpResponse response = httpClient.get("/internal/docs/specification.json"); final AggregatedHttpMessage msg = response.aggregate().get(); assertThat(msg.status()).isEqualTo(HttpStatus.OK); assertThatJson(msg.content().toStringUtf8()) .node("services[1].exampleHttpHeaders[0].x-additional-header").isStringEqualTo("headerVal"); }
@Test void isStringEqualToShouldFailIfItDiffers() { assertThatThrownBy(() -> assertThatJson("{\"test\":\"2\"}").node("test").isStringEqualTo("1")) .hasMessage("Different value found in node \"test\", expected: <\"1\"> but was: <\"2\">."); }
@Test void isStringEqualToShouldFailIfItIsNotAString() { assertThatThrownBy(() -> assertThatJson("{\"test\":1}").node("test").isStringEqualTo("1")) .hasMessage("Node \"test\" has invalid type, expected: <string> but was: <1>."); }
@Test void shouldChainStringEquals() { assertThatJson("{ \"key1\": \"[value1]\", \"key2\": \"[value2]\" }") .node("key1").isStringEqualTo("[value1]") .node("key2").isStringEqualTo("[value2]"); }
@Test void shoulEscapeDot() { assertThatJson("{\"name.with.dot\": \"value\"}").node("name\\.with\\.dot").isStringEqualTo("value"); }
@Test void isStringEqualToShouldPass() { assertThatJson("{\"test\":\"1\"}").node("test").isStringEqualTo("1"); }
@Test void isStringShouldFailOnNull() { assertThatThrownBy(() -> assertThatJson("{\"test\":null}").node("test").isStringEqualTo("1")) .hasMessage("Node \"test\" has invalid type, expected: <string> but was: <null>."); }
@Test public void testMessageConverterService() { AggregatedHttpMessage res; String body; // JSON for (final String path : Arrays.asList("/messageConverter/node/node", "/messageConverter/node/obj", "/messageConverter/obj/obj", "/messageConverter/obj/future")) { res = client.execute(HttpHeaders.of(HttpMethod.POST, path) .contentType(MediaType.JSON_UTF_8), "{\"name\":\"armeria\"}").aggregate().join(); assertThat(res.status()).isEqualTo(HttpStatus.OK); assertThat(res.headers().contentType().is(MediaType.JSON_UTF_8)).isTrue(); body = res.content().toStringUtf8(); assertThatJson(body).node("result").isStringEqualTo("success"); assertThatJson(body).node("from").isStringEqualTo("armeria"); } // custom(text protocol) res = client.execute(HttpHeaders.of(HttpMethod.POST, "/messageConverter/custom") .contentType(MediaType.PLAIN_TEXT_UTF_8), "armeria").aggregate().join(); assertThat(res.status()).isEqualTo(HttpStatus.OK); assertThat(res.headers().contentType().is(MediaType.PLAIN_TEXT_UTF_8)).isTrue(); assertThat(res.content().toStringUtf8()).isEqualTo("success:armeria"); }