Package com.thoughtworks.inproctester.resteasy.tests

Source Code of com.thoughtworks.inproctester.resteasy.tests.InProcessResteasyTest

package com.thoughtworks.inproctester.resteasy.tests;

import com.thoughtworks.inproctester.jetty.HttpAppTester;
import com.thoughtworks.inproctester.resteasy.InProcessClientExecutor;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ClientResponse;
import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
import org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import javax.ws.rs.core.MediaType;

public class InProcessResteasyTest {


    private ObjectMapper objectMapper = new ObjectMapper();

    private static HttpAppTester httpAppTester;

    @BeforeClass
    public static void setUp() {
        httpAppTester = new HttpAppTester("/");
        httpAppTester.setInitParameter("resteasy.resources", "com.thoughtworks.inproctester.resteasy.testapp.TestApplication");
        httpAppTester.setInitParameter("resteasy.providers", "org.jboss.resteasy.plugins.providers.jackson.ResteasyJacksonProvider");
        httpAppTester.addEventListener(new ResteasyBootstrap());
        httpAppTester.addServlet(HttpServletDispatcher.class, "/*");

        httpAppTester.start();
    }

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

    @Test
    public void shouldAddResource() throws Exception {
        ClientRequest request = new ClientRequest("http://localhost/", new InProcessClientExecutor(httpAppTester));
        JsonNode testResource = objectMapper.readValue("{\"name\":\"test\"}", JsonNode.class);
        ClientResponse<JsonNode> createResponse = request.body(MediaType.APPLICATION_JSON, testResource).post(JsonNode.class);

        Assert.assertEquals(201, createResponse.getStatus());
        JsonNode entity = createResponse.getEntity();
        Assert.assertEquals(testResource, entity);

//        JsonNode testResourceFromServer = webResource.uri(createResponse.getLocation()).accept(MediaType.APPLICATION_JSON).get(JsonNode.class);
//        Assert.assertEquals(testResource, testResourceFromServer);
    }

    @Test
    public void shouldGetResource() throws Exception {
        ClientRequest request = new ClientRequest("http://localhost/", new InProcessClientExecutor(httpAppTester));
        JsonNode testResource = objectMapper.readValue("{\"name\":\"test\"}", JsonNode.class);
        ClientResponse<JsonNode> response = request.body(MediaType.APPLICATION_JSON, testResource).post(JsonNode.class);

        request = new ClientRequest(response.getLocation().getHref(), new InProcessClientExecutor(httpAppTester));
        response = request.accept(MediaType.APPLICATION_JSON).get(JsonNode.class);

        Assert.assertEquals(200, response.getStatus());
        JsonNode entity = response.getEntity();
        Assert.assertEquals(testResource, entity);
    }

}
TOP

Related Classes of com.thoughtworks.inproctester.resteasy.tests.InProcessResteasyTest

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.