Package com.tinkerpop.rexster.extension

Source Code of com.tinkerpop.rexster.extension.ExtensionResponseTest

package com.tinkerpop.rexster.extension;

import com.tinkerpop.blueprints.Element;
import com.tinkerpop.blueprints.Graph;
import com.tinkerpop.blueprints.impls.tg.TinkerGraphFactory;
import com.tinkerpop.rexster.Tokens;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONObject;
import org.junit.Assert;
import org.junit.Test;

import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class ExtensionResponseTest {
    @Test(expected = IllegalArgumentException.class)
    public void overrideNull() {
        ExtensionResponse.override(null);
    }

    @Test
    public void overrideValid() {
        Response r = Response.noContent().build();
        ExtensionResponse er = ExtensionResponse.override(r);

        Assert.assertNotNull(er);
        Assert.assertFalse(er.isErrorResponse());
        Assert.assertEquals(r, er.getJerseyResponse());
    }

    @Test
    public void errorJustMessage() {
        ExtensionResponse er = ExtensionResponse.error("msg");

        Assert.assertNotNull(er);
        Assert.assertTrue(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("message"));
        Assert.assertEquals("msg", entity.optString("message"));
    }

    @Test
    public void errorJustException() {
        ExtensionResponse er = ExtensionResponse.error(new Exception("err"));

        Assert.assertNotNull(er);
        Assert.assertTrue(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("message"));
        Assert.assertEquals("", entity.optString("message"));
        Assert.assertTrue(entity.has("error"));
        Assert.assertEquals("err", entity.optString("error"));
    }

    @Test
    public void errorMessageAndException() {
        ExtensionResponse er = ExtensionResponse.error("msg", new Exception("err"));

        Assert.assertNotNull(er);
        Assert.assertTrue(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("message"));
        Assert.assertEquals("msg", entity.optString("message"));
        Assert.assertTrue(entity.has("error"));
        Assert.assertEquals("err", entity.optString("error"));
    }

    @Test
    public void errorMessageExceptionAndCode() {
        ExtensionResponse er = ExtensionResponse.error("msg", new Exception("err"),
                Response.Status.BAD_REQUEST.getStatusCode());

        Assert.assertNotNull(er);
        Assert.assertTrue(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("message"));
        Assert.assertEquals("msg", entity.optString("message"));
        Assert.assertTrue(entity.has("error"));
        Assert.assertEquals("err", entity.optString("error"));
    }

    @Test
    public void errorMessageExceptionAndCodeWithAddedJsonNoKey() {
        HashMap map = new HashMap() {{
            put("this", "that");
        }};

        ExtensionResponse er = ExtensionResponse.error("msg", new Exception("err"),
                Response.Status.BAD_REQUEST.getStatusCode(), null, new JSONObject(map));

        Assert.assertNotNull(er);
        Assert.assertTrue(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("message"));
        Assert.assertEquals("msg", entity.optString("message"));
        Assert.assertTrue(entity.has("error"));
        Assert.assertEquals("err", entity.optString("error"));
        Assert.assertTrue(entity.has("this"));
        Assert.assertEquals("that", entity.optString("this"));
    }

    @Test
    public void errorMessageExceptionAndCodeWithAddedJsonWithKey() {

        final JSONObject deep = new JSONObject();
        try {
            deep.put("deepone", "foundme");
        } catch (Exception ex) {
            // never happen
        }

        HashMap map = new HashMap() {{
            put("this", "that");
            put("deep", deep);
        }};

        ExtensionResponse er = ExtensionResponse.error("msg", new Exception("err"),
                Response.Status.BAD_REQUEST.getStatusCode(), "keyitup", new JSONObject(map));

        Assert.assertNotNull(er);
        Assert.assertTrue(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("message"));
        Assert.assertEquals("msg", entity.optString("message"));
        Assert.assertTrue(entity.has("error"));
        Assert.assertEquals("err", entity.optString("error"));
        Assert.assertTrue(entity.has("keyitup"));

        JSONObject bonusJson = entity.optJSONObject("keyitup");
        Assert.assertNotNull(bonusJson);
        Assert.assertTrue(bonusJson.has("this"));
        Assert.assertEquals("that", bonusJson.optString("this"));
        Assert.assertTrue(bonusJson.has("deep"));


        JSONObject deepJson = bonusJson.optJSONObject("deep");
        Assert.assertNotNull(bonusJson);
        Assert.assertTrue(deepJson.has("deepone"));
        Assert.assertEquals("foundme", deepJson.optString("deepone"));
    }

    @Test(expected = IllegalArgumentException.class)
    public void okWithNullHashMap() {
        ExtensionResponse.ok((HashMap) null);
    }

    @Test
    public void okWithValidHashMap() {
        HashMap<String, String> map = new HashMap<String, String>() {{
            put("this", "that");
        }};

        ExtensionResponse er = ExtensionResponse.ok(map);

        Assert.assertNotNull(er);
        Assert.assertFalse(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.OK.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("this"));
        Assert.assertEquals("that", entity.optString("this"));
    }

    @Test
    public void okWithValidJson() {
        HashMap<String, String> map = new HashMap<String, String>() {{
            put("this", "that");
        }};

        JSONObject jsonObject = new JSONObject(map);

        ExtensionResponse er = ExtensionResponse.ok(jsonObject);

        Assert.assertNotNull(er);
        Assert.assertFalse(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.OK.getStatusCode(), r.getStatus());

        JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertTrue(entity.has("this"));
        Assert.assertEquals("that", entity.optString("this"));
    }

    @Test
    public void okForGraphElement() {
        final Graph g = TinkerGraphFactory.createTinkerGraph();

        final ExtensionResponse er = ExtensionResponse.ok(g.getVertex(1));
        Assert.assertNotNull(er);
        Assert.assertFalse(er.isErrorResponse());

        final Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.OK.getStatusCode(), r.getStatus());

        final JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);
        Assert.assertEquals("marko", entity.optString("name"));
        Assert.assertEquals(29, entity.optInt("age"));
    }

    @Test
    public void okForGraphElements() {
        final Graph g = TinkerGraphFactory.createTinkerGraph();

        List<Element> elements = new ArrayList<Element>();
        elements.add(g.getVertex(1));
        elements.add(g.getVertex(2));

        final ExtensionResponse er = ExtensionResponse.ok(elements.iterator());
        Assert.assertNotNull(er);
        Assert.assertFalse(er.isErrorResponse());

        final Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.OK.getStatusCode(), r.getStatus());

        final JSONObject entity = (JSONObject) r.getEntity();
        Assert.assertNotNull(entity);

        final JSONArray jsonArray = entity.optJSONArray(Tokens.RESULTS);
        Assert.assertEquals(2, jsonArray.length());
        Assert.assertEquals("marko", jsonArray.optJSONObject(0).optString("name"));
        Assert.assertEquals("vadas", jsonArray.optJSONObject(1).optString("name"));
    }

    @Test
    public void noContentValid() {
        ExtensionResponse er = ExtensionResponse.noContent();

        Assert.assertNotNull(er);
        Assert.assertFalse(er.isErrorResponse());

        Response r = er.getJerseyResponse();
        Assert.assertNotNull(r);
        Assert.assertEquals(Response.Status.NO_CONTENT.getStatusCode(), r.getStatus());
    }
}
TOP

Related Classes of com.tinkerpop.rexster.extension.ExtensionResponseTest

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.