package com.tinkerpop.gremlin.test.transform; import com.tinkerpop.blueprints.Edge; import com.tinkerpop.blueprints.Vertex; import com.tinkerpop.pipes.Pipe; import junit.framework.TestCase; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ public class TraversalStepsTest extends TestCase { public void testCompliance() { assertTrue(true); } // VERTEX ADJACENCY public void test_g_V(final Iterator<Vertex> pipe) { int counter = 0; Set<Vertex> vertices = new HashSet<Vertex>(); while (pipe.hasNext()) { counter++; vertices.add(pipe.next()); } assertEquals(vertices.size(), 6); assertEquals(counter, 6); } public void test_g_v1_out(final Iterator<Vertex> pipe) { int counter = 0; Set<Vertex> vertices = new HashSet<Vertex>(); while (pipe.hasNext()) { counter++; Vertex vertex = pipe.next(); vertices.add(vertex); assertTrue(vertex.getProperty("name").equals("vadas") || vertex.getProperty("name").equals("josh") || vertex.getProperty("name").equals("lop")); } assertEquals(counter, 3); assertEquals(vertices.size(), 3); } public void test_g_v2_in(final Iterator<Vertex> pipe) { int counter = 0; while (pipe.hasNext()) { counter++; assertEquals(pipe.next().getProperty("name"), "marko"); } assertEquals(counter, 1); } public void test_g_v4_both(final Iterator<Vertex> pipe) { int counter = 0; Set<Vertex> vertices = new HashSet<Vertex>(); while (pipe.hasNext()) { counter++; Vertex vertex = pipe.next(); vertices.add(vertex); assertTrue(vertex.getProperty("name").equals("marko") || vertex.getProperty("name").equals("ripple") || vertex.getProperty("name").equals("lop")); } assertEquals(counter, 3); assertEquals(vertices.size(), 3); } public void test_g_v1_outX1_knowsX_name(final Iterator<String> pipe) { final String name = pipe.next(); assertTrue(name.equals("vadas") || name.equals("josh")); assertFalse(pipe.hasNext()); } public void test_g_V_bothX1_createdX_name(final Iterator<String> pipe) { int counter = 0; while (pipe.hasNext()) { counter++; final String name = pipe.next(); assertTrue(name.equals("marko") || name.equals("lop") || name.equals("josh") || name.equals("ripple") || name.equals("peter")); } assertEquals(counter, 5); } // EDGE ADJACENCY public void test_g_E(final Iterator<Edge> pipe) { int counter = 0; Set<Edge> edges = new HashSet<Edge>(); while (pipe.hasNext()) { counter++; edges.add(pipe.next()); } assertEquals(edges.size(), 6); assertEquals(counter, 6); } public void test_g_v1_outE(final Iterator<Edge> pipe) { int counter = 0; Set<Edge> edges = new HashSet<Edge>(); while (pipe.hasNext()) { counter++; Edge edge = pipe.next(); edges.add(edge); assertTrue(edge.getLabel().equals("knows") || edge.getLabel().equals("created")); } assertEquals(counter, 3); assertEquals(edges.size(), 3); } public void test_g_v2_inE(final Iterator<Edge> pipe) { int counter = 0; while (pipe.hasNext()) { counter++; assertEquals(pipe.next().getLabel(), "knows"); } assertEquals(counter, 1); } public void test_g_v4_bothE(final Iterator<Edge> pipe) { int counter = 0; Set<Edge> edges = new HashSet<Edge>(); while (pipe.hasNext()) { counter++; Edge edge = pipe.next(); edges.add(edge); assertTrue(edge.getLabel().equals("knows") || edge.getLabel().equals("created")); } assertEquals(counter, 3); assertEquals(edges.size(), 3); } public void test_g_v4_bothEX1_createdX(final Iterator<Edge> pipe) { final Edge edge = pipe.next(); assertEquals(edge.getLabel(), "created"); assertTrue(edge.getProperty("weight").equals(1.0f) || edge.getProperty("weight").equals(0.4f)); assertFalse(pipe.hasNext()); } public void test_g_V_inEX2_knowsX_outV_name(final Iterator<String> pipe) { int counter = 0; while (pipe.hasNext()) { counter++; assertEquals(pipe.next(), "marko"); } assertFalse(pipe.hasNext()); assertEquals(counter, 2); } // EDGE/VERTEX ADJACENCY public void test_g_v1_outE_inV(final Iterator<Vertex> pipe) { this.test_g_v1_out(pipe); } public void test_g_v2_inE_outV(final Pipe<Vertex, Vertex> pipe) { this.test_g_v2_in(pipe); } // VERTEX EDGE LABEL ADJACENCY public void test_g_v1_outXknowsX(final Pipe<Vertex, Vertex> pipe) { int counter = 0; Set<Vertex> vertices = new HashSet<Vertex>(); while (pipe.hasNext()) { counter++; Vertex vertex = pipe.next(); vertices.add(vertex); assertTrue(vertex.getProperty("name").equals("vadas") || vertex.getProperty("name").equals("josh")); } assertEquals(counter, 2); assertEquals(vertices.size(), 2); } public void test_g_v1_outXknows_createdX(final Pipe<Vertex, Vertex> pipe) { this.test_g_v1_out(pipe); } public void test_g_v1_outEXknowsX_inV(final Pipe<Vertex, Vertex> pipe) { this.test_g_v1_outXknowsX(pipe); } public void test_g_v1_outEXknows_createdX_inV(final Pipe<Vertex, Vertex> pipe) { this.test_g_v1_outE_inV(pipe); } public void test_g_V_out_out(final Pipe<Vertex, Vertex> pipe) { int counter = 0; Set<Vertex> vertices = new HashSet<Vertex>(); while (pipe.hasNext()) { counter++; Vertex vertex = pipe.next(); vertices.add(vertex); assertTrue(vertex.getProperty("name").equals("lop") || vertex.getProperty("name").equals("ripple")); } assertEquals(counter, 2); assertEquals(vertices.size(), 2); } public void test_g_v1_out_out_out(final Pipe<Vertex, Vertex> pipe) { assertFalse(pipe.hasNext()); } // PROPERTY TESTING public void test_g_v1_out_propertyXnameX(final Pipe<Vertex, Object> pipe) { int counter = 0; Set<String> names = new HashSet<String>(); while (pipe.hasNext()) { counter++; String name = (String) pipe.next(); names.add(name); assertTrue(name.equals("vadas") || name.equals("josh") || name.equals("lop")); } assertEquals(counter, 3); assertEquals(names.size(), 3); } }