Merge branch 'tp32' into tp33
Conflicts:
gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyAddVertexTest.groovy
gremlin-test/features/map/AddVertex.feature
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexTest.java
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9d5b7229
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9d5b7229
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9d5b7229
Branch: refs/heads/tp33
Commit: 9d5b72290bddfbc0b987297626427e2cfedd86d5
Parents: 012eba6 44c4073
Author: Stephen Mallette <[email protected]>
Authored: Wed Apr 25 07:27:29 2018 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Wed Apr 25 07:27:29 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
.../process/traversal/step/util/Parameters.java | 30 +++++++++++---------
gremlin-test/features/map/AddVertex.feature | 26 +++++++++++++++++
.../traversal/step/map/AddVertexTest.java | 20 +++++++++++--
4 files changed, 62 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9d5b7229/CHANGELOG.asciidoc
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9d5b7229/gremlin-test/features/map/AddVertex.feature
----------------------------------------------------------------------
diff --cc gremlin-test/features/map/AddVertex.feature
index e58040c,996521b..5d324f3
--- a/gremlin-test/features/map/AddVertex.feature
+++ b/gremlin-test/features/map/AddVertex.feature
@@@ -309,54 -309,29 +309,80 @@@ Feature: Step - addV(
| m[{"temp": ["test"], "name": ["lop"]}] |
| m[{"temp": ["test"], "name": ["ripple"]}] |
+ Scenario: g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name
+ Given the empty graph
+ And the graph initializer of
+ """
+ g.addV("person").property(T.id, 1).property("name",
"marko").property("age", 29).as("marko").
+ addV("person").property(T.id, 2).property("name",
"vadas").property("age", 27).as("vadas").
+ addV("software").property(T.id, 3).property("name",
"lop").property("lang", "java").as("lop").
+ addV("person").property(T.id,
4).property("name","josh").property("age", 32).as("josh").
+ addV("software").property(T.id, 5).property("name",
"ripple").property("lang", "java").as("ripple").
+ addV("person").property(T.id, 6).property("name",
"peter").property("age", 35).as('peter').
+ addE("knows").from("marko").to("vadas").property(T.id,
7).property("weight", 0.5).
+ addE("knows").from("marko").to("josh").property(T.id,
8).property("weight", 1.0).
+ addE("created").from("marko").to("lop").property(T.id,
9).property("weight", 0.4).
+ addE("created").from("josh").to("ripple").property(T.id,
10).property("weight", 1.0).
+ addE("created").from("josh").to("lop").property(T.id,
11).property("weight", 0.4).
+ addE("created").from("peter").to("lop").property(T.id,
12).property("weight", 0.2)
+ """
+ And the traversal of
+ """
+ g.withSideEffect("a", "name").addV().property(__.select("a"),
"marko").values("name")
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | marko |
- And the graph should return 2 for count of "g.V().has(\"name\",\"marko\")"
++ And the graph should return 2 for count of "g.V().has(\"name\",\"marko\")"
+ Scenario:
g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMapXtrueX
+ Given the empty graph
+ And the graph initializer of
+ """
+ g.addV("person").property(T.id, 1).property("name",
"marko").property("age", 29).as("marko").
+ addV("person").property(T.id, 2).property("name",
"vadas").property("age", 27).as("vadas").
+ addV("software").property(T.id, 3).property("name",
"lop").property("lang", "java").as("lop").
+ addV("person").property(T.id,
4).property("name","josh").property("age", 32).as("josh").
+ addV("software").property(T.id, 5).property("name",
"ripple").property("lang", "java").as("ripple").
+ addV("person").property(T.id, 6).property("name",
"peter").property("age", 35).as('peter').
+ addE("knows").from("marko").to("vadas").property(T.id,
7).property("weight", 0.5).
+ addE("knows").from("marko").to("josh").property(T.id,
8).property("weight", 1.0).
+ addE("created").from("marko").to("lop").property(T.id,
9).property("weight", 0.4).
+ addE("created").from("josh").to("ripple").property(T.id,
10).property("weight", 1.0).
+ addE("created").from("josh").to("lop").property(T.id,
11).property("weight", 0.4).
+ addE("created").from("peter").to("lop").property(T.id,
12).property("weight", 0.2)
+ """
+ And the traversal of
+ """
+ g.V().as("a").has("name",
"marko").out("created").as("b").addV(__.select("a").label()).property("test",
__.select("b").label()).valueMap(true)
+ """
+ When iterated to list
+ Then the result should have a count of 1
+ And the graph should return 1 for count of
"g.V().has(\"person\",\"test\",\"software\")"
+
+ Scenario: g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label
+ Given the empty graph
+ And the graph initializer of
+ """
+ g.addV("person").property(T.id, 1).property("name",
"marko").property("age", 29).as("marko").
+ addV("person").property(T.id, 2).property("name",
"vadas").property("age", 27).as("vadas").
+ addV("software").property(T.id, 3).property("name",
"lop").property("lang", "java").as("lop").
+ addV("person").property(T.id,
4).property("name","josh").property("age", 32).as("josh").
+ addV("software").property(T.id, 5).property("name",
"ripple").property("lang", "java").as("ripple").
+ addV("person").property(T.id, 6).property("name",
"peter").property("age", 35).as('peter').
+ addE("knows").from("marko").to("vadas").property(T.id,
7).property("weight", 0.5).
+ addE("knows").from("marko").to("josh").property(T.id,
8).property("weight", 1.0).
+ addE("created").from("marko").to("lop").property(T.id,
9).property("weight", 0.4).
+ addE("created").from("josh").to("ripple").property(T.id,
10).property("weight", 1.0).
+ addE("created").from("josh").to("lop").property(T.id,
11).property("weight", 0.4).
+ addE("created").from("peter").to("lop").property(T.id,
12).property("weight", 0.2)
+ """
+ And the traversal of
+ """
+ g.addV(__.V().has("name", "marko").properties("name").key()).label()
+ """
+ When iterated to list
+ Then the result should be unordered
+ | result |
+ | name |
+
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9d5b7229/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexTest.java
----------------------------------------------------------------------
diff --cc
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexTest.java
index 5823891,7cf5e6a..f732a44
---
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexTest.java
+++
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexTest.java
@@@ -37,12 -37,9 +37,10 @@@ import java.util.List
import java.util.Map;
import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.V;
import static
org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.select;
- import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
/**
@@@ -71,9 -68,14 +69,11 @@@ public abstract class AddVertexTest ext
public abstract Traversal<Vertex, String>
get_g_withSideEffectXa_markoX_addV_propertyXname_selectXaXX_name();
- public abstract Traversal<Vertex, String>
get_g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name();
+ public abstract Traversal<Vertex, String>
get_g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label();
- // 3.0.0 DEPRECATIONS
- @Deprecated
- public abstract Traversal<Vertex, Vertex>
get_g_V_addVXlabel_animal_age_0X();
++ public abstract Traversal<Vertex, String>
get_g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name();
+
- @Deprecated
- public abstract Traversal<Vertex, Vertex>
get_g_addVXlabel_person_name_stephenX();
+ public abstract Traversal<Vertex, Map<Object, Object>>
get_g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMapXtrueX();
@Test
@LoadGraphWith(MODERN)
@@@ -263,27 -299,14 +263,38 @@@
@Test
@LoadGraphWith(MODERN)
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class,
feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class,
feature = Graph.Features.VertexFeatures.FEATURE_ADD_PROPERTY)
+ public void
g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name() {
+ final Traversal<Vertex, String> traversal =
get_g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name();
+ printTraversalForm(traversal);
+ assertEquals("marko", traversal.next());
+ assertFalse(traversal.hasNext());
+ }
+
++ @Test
++ @LoadGraphWith(MODERN)
++ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class,
feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ public void g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label() {
+ final Traversal<Vertex, String> traversal =
get_g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label();
+ printTraversalForm(traversal);
+ assertEquals("name", traversal.next());
+ assertFalse(traversal.hasNext());
+ }
+
+ @Test
+ @LoadGraphWith(MODERN)
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class,
feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class,
feature = Graph.Features.VertexFeatures.FEATURE_ADD_PROPERTY)
+ public void
g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMapXtrueX()
{
+ final Traversal<Vertex, Map<Object,Object>> traversal =
get_g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMapXtrueX();
+ printTraversalForm(traversal);
+ final Map<Object,Object> map = traversal.next();
+ assertFalse(traversal.hasNext());
+ assertEquals("person",map.get(T.label));
+ assertEquals("software",((List)map.get("test")).get(0));
+ assertEquals(1, ((List)map.get("test")).size());
+ assertEquals(3, map.size());
+ }
public static class Traversals extends AddVertexTest {
@@@ -338,13 -371,8 +349,18 @@@
}
@Override
+ public Traversal<Vertex, String>
get_g_withSideEffectXa_nameX_addV_propertyXselectXaX_markoX_name() {
+ return g.withSideEffect("a",
"name").addV().property(select("a"),"marko").values("name");
+ }
++
++ @Override
+ public Traversal<Vertex, String>
get_g_addVXV_hasXname_markoX_propertiesXnameX_keyX_label() {
+ return g.addV(V().has("name",
"marko").properties("name").key()).label();
+ }
+
+ @Override
+ public Traversal<Vertex, Map<Object, Object>>
get_g_V_asXaX_hasXname_markoX_outXcreatedX_asXbX_addVXselectXaX_labelX_propertyXtest_selectXbX_labelX_valueMapXtrueX()
{
+ return g.V().as("a").has("name",
"marko").out("created").as("b").addV(select("a").label()).property("test",
select("b").label()).valueMap(true);
+ }
}
}