diff --git a/src/test/java/com/syncleus/ferma/FramedGraphTest.java b/src/test/java/com/syncleus/ferma/FramedGraphTest.java index c6369ce1c55de9cdcfe400decf42ebec3b493b9f..2d341cadaa6dcbc47622122394436f99a79b9a2f 100644 --- a/src/test/java/com/syncleus/ferma/FramedGraphTest.java +++ b/src/test/java/com/syncleus/ferma/FramedGraphTest.java @@ -16,12 +16,13 @@ package com.syncleus.ferma; import static org.junit.Assert.assertEquals; + import java.util.Iterator; import java.util.List; import java.util.function.Consumer; - import com.google.common.base.Function; import com.google.common.collect.Lists; +import com.syncleus.ferma.framefactories.FrameFactory; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.structure.Element; @@ -396,147 +397,135 @@ public class FramedGraphTest { Assert.assertNotNull(julia.getElement().property(PolymorphicTypeResolver.TYPE_RESOLUTION_KEY).value()); } -// @Test -// public void testCustomFrameBuilder() { -// final Person o = new Person(); -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { -// -// @SuppressWarnings("unchecked") -// @Override -// public <T> T create(final Element e, final Class<T> kind) { -// return (T) o; -// } -// }, new PolymorphicTypeResolver()); -// final Person person = fg.addFramedVertex(Person.DEFAULT_INITIALIZER); -// Assert.assertEquals(o, person); -// } -// -// @Test -// public void testCustomFrameBuilderByClass() { -// final Person o = new Person(); -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { -// -// @SuppressWarnings("unchecked") -// @Override -// public <T> T create(final Element e, final Class<T> kind) { -// return (T) o; -// } -// }, new PolymorphicTypeResolver()); -// final Person person = fg.addFramedVertex(Person.class); -// Assert.assertEquals(o, person); -// } -// -// @Test -// public void testCustomFrameBuilderExplicit() { -// final Person o = new Person(); -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { -// -// @SuppressWarnings("unchecked") -// @Override -// public <T> T create(final Element e, final Class<T> kind) { -// return (T) o; -// } -// }, new PolymorphicTypeResolver()); -// final Person person = fg.addFramedVertexExplicit(Person.DEFAULT_INITIALIZER); -// Assert.assertEquals(o, person); -// } -// -// @Test -// public void testCustomFrameBuilderExplicitByClass() { -// final Person o = new Person(); -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { -// -// @SuppressWarnings("unchecked") -// @Override -// public <T> T create(final Element e, final Class<T> kind) { -// return (T) o; -// } -// }, new PolymorphicTypeResolver()); -// final Person person = fg.addFramedVertexExplicit(Person.class); -// Assert.assertEquals(o, person); -// } -// -// @Mock(answer = Answers.RETURNS_MOCKS) -// private ThreadedTransactionalGraph transactionalGraph; -// -// @Test -// public void testTransactionCommitted() { -// final FramedTransactionalGraph fg = new DelegatingFramedTransactionalGraph(transactionalGraph); -// fg.commit(); -// Mockito.verify(transactionalGraph).commit(); -// } -// -// @Test -// public void testTransactionRolledBack() { -// final FramedTransactionalGraph fg = new DelegatingFramedTransactionalGraph(transactionalGraph); -// fg.rollback(); -// Mockito.verify(transactionalGraph).rollback(); -// } -// -// @Test -// public void testTransactionStart() { -// final FramedThreadedTransactionalGraph fg = new DelegatingFramedThreadedTransactionalGraph(transactionalGraph); -// fg.newTransaction(); -// Mockito.verify(transactionalGraph).newTransaction(); -// } -// -// @Test -// public void testUntypedFrames() { -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g); -// final TVertex p1 = fg.addFramedVertex(); -// p1.setProperty("name", "Bryn"); -// -// final TVertex p2 = fg.addFramedVertex(); -// p2.setProperty("name", "Julia"); -// final TEdge knows = p1.addFramedEdge("knows", p2); -// knows.setProperty("years", 15); -// -// final VertexFrame bryn = fg.v().has("name", "Bryn").next(); -// -// -// Assert.assertEquals("Bryn", bryn.getProperty("name")); -// Assert.assertEquals(15, bryn.outE("knows").toList().get(0).getProperty("years")); -// -// final Collection<? extends Integer> knowsCollection = fg.v().has("name", "Julia").bothE().property("years", Integer.class).aggregate().cap(); -// Assert.assertEquals(1, knowsCollection.size()); -// } -// -// @Test -// public void testUntypedFramesExplicit() { -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g); -// final TVertex p1 = fg.addFramedVertexExplicit(); -// p1.setProperty("name", "Bryn"); -// -// final TVertex p2 = fg.addFramedVertexExplicit(); -// p2.setProperty("name", "Julia"); -// final TEdge knows = p1.addFramedEdgeExplicit("knows", p2); -// knows.setProperty("years", 15); -// -// final VertexFrame bryn = fg.v().has("name", "Bryn").next(); -// -// -// Assert.assertEquals("Bryn", bryn.getProperty("name")); -// Assert.assertEquals(15, bryn.outE("knows").toList().get(0).getProperty("years")); -// -// final Collection<? extends Integer> knowsCollection = fg.v().has("name", "Julia").bothE().property("years", Integer.class).aggregate().cap(); -// Assert.assertEquals(1, knowsCollection.size()); -// } -// -// @Test -// public void testGetFramedVertexExplicit() { -// final Graph g = TinkerGraph.open(); -// final FramedGraph fg = new DelegatingFramedGraph(g); -// final TVertex p1 = fg.addFramedVertexExplicit(); -// p1.setProperty("name", "Bryn"); -// -// Person p = fg.getFramedVertexExplicit(Person.class, p1.getId()); -// assertNotNull(p); -// assertEquals("Bryn", p.getName()); -// } + @Test + public void testCustomFrameBuilder() { + final Person o = new Person(); + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { + + @SuppressWarnings("unchecked") + @Override + public <T> T create(final Element e, final Class<T> kind) { + return (T) o; + } + }, new PolymorphicTypeResolver()); + final Person person = fg.addFramedVertex(Person.DEFAULT_INITIALIZER); + Assert.assertEquals(o, person); + } + + @Test + public void testCustomFrameBuilderByClass() { + final Person o = new Person(); + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { + + @SuppressWarnings("unchecked") + @Override + public <T> T create(final Element e, final Class<T> kind) { + return (T) o; + } + }, new PolymorphicTypeResolver()); + final Person person = fg.addFramedVertex(Person.class); + Assert.assertEquals(o, person); + } + + @Test + public void testCustomFrameBuilderExplicit() { + final Person o = new Person(); + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { + + @SuppressWarnings("unchecked") + @Override + public <T> T create(final Element e, final Class<T> kind) { + return (T) o; + } + }, new PolymorphicTypeResolver()); + final Person person = fg.addFramedVertexExplicit(Person.DEFAULT_INITIALIZER); + Assert.assertEquals(o, person); + } + + @Test + public void testCustomFrameBuilderExplicitByClass() { + final Person o = new Person(); + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g, new FrameFactory() { + + @SuppressWarnings("unchecked") + @Override + public <T> T create(final Element e, final Class<T> kind) { + return (T) o; + } + }, new PolymorphicTypeResolver()); + final Person person = fg.addFramedVertexExplicit(Person.class); + Assert.assertEquals(o, person); + } + + @Test + public void testUntypedFrames() { + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g); + final TVertex p1 = fg.addFramedVertex(); + p1.setProperty("name", "Bryn"); + + final TVertex p2 = fg.addFramedVertex(); + p2.setProperty("name", "Julia"); + final TEdge knows = p1.addFramedEdge("knows", p2); + knows.setProperty("years", 15); + + final VertexFrame bryn = fg.traverse(new Function<GraphTraversalSource, GraphTraversal<?, ?>>() { + @Nullable + @Override + public GraphTraversal<?, ?> apply(@Nullable GraphTraversalSource input) { + return input.V().has("name", "Bryn"); + } + }).next(VertexFrame.class); + + + Assert.assertEquals("Bryn", bryn.getProperty("name")); + Assert.assertEquals(15, bryn.getRawTraversal().outE("knows").toList().get(0).property("years").value()); + + final Long knowsCount = fg.getRawTraversal().V().has("name", "Julia").bothE().properties("years").aggregate("test").cap("test").count().next(); + Assert.assertEquals((Long) 1L, knowsCount); + } + + @Test + public void testUntypedFramesExplicit() { + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g); + final TVertex p1 = fg.addFramedVertexExplicit(); + p1.setProperty("name", "Bryn"); + + final TVertex p2 = fg.addFramedVertexExplicit(); + p2.setProperty("name", "Julia"); + final TEdge knows = p1.addFramedEdgeExplicit("knows", p2); + knows.setProperty("years", 15); + + final VertexFrame bryn = fg.traverse(new Function<GraphTraversalSource, GraphTraversal<?, ?>>() { + @Nullable + @Override + public GraphTraversal<?, ?> apply(@Nullable GraphTraversalSource input) { + return input.V().has("name", "Bryn"); + } + }).next(VertexFrame.class); + + + Assert.assertEquals("Bryn", bryn.getProperty("name")); + Assert.assertEquals(15, bryn.getRawTraversal().outE("knows").toList().get(0).property("years").value()); + + final Long knowsCount = fg.getRawTraversal().V().has("name", "Julia").bothE().properties("years").aggregate("test").cap("test").count().next(); + Assert.assertEquals((Long) 1L, knowsCount); + } + + @Test + public void testGetFramedVertexExplicit() { + final Graph g = TinkerGraph.open(); + final FramedGraph fg = new DelegatingFramedGraph(g); + final TVertex p1 = fg.addFramedVertexExplicit(); + p1.setProperty("name", "Bryn"); + + Person p = fg.getFramedVertexExplicit(Person.class, p1.getId()); + Assert.assertNotNull(p); + Assert.assertEquals("Bryn", p.getName()); + } }