Merge branch 'TINKERPOP-1860' into TINKERPOP-1860-master
Conflicts:
gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyValueMapTest.groovy
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ValueMapTest.java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/13f1adbd
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/13f1adbd
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/13f1adbd
Branch: refs/heads/TINKERPOP-1860-master
Commit: 13f1adbd4a012f413adaa584530a78c258e2d92d
Parents: f20e2ed 0b94b50
Author: Stephen Mallette <[email protected]>
Authored: Mon Jan 8 08:07:21 2018 -0500
Committer: Stephen Mallette <[email protected]>
Committed: Mon Jan 8 08:07:21 2018 -0500
----------------------------------------------------------------------
.../src/main/jython/radish/feature_steps.py | 8 +-
gremlin-test/features/map/ValueMap.feature | 32 ++++++
.../traversal/step/map/ValueMapTest.java | 106 ++++++++++++++++++-
3 files changed, 141 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f1adbd/gremlin-python/src/main/jython/radish/feature_steps.py
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/13f1adbd/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ValueMapTest.java
----------------------------------------------------------------------
diff --cc
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ValueMapTest.java
index 9c13d5a,d1f08ce..6962caf
---
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ValueMapTest.java
+++
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ValueMapTest.java
@@@ -22,8 -22,7 +22,7 @@@ import org.apache.tinkerpop.gremlin.Loa
import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
--import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
import org.apache.tinkerpop.gremlin.structure.T;
import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.Test;
@@@ -33,9 -32,8 +32,15 @@@ import java.util.List
import java.util.Map;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+ import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.*;
++import static org.hamcrest.MatcherAssert.assertThat;
+import static org.apache.tinkerpop.gremlin.structure.T.id;
+import static org.apache.tinkerpop.gremlin.structure.T.label;
- import static org.junit.Assert.*;
++import static org.junit.Assert.assertEquals;
++import static org.junit.Assert.assertNull;
++import static org.junit.Assert.assertNotNull;
++import static org.junit.Assert.assertTrue;
++import static org.junit.Assert.assertFalse;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
@@@ -46,10 -44,12 +51,14 @@@ public abstract class ValueMapTest exte
public abstract Traversal<Vertex, Map<String, List>> get_g_V_valueMap();
- public abstract Traversal<Vertex, Map<String, Object>>
get_g_V_valueMapXtrueX();
++ public abstract Traversal<Vertex, Map<Object, Object>>
get_g_V_valueMapXtrueX();
+
public abstract Traversal<Vertex, Map<String, List>>
get_g_V_valueMapXname_ageX();
- public abstract Traversal<Vertex, Map<String, Object>>
get_g_V_valueMapXtrue_name_ageX();
+ public abstract Traversal<Vertex, Map<Object, Object>>
get_g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX();
+
++ public abstract Traversal<Vertex, Map<Object, Object>>
get_g_V_valueMapXtrue_name_ageX();
+
public abstract Traversal<Vertex, Map<String, List<String>>>
get_g_VX1X_outXcreatedX_valueMap(final Object v1Id);
@Test
@@@ -84,6 -84,43 +93,43 @@@
@Test
@LoadGraphWith(MODERN)
+ public void g_V_valueMapXtrueX() {
- final Traversal<Vertex, Map<String, Object>> traversal =
get_g_V_valueMapXtrueX();
++ final Traversal<Vertex, Map<Object, Object>> traversal =
get_g_V_valueMapXtrueX();
+ printTraversalForm(traversal);
+ int counter = 0;
+ while (traversal.hasNext()) {
+ counter++;
- final Map<String, Object> values = traversal.next();
++ final Map<Object, Object> values = traversal.next();
+ final String name = (String) ((List) values.get("name")).get(0);
+ assertEquals(4, values.size());
+ assertThat(values.containsKey(T.id), is(true));
+ if (name.equals("marko")) {
+ assertEquals(29, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("josh")) {
+ assertEquals(32, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("peter")) {
+ assertEquals(35, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("vadas")) {
+ assertEquals(27, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("lop")) {
+ assertEquals("java", ((List) values.get("lang")).get(0));
+ assertEquals("software", values.get(T.label));
+ } else if (name.equals("ripple")) {
+ assertEquals("java", ((List) values.get("lang")).get(0));
+ assertEquals("software", values.get(T.label));
+ } else {
+ throw new IllegalStateException("It is not possible to reach
here: " + values);
+ }
+ }
+ assertEquals(6, counter);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
public void g_V_valueMapXname_ageX() {
final Traversal<Vertex, Map<String, List>> traversal =
get_g_V_valueMapXname_ageX();
printTraversalForm(traversal);
@@@ -119,6 -156,48 +165,48 @@@
@Test
@LoadGraphWith(MODERN)
+ public void g_V_valueMapXtrue_name_ageX() {
- final Traversal<Vertex, Map<String, Object>> traversal =
get_g_V_valueMapXtrue_name_ageX();
++ final Traversal<Vertex, Map<Object, Object>> traversal =
get_g_V_valueMapXtrue_name_ageX();
+ printTraversalForm(traversal);
+ int counter = 0;
+ while (traversal.hasNext()) {
+ counter++;
- final Map<String, Object> values = traversal.next();
++ final Map<Object, Object> values = traversal.next();
+ final String name = (String) ((List) values.get("name")).get(0);
+ assertThat(values.containsKey(T.id), is(true));
+ if (name.equals("marko")) {
+ assertEquals(4, values.size());
+ assertEquals(29, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("josh")) {
+ assertEquals(4, values.size());
+ assertEquals(32, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("peter")) {
+ assertEquals(4, values.size());
+ assertEquals(35, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("vadas")) {
+ assertEquals(4, values.size());
+ assertEquals(27, ((List) values.get("age")).get(0));
+ assertEquals("person", values.get(T.label));
+ } else if (name.equals("lop")) {
+ assertEquals(3, values.size());
+ assertNull(values.get("lang"));
+ assertEquals("software", values.get(T.label));
+ } else if (name.equals("ripple")) {
+ assertEquals(3, values.size());
+ assertNull(values.get("lang"));
+ assertEquals("software", values.get(T.label));
+ } else {
+ throw new IllegalStateException("It is not possible to reach
here: " + values);
+ }
+ }
+ assertEquals(6, counter);
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
public void g_VX1X_outXcreatedX_valueMap() {
final Traversal<Vertex, Map<String, List<String>>> traversal =
get_g_VX1X_outXcreatedX_valueMap(convertToVertexId("marko"));
printTraversalForm(traversal);
@@@ -131,29 -210,6 +219,29 @@@
}
+ /**
+ * TINKERPOP-1483
+ */
+ @Test
+ @LoadGraphWith(MODERN)
+ public void g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX() {
+ final Traversal<Vertex,Map<Object,Object>>
gt=get_g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX();
+ int cnt = 0;
+ while(gt.hasNext()){
+ final Map<Object,Object> m = gt.next();
+ assertTrue(m.size() > 0);
+ for (Object o : m.keySet()){
+ assertNotNull(m.get(o));
+ }
+ assertTrue(m.containsKey(id));
+ assertTrue(m.containsKey(label));
+ assertEquals("person",m.get(label));
+ cnt++;
+ }
+ // check we had results
+ assertTrue(cnt > 0);
+ }
-
++
public static class Traversals extends ValueMapTest {
@Override
public Traversal<Vertex, Map<String, List>> get_g_V_valueMap() {
@@@ -161,18 -217,23 +249,28 @@@
}
@Override
- public Traversal<Vertex, Map<String, Object>>
get_g_V_valueMapXtrueX() {
++ public Traversal<Vertex, Map<Object, Object>>
get_g_V_valueMapXtrueX() {
+ return g.V().valueMap(true);
+ }
+
+ @Override
public Traversal<Vertex, Map<String, List>>
get_g_V_valueMapXname_ageX() {
return g.V().valueMap("name", "age");
}
@Override
- public Traversal<Vertex, Map<String, Object>>
get_g_V_valueMapXtrue_name_ageX() {
++ public Traversal<Vertex, Map<Object, Object>>
get_g_V_valueMapXtrue_name_ageX() {
+ return g.V().valueMap(true, "name", "age");
+ }
+
+ @Override
public Traversal<Vertex, Map<String, List<String>>>
get_g_VX1X_outXcreatedX_valueMap(final Object v1Id) {
return g.V(v1Id).out("created").valueMap();
}
-
++
+ @Override
+ public Traversal<Vertex, Map<Object, Object>>
get_g_V_hasLabelXpersonX_filterXoutEXcreatedXX_valueMapXtrueX() {
+ return
g.V().hasLabel("person").filter(__.outE("created")).valueMap(true);
+ }
}
}