Package com.thoughtworks.inproctester.jetty.tests

Source Code of com.thoughtworks.inproctester.jetty.tests.InProcessJettyTest

package com.thoughtworks.inproctester.jetty.tests;

import com.thoughtworks.inproctester.core.InProcRequest;
import com.thoughtworks.inproctester.core.InProcResponseWrapper;
import com.thoughtworks.inproctester.jetty.HttpAppTester;
import com.thoughtworks.inproctester.jetty.testapp.TestServlet;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;

public class InProcessJettyTest {
    private static HttpAppTester httpAppTester;

    @BeforeClass
    public static void setUp() {
        httpAppTester = new HttpAppTester("/");
        httpAppTester.addServlet(TestServlet.class, "/*");
        httpAppTester.start();
    }

    @AfterClass
    public static void tearDown() {
        httpAppTester.stop();
    }

    @Test
    public void shouldAcceptBodyForPostRequest() throws Exception {
        HashMap<String, String> headers = new HashMap<>();
        headers.put("Host", "localhost");
        headers.put("Content-Type", "text/plain");

        URI uri = new URI("http://localhost/");
        InProcRequest request = new TestRequest("POST", uri, "POST body", headers);

        InProcResponseWrapper response = new InProcResponseWrapper(httpAppTester.getResponses(request));

        assertThat(response.getContent(), is("POST body"));
    }

    @Test
    public void shouldAcceptBodyForPutRequest() throws Exception {
        HashMap<String, String> headers = new HashMap<>();
        headers.put("Host", "localhost");
        headers.put("Content-Type", "text/plain");

        URI uri = new URI("http://localhost/");
        InProcRequest request = new TestRequest("PUT", uri, "PUT body", headers);

        InProcResponseWrapper response = new InProcResponseWrapper(httpAppTester.getResponses(request));

        assertThat(response.getContent(), is("PUT body"));
    }

    private static class TestRequest implements InProcRequest {
        private final String httpMethod;
        private final URI uri;
        private final String content;
        private final Map<String, String> headers;

        public TestRequest(
                String httpMethod,
                URI uri,
                String content,
                Map<String, String> headers) {
            this.httpMethod = httpMethod;
            this.uri = uri;
            this.content = content;
            this.headers = headers;
        }

        @Override public String getHttpMethod() {
            return httpMethod;
        }

        @Override public URI getUri() {
            return uri;
        }

        @Override public String getContent() {
            return content;
        }

        @Override public Set<String> getHeaderNames() {
            return headers.keySet();
        }

        @Override public String getHeader(String headerName) {
            return headers.get(headerName);
        }

        @Override public void addHeader(String headerName, String header) {
            headers.put(headerName, header);
        }
    }
}
TOP

Related Classes of com.thoughtworks.inproctester.jetty.tests.InProcessJettyTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.