TINKERPOP-1857 Full has() test suite for GLVs

FeatureCoverageTest now passes for it. Added more consistency to the java test.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b2c79d61
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b2c79d61
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b2c79d61

Branch: refs/heads/TINKERPOP-1857
Commit: b2c79d61c019223a94ac890980955c3b819c4bc1
Parents: 20b10c4
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Dec 28 18:38:24 2017 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Feb 14 15:34:09 2018 -0500

----------------------------------------------------------------------
 gremlin-test/features/filter/Has.feature        | 160 +++++++++++++++++++
 .../process/traversal/step/filter/HasTest.java  |   2 +-
 2 files changed, 161 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b2c79d61/gremlin-test/features/filter/Has.feature
----------------------------------------------------------------------
diff --git a/gremlin-test/features/filter/Has.feature 
b/gremlin-test/features/filter/Has.feature
index f3ef5a0..17f2716 100644
--- a/gremlin-test/features/filter/Has.feature
+++ b/gremlin-test/features/filter/Has.feature
@@ -151,6 +151,45 @@ Feature: Step - has()
 
   Scenario: g_VXv2X_hasXage_gt_30X
     Given the modern graph
+    And using the parameter v4Id defined as "v[josh].id"
+    And using the parameter d30 defined as "d[30].i"
+    And the traversal of
+      """
+      g.V(g.V(v4Id).next()).has("age", P.gt(d30))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[josh] |
+
+  Scenario: g_VX1X_out_hasXid_lt_3X
+    Given the modern graph
+    And using the parameter v1Id defined as "v[marko].id"
+    And using the parameter v3Id defined as "v[lop].id"
+    And the traversal of
+      """
+      g.V(v1Id).out().has(T.id, P.lt(v3Id))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+
+  Scenario: g_VX1AsStringX_out_hasXid_2AsStringX
+    Given the modern graph
+    And using the parameter v1Id defined as "v[marko].sid"
+    And using the parameter v2Id defined as "v[vadas].sid"
+    And the traversal of
+      """
+      g.V(v1Id).out().hasId(v2Id)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+
+  Scenario: g_VX1X_out_hasXid_2X
+    Given the modern graph
     And using the parameter v2 defined as "v[josh]"
     And the traversal of
       """
@@ -174,6 +213,21 @@ Feature: Step - has()
       | result |
       | v[vadas] |
 
+  Scenario: g_VX1X_out_hasXid_2_3X
+    Given the modern graph
+    And using the parameter v1Id defined as "v[marko].id"
+    And using the parameter v2Id defined as "v[vadas].id"
+    And using the parameter v3Id defined as "v[lop].id"
+    And the traversal of
+      """
+      g.V(v1Id).out().hasId(v2Id, v3Id)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+
   Scenario: g_VX1X_out_hasXid_2AsString_3AsStringX
     Given the modern graph
     And using the parameter v1Id defined as "v[marko].sid"
@@ -354,6 +408,19 @@ Feature: Step - has()
       | v[josh] |
       | v[peter] |
 
+  Scenario: g_V_both_dedup_properties_hasKeyXageX_value
+    Given the modern graph
+    And the traversal of
+    """
+    g.V().both().properties().dedup().hasKey("age").value()
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[29].i |
+      | d[27].i |
+      | d[32].i |
+      | d[35].i |
   Scenario: g_V_hasXage_withinX27X_count
     Given the modern graph
     And the traversal of
@@ -398,3 +465,96 @@ Feature: Step - has()
       | result |
       | d[2].l |
 
+
+  Scenario: g_V_both_dedup_properties_hasKeyXageX_hasValueXgtX30XX_value
+    Given the modern graph
+    And using the parameter d30 defined as "d[30].i"
+    And the traversal of
+    """
+    g.V().both().properties().dedup().hasKey("age").hasValue(P.gt(d30)).value()
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[32].i |
+      | d[35].i |
+
+  Scenario: g_V_hasNotXageX_name
+    Given the modern graph
+    And the traversal of
+    """
+    g.V().hasNot("age").values("name")
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | lop |
+      | ripple |
+
+  Scenario: g_V_hasIdX1X_hasIdX2X
+    Given the modern graph
+    And using the parameter v1Id defined as "v[marko].id"
+    And using the parameter v2Id defined as "v[vadas].id"
+    And the traversal of
+    """
+    g.V().hasId(v1Id).hasId(v2Id)
+    """
+    When iterated to list
+    Then the result should be empty
+
+  Scenario: g_V_hasLabelXpersonX_hasLabelXsoftwareX
+    Given the modern graph
+    And the traversal of
+    """
+    g.V().hasLabel("person").hasLabel("software")
+    """
+    When iterated to list
+    Then the result should be empty
+
+  Scenario: g_V_hasIdXemptyX_count
+    Given the modern graph
+    And using the parameter l defined as "l[]"
+    And the traversal of
+    """
+    g.V().hasId(l).count()
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[0].l |
+
+  Scenario: g_V_hasIdXwithinXemptyXX_count
+    Given the modern graph
+    And using the parameter l defined as "l[]"
+    And the traversal of
+    """
+    g.V().hasId(P.within(l)).count()
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[0].l |
+
+  Scenario: g_V_hasIdXwithoutXemptyXX_count
+    Given the modern graph
+    And using the parameter l defined as "l[]"
+    And the traversal of
+    """
+    g.V().hasId(P.without(l)).count()
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[6].l |
+
+  Scenario: g_V_notXhasIdXwithinXemptyXXX_count
+    Given the modern graph
+    And using the parameter l defined as "l[]"
+    And the traversal of
+    """
+    g.V().not(__.hasId(P.within(l))).count()
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[6].l |
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b2c79d61/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
index 9071d7e..deff30b 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/HasTest.java
@@ -590,7 +590,7 @@ public abstract class HasTest extends 
AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Vertex> get_g_VXv1X_hasXage_gt_30X(final 
Object v1Id) {
-            return g.V(g.V(v1Id).next()).has("age", P.gt(30));
+            return g.V(v1Id).has("age", P.gt(30));
         }
 
         @Override

Reply via email to