You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/04/08 23:39:58 UTC

[tinkerpop] branch master updated: Add some additional tests for negative Text predicates

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/master by this push:
     new b4c2fab  Add some additional tests for negative Text predicates
     new 87fe157  Merge pull request #1093 from nastra/negative-text-predicates
b4c2fab is described below

commit b4c2fab64da6a5b46c4dcf5a24473eabb172ea30
Author: Eduard Tudenhoefner <ed...@datastax.com>
AuthorDate: Mon Apr 8 12:38:36 2019 +0200

    Add some additional tests for negative Text predicates
---
 gremlin-test/features/filter/Has.feature           | 45 ++++++++++++++
 .../process/traversal/step/filter/HasTest.java     | 70 ++++++++++++++++++++--
 2 files changed, 111 insertions(+), 4 deletions(-)

diff --git a/gremlin-test/features/filter/Has.feature b/gremlin-test/features/filter/Has.feature
index 30fc4b3..a2d6295 100644
--- a/gremlin-test/features/filter/Has.feature
+++ b/gremlin-test/features/filter/Has.feature
@@ -613,3 +613,48 @@ Feature: Step - has()
     Then the result should be unordered
       | result |
       | v[marko] |
+
+  Scenario: g_V_hasXname_not_containingXarkXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().has("name", TextP.notContaining("ark"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter] |
+
+  Scenario: g_V_hasXname_not_startingWithXmarXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().has("name", TextP.notStartingWith("mar"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter] |
+
+  Scenario: g_V_hasXname_not_endingWithXasXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.V().has("name", TextP.notEndingWith("as"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter] |
\ No newline at end of file
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 ce075da..a1e9e63 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
@@ -44,6 +44,7 @@ import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -128,13 +129,19 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_containingXarkXX();
 
-    public abstract Traversal<Vertex,Vertex> get_g_V_hasXname_startingWithXmarXX();
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_startingWithXmarXX();
 
-    public abstract Traversal<Vertex,Vertex> get_g_V_hasXname_endingWithXasXX();
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_endingWithXasXX();
 
-    public abstract Traversal<Vertex,Vertex> get_g_V_hasXperson_name_containingXoX_andXltXmXXX();
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_not_containingXarkXX();
 
-    public abstract Traversal<Vertex,Vertex> get_g_V_hasXname_gtXmX_andXcontainingXoXXX();
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_not_startingWithXmarXX();
+
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_not_endingWithXasXX();
+
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXperson_name_containingXoX_andXltXmXXX();
+
+    public abstract Traversal<Vertex, Vertex> get_g_V_hasXname_gtXmX_andXcontainingXoXXX();
 
     @Test
     @LoadGraphWith(MODERN)
@@ -590,6 +597,46 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
 
     @Test
     @LoadGraphWith(MODERN)
+    public void g_V_hasXname_not_containingXarkXX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_hasXname_not_containingXarkXX();
+        printTraversalForm(traversal);
+
+        int counter = 0;
+        while (traversal.hasNext()) {
+            counter++;
+            assertNotEquals("marko", traversal.next().value("name"));
+        }
+        assertEquals(5, counter);
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_hasXname_not_startingWithXmarXX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_hasXname_not_startingWithXmarXX();
+        printTraversalForm(traversal);
+        int counter = 0;
+        while (traversal.hasNext()) {
+            counter++;
+            assertNotEquals("marko", traversal.next().value("name"));
+        }
+        assertEquals(5, counter);
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_hasXname_not_endingWithXasXX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_hasXname_not_endingWithXasXX();
+        printTraversalForm(traversal);
+        int counter = 0;
+        while (traversal.hasNext()) {
+            counter++;
+            assertNotEquals("vadas", traversal.next().value("name"));
+        }
+        assertEquals(5, counter);
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
     public void g_V_hasXperson_name_containingXoX_andXltXmXXX() {
         final Traversal<Vertex, Vertex> traversal = get_g_V_hasXperson_name_containingXoX_andXltXmXXX();
         printTraversalForm(traversal);
@@ -805,6 +852,21 @@ public abstract class HasTest extends AbstractGremlinProcessTest {
         }
 
         @Override
+        public Traversal<Vertex, Vertex> get_g_V_hasXname_not_containingXarkXX() {
+            return g.V().has("name", TextP.notContaining("ark"));
+        }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_hasXname_not_startingWithXmarXX() {
+            return g.V().has("name", TextP.notStartingWith("mar"));
+        }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_hasXname_not_endingWithXasXX() {
+            return g.V().has("name", TextP.notEndingWith("as"));
+        }
+
+        @Override
         public Traversal<Vertex, Vertex> get_g_V_hasXperson_name_containingXoX_andXltXmXXX() {
             return g.V().has("person","name", TextP.containing("o").and(P.lt("m")));
         }