Package com.thinkaurelius.faunus.formats.rexster.util

Source Code of com.thinkaurelius.faunus.formats.rexster.util.VertexToFaunusBinaryTest

package com.thinkaurelius.faunus.formats.rexster.util;

import com.thinkaurelius.faunus.BaseTest;
import com.thinkaurelius.faunus.FaunusEdge;
import com.thinkaurelius.faunus.FaunusVertex;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Graph;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.tg.TinkerGraph;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;

/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
*/
public class VertexToFaunusBinaryTest extends BaseTest {

    public void testConversion() throws IOException {

        Graph graph = new TinkerGraph();
        Vertex marko = graph.addVertex(1);
        marko.setProperty("name", "marko");
        marko.setProperty("age", 32);
        Vertex stephen = graph.addVertex(3);
        stephen.setProperty("name", "stephen");
        stephen.setProperty("weight", 160.42);
        stephen.setProperty("male", true);
        Edge e = graph.addEdge(null, marko, stephen, "knows");
        e.setProperty("weight", 0.2);
        e.setProperty("type", "coworker");

        ByteArrayOutputStream bytes1 = new ByteArrayOutputStream();
        DataOutput out = new DataOutputStream(bytes1);
        VertexToFaunusBinary.write(marko, out);
        VertexToFaunusBinary.write(stephen, out);

        DataInput in = new DataInputStream(new ByteArrayInputStream(bytes1.toByteArray()));

        FaunusVertex markoFaunus = new FaunusVertex(in);
        assertEquals(markoFaunus.getProperty("name"), "marko");
        assertEquals(markoFaunus.getProperty("age"), 32);
        assertEquals(markoFaunus.getPropertyKeys().size(), 2);
        assertEquals(asList(markoFaunus.getEdges(Direction.OUT)).size(), 1);
        assertFalse(markoFaunus.getEdges(Direction.IN).iterator().hasNext());
        assertTrue(markoFaunus.getEdges(Direction.OUT, "knows").iterator().hasNext());
        assertFalse(markoFaunus.getEdges(Direction.OUT, "blah").iterator().hasNext());
        FaunusEdge edge = (FaunusEdge) markoFaunus.getEdges(Direction.OUT).iterator().next();
        assertEquals(edge.getLabel(), "knows");
        assertEquals(edge.getProperty("weight"), 0.2);
        assertEquals(edge.getProperty("type"), "coworker");
        assertEquals(edge.getPropertyKeys().size(), 2);
        assertEquals(edge.getVertex(Direction.IN).getId(), 3l);
        assertEquals(edge.getVertex(Direction.OUT).getId(), 1l);

        FaunusVertex stephenFaunus = new FaunusVertex(in);
        assertEquals(stephenFaunus.getProperty("name"), "stephen");
        assertEquals(stephenFaunus.getProperty("weight"), 160.42);
        assertTrue((Boolean) stephenFaunus.getProperty("male"));
        assertEquals(stephenFaunus.getPropertyKeys().size(), 3);
        assertEquals(asList(stephenFaunus.getEdges(Direction.IN)).size(), 1);
        assertFalse(stephenFaunus.getEdges(Direction.OUT).iterator().hasNext());
        assertTrue(stephenFaunus.getEdges(Direction.IN, "knows").iterator().hasNext());
        assertFalse(stephenFaunus.getEdges(Direction.IN, "blah").iterator().hasNext());
        edge = (FaunusEdge) stephenFaunus.getEdges(Direction.IN).iterator().next();
        assertEquals(edge.getLabel(), "knows");
        assertEquals(edge.getProperty("weight"), 0.2);
        assertEquals(edge.getProperty("type"), "coworker");
        assertEquals(edge.getPropertyKeys().size(), 2);
        assertEquals(edge.getVertex(Direction.IN).getId(), 3l);
        assertEquals(edge.getVertex(Direction.OUT).getId(), 1l);

    }
}
TOP

Related Classes of com.thinkaurelius.faunus.formats.rexster.util.VertexToFaunusBinaryTest

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.