Java tutorial
/* * Copyright (c) 2012 - 2016 Jadler contributors * This program is made available under the terms of the MIT License. */ package net.jadler.stubbing.server.jetty; import net.jadler.Request; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import java.io.IOException; import java.net.URI; import static org.junit.Assert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.containsInAnyOrder; public class RequestUtilsTest { @Test public void method() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); Request req = RequestUtils.convert(httpRequest); assertThat(req.getMethod(), is("POST")); } @Test public void body() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); httpRequest.setContent("abcd".getBytes()); final Request req = RequestUtils.convert(httpRequest); assertThat(req.getBodyAsString(), is("abcd")); } @Test public void headers() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); httpRequest.addHeader("header1", "value11"); httpRequest.addHeader("header2", "value21"); httpRequest.addHeader("header2", "value22"); final Request req = RequestUtils.convert(httpRequest); assertThat(req.getHeaders().getKeys(), containsInAnyOrder("header1", "header2")); assertThat(req.getHeaders().getValues("header1"), contains("value11")); assertThat(req.getHeaders().getValues("header2"), contains("value21", "value22")); } @Test public void parameters() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); httpRequest.setQueryString("a=1&b=3"); httpRequest.setContent("a=2".getBytes()); httpRequest.addHeader("content-type", "application/x-www-form-urlencoded"); final Request req = RequestUtils.convert(httpRequest); assertThat(req.getParameters().getKeys(), containsInAnyOrder("a", "b")); assertThat(req.getParameters().getValues("a"), contains("1", "2")); assertThat(req.getParameters().getValues("b"), contains("3")); } @Test public void parametersURLEncoded() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); httpRequest.setQueryString("param1%20name=param1%20value"); httpRequest.setContent("param2%20name=param2%20value".getBytes()); httpRequest.addHeader("content-type", "application/x-www-form-urlencoded"); final Request req = RequestUtils.convert(httpRequest); assertThat(req.getParameters().getKeys(), containsInAnyOrder("param1%20name", "param2%20name")); assertThat(req.getParameters().getValues("param1%20name"), contains("param1%20value")); assertThat(req.getParameters().getValues("param2%20name"), contains("param2%20value")); } @Test public void uri() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); httpRequest.setScheme("https"); httpRequest.setServerName("example.com"); httpRequest.setServerPort(1234); httpRequest.setRequestURI("/test/a/b?a=1"); Request req = RequestUtils.convert(httpRequest); assertThat(req.getURI(), is(URI.create("https://example.com:1234/test/a/b?a=1"))); } @Test public void uriURLEncoded() throws IOException { final MockHttpServletRequest httpRequest = prepareEmptyRequest(); httpRequest.setScheme("https"); httpRequest.setServerName("example.com"); httpRequest.setServerPort(1234); httpRequest.setRequestURI("/te%20st/a/%20/b?a=1¶m%20name=param%20value"); Request req = RequestUtils.convert(httpRequest); assertThat(req.getURI(), is(URI.create("https://example.com:1234/te%20st/a/%20/b?a=1¶m%20name=param%20value"))); } private MockHttpServletRequest prepareEmptyRequest() { final MockHttpServletRequest res = new MockHttpServletRequest(); res.setMethod("POST"); res.setContent(new byte[0]); return res; } }