Package com.tinkerpop.rexster

Source Code of com.tinkerpop.rexster.RexsterResourceTest

package com.tinkerpop.rexster;

import com.tinkerpop.rexster.server.RexsterApplication;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONObject;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

/**
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public class RexsterResourceTest {
    protected Mockery mockery = new JUnit4Mockery();

    @Before
    public void init() {
        this.mockery = new JUnit4Mockery();
    }

    @Test
    public void evaluateMultipleGraphs() {
        final RexsterApplication ra = this.mockery.mock(RexsterApplication.class);
        final HttpServletRequest httpServletRequest = this.mockery.mock(HttpServletRequest.class);
        final Set<String> graphNames = new HashSet<String>();
        graphNames.add("graph1");
        graphNames.add("graph2");
        graphNames.add("graph3");

        final long startTime = System.currentTimeMillis() - 1000;

        this.mockery.checking(new Expectations() {{
            allowing(httpServletRequest).getParameterMap();
            will(returnValue(new HashMap<String, String>()));
            allowing(ra).getGraphNames();
            will(returnValue(graphNames));
            allowing(ra).getStartTime();
            will(returnValue(startTime));
        }});

        final RexsterResource resource = new RexsterResource(ra);
        final Response response = resource.getRexsterRoot();

        Assert.assertNotNull(response);
        Assert.assertEquals(Status.OK.getStatusCode(), response.getStatus());
        Assert.assertNotNull(response.getEntity());
        Assert.assertTrue(response.getEntity() instanceof JSONObject);

        final JSONObject json = (JSONObject) response.getEntity();
        Assert.assertTrue(json.has(Tokens.QUERY_TIME));
        Assert.assertTrue(json.has("name"));
        Assert.assertTrue(json.has("graphs"));
        Assert.assertTrue(json.has(Tokens.UP_TIME));
        Assert.assertNotNull(json.optJSONArray("graphs"));

        final JSONArray jsonArray = json.optJSONArray("graphs");
        Assert.assertEquals(3, jsonArray.length());
    }

    @Test
    public void evaluateNoGraphs() {
        final RexsterApplication ra = this.mockery.mock(RexsterApplication.class);
        final HttpServletRequest httpServletRequest = this.mockery.mock(HttpServletRequest.class);
        final Set<String> graphNames = new HashSet<String>();

        final long startTime = System.currentTimeMillis() - 1000;

        this.mockery.checking(new Expectations() {{
            allowing(httpServletRequest).getParameterMap();
            will(returnValue(new HashMap<String, String>()));
            allowing(ra).getGraphNames();
            will(returnValue(graphNames));
            allowing(ra).getStartTime();
            will(returnValue(startTime));
        }});

        final RexsterResource resource = new RexsterResource(ra);
        final Response response = resource.getRexsterRoot();

        Assert.assertNotNull(response);
        Assert.assertEquals(Status.OK.getStatusCode(), response.getStatus());
        Assert.assertNotNull(response.getEntity());
        Assert.assertTrue(response.getEntity() instanceof JSONObject);

        final JSONObject json = (JSONObject) response.getEntity();
        Assert.assertTrue(json.has(Tokens.QUERY_TIME));
        Assert.assertTrue(json.has("name"));
        Assert.assertTrue(json.has("graphs"));
        Assert.assertTrue(json.has(Tokens.UP_TIME));
        Assert.assertNotNull(json.optJSONArray("graphs"));

        final JSONArray jsonArray = json.optJSONArray("graphs");
        Assert.assertEquals(0, jsonArray.length());
    }
}
TOP

Related Classes of com.tinkerpop.rexster.RexsterResourceTest

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.