private ResponseBase<RestSetting> getRestSettingBuilder() { RestSettingBuilder builder = this.startRestSetting(); if (request != null) { return builder.request(request.getRequestMatcher()); } return builder; }
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_for_get_id_with_space() { get("1 1").response(status(200)); }
@Test public void should_head_with_matcher() throws Exception { server.resource("targets", head("1").request(eq(query("name"), "foo")).response(header("ETag", "Moco")) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.headForResponse(remoteUrl("/targets/1?name=foo")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(200)); } }); }
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_for_resource_name_with_space() { server.resource("hello world", get().response("hello")); }
@Test public void should_delete_with_matcher() throws Exception { server.resource("targets", delete("1").request(eq(header(HttpHeaders.IF_MATCH), "moco")).response(status(200)) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.deleteForResponseWithHeaders(remoteUrl("/targets/1"), ImmutableMultimap.of(HttpHeaders.IF_MATCH, "moco")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(200)); } }); }
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_for_resource_name_with_slash() { server.resource("hello/world", get().response("hello")); }
@Test public void should_query_with_condition() throws Exception { RestServer server = restServer(12306); Plain resource1 = new Plain(); resource1.code = 1; resource1.message = "hello"; Plain resource2 = new Plain(); resource2.code = 2; resource2.message = "world"; server.resource("targets", get().request(eq(query("foo"), "bar")).response(json(ImmutableList.of(resource1, resource2))) ); running(server, new Runnable() { @Override public void run() throws Exception { List<Plain> plains = Jsons.toObjects(helper.get(remoteUrl("/targets?foo=bar")), Plain.class); assertThat(plains.size(), is(2)); HttpResponse response = helper.getResponse(remoteUrl("/targets")); assertThat(response.getStatusLine().getStatusCode(), is(404)); } }); }
@Test(expected = IllegalArgumentException.class) public void should_throw_exception_for_get_id_with_slash() throws Exception { get("1/1").response(status(200)); }
@Test public void should_get_resource_by_id_with_request_config() throws Exception { Plain resource1 = new Plain(); resource1.code = 1; resource1.message = "hello"; Plain resource2 = new Plain(); resource2.code = 2; resource2.message = "world"; server.resource("targets", get("1").request(eq(header(HttpHeaders.CONTENT_TYPE), "application/json")).response(json(resource1)), get("2").request(eq(header(HttpHeaders.CONTENT_TYPE), "application/json")).response(json(resource2)) ); running(server, new Runnable() { @Override public void run() throws Exception { org.apache.http.HttpResponse response = helper.getResponseWithHeader(remoteUrl("/targets/1"), of(HttpHeaders.CONTENT_TYPE, "application/json")); Plain response1 = asPlain(response); assertThat(response1.code, is(1)); assertThat(response1.message, is("hello")); org.apache.http.HttpResponse otherResponse = helper.getResponseWithHeader(remoteUrl("/targets/2"), of(HttpHeaders.CONTENT_TYPE, "application/json")); Plain response2 = asPlain(otherResponse); assertThat(response2.code, is(2)); assertThat(response2.message, is("world")); org.apache.http.HttpResponse notFoundResponse = helper.getResponse(remoteUrl("/targets/1")); assertThat(notFoundResponse.getStatusLine().getStatusCode(), is(404)); } }); }
@Test public void should_log_request_and_response() throws Exception { RestServer server = restServer(port(), log()); Plain resource1 = new Plain(); resource1.code = 1; resource1.message = "0XCAFE"; Plain resource2 = new Plain(); resource2.code = 2; resource2.message = "0XBABE"; server.resource("targets", get("1").response(json(resource1)), get("2").response(json(resource2)) ); File file = folder.newFile(); System.setOut(new PrintStream(new FileOutputStream(file))); running(server, new Runnable() { @Override public void run() throws Exception { helper.get(remoteUrl("/targets")); } }); String actual = Files.toString(file, Charset.defaultCharset()); assertThat(actual, containsString("0XCAFE")); assertThat(actual, containsString("0XBABE")); }
@Test public void should_put_with_matcher() throws Exception { RestServer server = restServer(12306); final Plain resource1 = new Plain(); resource1.code = 1; resource1.message = "hello"; server.resource("targets", put("1").request(eq(header(HttpHeaders.IF_MATCH), "moco")).response(status(200)) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.putForResponseWithHeaders(remoteUrl("/targets/1"), Jsons.toJson(resource1), of(HttpHeaders.IF_MATCH, "moco")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(200)); } }); }
@Test public void should_delete() throws Exception { server.resource("targets", delete("1").response(status(200)) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.deleteForResponse(remoteUrl("/targets/1")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(200)); } }); }
@Test public void should_post_with_header() throws Exception { RestServer server = restServer(12306); final Plain resource = new Plain(); resource.code = 1; resource.message = "hello"; server.resource("targets", post().request(eq(header(HttpHeaders.CONTENT_TYPE), "application/json")) .response(status(201), header("Location", "/targets/123")) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.postForResponse(remoteUrl("/targets"), Jsons.toJson(resource), "application/json"); assertThat(httpResponse.getStatusLine().getStatusCode(), is(201)); assertThat(httpResponse.getFirstHeader("Location").getValue(), is("/targets/123")); HttpResponse badRequest = helper.postForResponse(remoteUrl("/targets"), Jsons.toJson(resource)); assertThat(badRequest.getStatusLine().getStatusCode(), is(400)); } }); }
@Test public void should_not_head_with_unknown_id() throws Exception { server.resource("targets", head("1").response(header("ETag", "Moco")) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.headForResponse(remoteUrl("/targets/2")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(404)); } }); }
private ResponseBase<RestSetting> getRestSettingBuilder() { RestSettingBuilder builder = this.startRestSetting(); if (request != null) { return builder.request(request.getRequestMatcher()); } return builder; }
@Test public void should_not_delete_with_unknown_id() throws Exception { server.resource("targets", delete("1").response(status(200)) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.deleteForResponse(remoteUrl("/targets/2")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(404)); } }); }
@Test public void should_delete_with_response() throws Exception { server.resource("targets", delete("1").response(status(409)) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.deleteForResponse(remoteUrl("/targets/1")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(409)); } }); }
@Test public void should_head() throws Exception { server.resource("targets", head("1").response(header("ETag", "Moco")) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.headForResponse(remoteUrl("/targets/1")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(200)); } }); }
@Test public void should_head_with_all() throws Exception { server.resource("targets", head().response(header("ETag", "Moco")) ); running(server, new Runnable() { @Override public void run() throws Exception { HttpResponse httpResponse = helper.headForResponse(remoteUrl("/targets")); assertThat(httpResponse.getStatusLine().getStatusCode(), is(200)); assertThat(httpResponse.getHeaders("ETag")[0].getValue(), is("Moco")); } }); }
@Test public void should_get_all_resources_by_default() throws Exception { Plain resource1 = new Plain(); resource1.code = 1; resource1.message = "hello"; Plain resource2 = new Plain(); resource2.code = 2; resource2.message = "world"; server.resource("targets", get("1").response(json(resource1)), get("2").response(json(resource2)) ); running(server, new Runnable() { @Override public void run() throws Exception { List<Plain> plains = getResources("/targets"); assertThat(plains.size(), is(2)); } }); }