public static ContentResource pathResource(final Resource filename) { return pathResource(checkNotNull(filename, "Filename should not be null"), Optional.<Charset>absent()); }
public static ContentResource pathResource(final Resource filename, final Charset charset) { return pathResource(checkNotNull(filename, "Filename should not be null"), of(checkNotNull(charset, "Charset should not be null"))); }
public static ContentResource pathResource(final String filename, final Charset charset) { return pathResource(text(checkNotNullOrEmpty(filename, "Filename should not be null")), of(checkNotNull(charset, "Charset should not be null"))); }
public static ContentResource pathResource(final String filename) { return pathResource(text(checkNotNullOrEmpty(filename, "Filename should not be null"))); }
@Test public void should_return_expected_response_from_path_resource_with_charset() throws Exception { server.response(pathResource("gbk.response", Charset.forName("GBK"))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.getAsBytes(root()), is(toByteArray(new File("src/test/resources/gbk.response")))); } }); }
@Test public void should_return_expected_response_from_path_resource() throws Exception { server.response(pathResource("foo.response")); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(root()), is("foo.response")); } }); }
private HttpServer createHttpServer(final Iterable<? extends RunnerSetting> settings, final StartArgs startArgs) { HttpServer targetServer = createBaseHttpServer(settings, startArgs); targetServer.request(by(uri("/favicon.ico"))).response(with(pathResource("favicon.png")), header(HttpHeaders.CONTENT_TYPE, MediaType.PNG.toString())); return targetServer; }
@Test public void should_return_expected_response_from_path_resource() throws Exception { final HttpServer server = jsonHttpsServer(port(), pathResource("foo.json"), DEFAULT_CERTIFICATE); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(httpsRoot()), is("foo")); } }); }
@Test public void should_return_expected_response_from_path_resource() throws Exception { final HttpServer server = jsonHttpServer(port(), pathResource("foo.json")); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(root()), is("foo")); } }); }
@Test public void should_return_expected_response_based_on_path_resource() throws Exception { server.request(by(pathResource("foo.request"))).response("foo"); running(server, new Runnable() { @Override public void run() throws Exception { URL resource = Resources.getResource("foo.request"); InputStream stream = resource.openStream(); assertThat(helper.postStream(root(), stream), is("foo")); } }); }
@Test public void should_return_path_resource_with_template_and_charset() throws Exception { server.request(by(uri("/template"))).response(pathResource(template("${var}", "var", "gbk.response"), Charset.forName("GBK"))); running(server, new Runnable() { @Override public void run() throws Exception { URL resource = Resources.getResource("gbk.response"); InputStream stream = resource.openStream(); assertThat(helper.getAsBytes(remoteUrl("/template")), is(ByteStreams.toByteArray(stream))); } }); }
@Test public void should_send_post_request_to_target_on_complete_with_gbk() throws Exception { ResponseHandler handler = mock(ResponseHandler.class); final Charset gbk = Charset.forName("GBK"); server.request(and(by(uri("/target")), by(pathResource("gbk.json", gbk)))).response(handler); server.request(by(uri("/event"))).response("event").on(complete(post(text(remoteUrl("/target")), pathResource("gbk.json", gbk)))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(remoteUrl("/event")), is("event")); } }); verify(handler).writeToResponse(any(SessionContext.class)); } }
@Test public void should_send_get_request_to_target_on_complete_with_path_resource() throws Exception { ResponseHandler handler = mock(ResponseHandler.class); server.request(by(uri("/target"))).response(handler); server.request(by(uri("/event"))).response("event").on(complete(get(pathResource("template.url")))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(remoteUrl("/event")), is("event")); } }); verify(handler).writeToResponse(any(SessionContext.class)); }
@Test public void should_send_post_request_to_target_on_complete_with_path_resource_url() throws Exception { ResponseHandler handler = mock(ResponseHandler.class); server.request(by(uri("/target"))).response(handler); server.request(by(uri("/event"))).response("event").on(complete(post(pathResource("template.url"), "content"))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(remoteUrl("/event")), is("event")); } }); verify(handler).writeToResponse(any(SessionContext.class)); }
@Test public void should_match_request_with_gbk_resource() throws Exception { server = httpServer(port(), log()); server.request(by(json(pathResource("gbk.json", Charset.forName("GBK"))))).response("response"); running(server, new Runnable() { @Override public void run() throws Exception { String result = helper.postBytes(root(), "{\"message\": \"请求\"}".getBytes()); assertThat(result, is("response")); } }); }
@Test public void should_send_post_request_to_target_on_complete_with_path_resource_content() throws Exception { ResponseHandler handler = mock(ResponseHandler.class); server.request(by(uri("/target"))).response(handler); server.request(by(uri("/event"))).response("event").on(complete(post(remoteUrl("/target"), pathResource("foo.request")))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(remoteUrl("/event")), is("event")); } }); verify(handler).writeToResponse(any(SessionContext.class)); }
@Test public void should_return_path_resource_with_template() throws Exception { server.request(by(uri("/template"))).response(pathResource(template("${var}", "var", "foo.response"))); running(server, new Runnable() { @Override public void run() throws Exception { assertThat(helper.get(remoteUrl("/template")), is("foo.response")); } }); }
@Test public void should_match_gbk_request() throws Exception { server = httpServer(port(), log()); final Charset gbk = Charset.forName("GBK"); server.request(by(json(pathResource("gbk.json", gbk)))).response("response"); running(server, new Runnable() { @Override public void run() throws Exception { URL resource = Resources.getResource("gbk.json"); byte[] bytes = ByteStreams.toByteArray(resource.openStream()); String result = helper.postBytes(root(), bytes, gbk); assertThat(result, is("response")); } }); }
@Before public void setup() { HttpsServer server = httpsServer(port(), certificate(pathResource("cert.jks"), "mocohttps", "mocohttps")); server.response("foo"); this.runner = Runner.runner(server); runner.start(); helper = new MocoTestHelper(); }
@Test public void should_forward_gbk_request() throws Exception { server = httpServer(port(), log()); final Charset gbk = Charset.forName("GBK"); server.request(and(by(uri("/proxy")), by(json(pathResource("gbk.json", gbk))))).response("response"); server.response(proxy(remoteUrl("/proxy"))); running(server, new Runnable() { @Override public void run() throws Exception { URL resource = Resources.getResource("gbk.json"); byte[] bytes = ByteStreams.toByteArray(resource.openStream()); String result = helper.postBytes(root(), bytes, gbk); assertThat(result, is("response")); } }); } }