Package com.tinkerpop.rexster.config

Source Code of com.tinkerpop.rexster.config.GraphConfigurationContainerTest

package com.tinkerpop.rexster.config;

import com.tinkerpop.blueprints.util.wrappers.readonly.ReadOnlyGraph;
import com.tinkerpop.blueprints.util.wrappers.readonly.ReadOnlyIndexableGraph;
import com.tinkerpop.rexster.Tokens;
import junit.framework.Assert;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class GraphConfigurationContainerTest {

    private List<HierarchicalConfiguration> configList = new ArrayList<HierarchicalConfiguration>();

    @Before
    public void setUp() {
        configList.clear();
    }

    @Test(expected = GraphConfigurationException.class)
    public void getApplicationGraphsNullConfiguration() throws GraphConfigurationException {
        new GraphConfigurationContainer(null);
    }

    @Test
    public void getApplicationGraphsNoGraphName() {
        configList.add(constructTinkerGraphHierarchicalConfiguration(""));

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(1, container.getFailedConfigurations().size());
            Assert.assertEquals(0, container.getApplicationGraphs().size());
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }

    }

    @Test
    public void getApplicationGraphsNoGraphProperty() {
        HierarchicalConfiguration graphConfig = new HierarchicalConfiguration();
        configList.add(graphConfig);

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(1, container.getFailedConfigurations().size());
            Assert.assertEquals(0, container.getApplicationGraphs().size());
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }

    }

    @Test
    public void getApplicationGraphsDuplicateGraphNames() {

        configList.add(constructDefaultTinkerGraphHierarchicalConfiguration("test"));
        configList.add(constructDefaultTinkerGraphHierarchicalConfiguration("test"));

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(1, container.getFailedConfigurations().size());
            Assert.assertEquals(1, container.getApplicationGraphs().size());
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }

    }

    @Test
    public void getApplicationGraphsBadGraphs() {
        configList.add(constructDefaultTinkerGraphHierarchicalConfiguration("test1"));
        configList.add(constructBadHierarchicalConfiguration());

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(1, container.getFailedConfigurations().size());
            Assert.assertEquals(1, container.getApplicationGraphs().size());
            Assert.assertTrue(container.getApplicationGraphs().containsKey("test1"));
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }
    }

    @Test
    public void getApplicationGraphsSupportedGraphs() {
        configList.add(constructDefaultTinkerGraphHierarchicalConfiguration("test-tinkergraph-shorthand"));

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(0, container.getFailedConfigurations().size());
            Assert.assertEquals(configList.size(), container.getApplicationGraphs().size());
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }
    }

    @Test
    public void getApplicationGraphsDynamicGraphs() {
        configList.add(constructHierarchicalConfiguration("test", "com.tinkerpop.rexster.config.MockGraphConfiguration", false));

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(0, container.getFailedConfigurations().size());
            Assert.assertEquals(configList.size(), container.getApplicationGraphs().size());
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }
    }

    @Test
    public void getApplicationGraphsReadOnlyGraphs() {
        configList.add(constructHierarchicalConfiguration("test", "com.tinkerpop.rexster.config.MockGraphConfiguration", true));

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(0, container.getFailedConfigurations().size());
            Assert.assertEquals(configList.size(), container.getApplicationGraphs().size());
            Assert.assertTrue(container.getApplicationGraphs().get("test").getGraph() instanceof ReadOnlyGraph);
            Assert.assertFalse(container.getApplicationGraphs().get("test").getGraph() instanceof ReadOnlyIndexableGraph);
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }
    }

    @Test
    public void getApplicationGraphsReadOnlyIndexableGraphs() {
        configList.add(constructHierarchicalConfiguration("test", "com.tinkerpop.rexster.config.MockIndexableGraphConfiguration", true));

        try {
            GraphConfigurationContainer container = new GraphConfigurationContainer(configList);
            Assert.assertEquals(0, container.getFailedConfigurations().size());
            Assert.assertEquals(configList.size(), container.getApplicationGraphs().size());
            Assert.assertTrue(container.getApplicationGraphs().get("test").getGraph() instanceof ReadOnlyIndexableGraph);
        } catch (Exception ex) {
            Assert.fail(ex.getMessage());
        }
    }

    private HierarchicalConfiguration constructBadHierarchicalConfiguration() {
        HierarchicalConfiguration graphConfig = new HierarchicalConfiguration();
        graphConfig.addProperty(Tokens.REXSTER_GRAPH_NAME, "junk");
        graphConfig.addProperty(Tokens.REXSTER_GRAPH_TYPE, "com.tinkerpop.rexster.config.MockBadGraphConfiguration");
        graphConfig.addProperty(Tokens.REXSTER_GRAPH_READ_ONLY, false);

        return graphConfig;
    }

    private HierarchicalConfiguration constructDefaultTinkerGraphHierarchicalConfiguration(String graphName) {
        return constructHierarchicalConfiguration(graphName, "tinkergraph", false);
    }

    private HierarchicalConfiguration constructTinkerGraphHierarchicalConfiguration(String graphName) {
        return constructHierarchicalConfiguration(graphName, "tinkergraph", false);
    }

    private HierarchicalConfiguration constructHierarchicalConfiguration(String graphName, String graphType, boolean readOnly) {
        HierarchicalConfiguration graphConfig = new HierarchicalConfiguration();
        graphConfig.addProperty(Tokens.REXSTER_GRAPH_NAME, graphName);
        graphConfig.addProperty(Tokens.REXSTER_GRAPH_TYPE, graphType);
        graphConfig.addProperty(Tokens.REXSTER_GRAPH_READ_ONLY, readOnly);

        ArrayList<HierarchicalConfiguration.Node> listOfNodes = new ArrayList<HierarchicalConfiguration.Node>();
        listOfNodes.add(new HierarchicalConfiguration.Node("username", "me"));
        listOfNodes.add(new HierarchicalConfiguration.Node("password", "pass"));
        graphConfig.addNodes(Tokens.REXSTER_GRAPH_PROPERTIES, listOfNodes);

        return graphConfig;
    }
}
TOP

Related Classes of com.tinkerpop.rexster.config.GraphConfigurationContainerTest

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.