Added new tests as suggested by @okram.

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

Branch: refs/heads/TINKERPOP-1682
Commit: 7362e954b121e20c403c0341f596609df6b302e6
Parents: a0f9e4c
Author: Daniel Kuppitz <daniel_kupp...@hotmail.com>
Authored: Mon Jun 19 18:24:39 2017 +0200
Committer: Daniel Kuppitz <daniel_kupp...@hotmail.com>
Committed: Wed Jul 12 18:47:25 2017 +0200

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  2 +-
 .../process/traversal/step/map/OrderTest.java   | 51 ++++++++++++++++++++
 .../traversal/step/sideEffect/GroupTest.java    | 40 +++++++++++++++
 3 files changed, 92 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7362e954/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index a90740e..57c33dc 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -44,8 +44,8 @@ TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET)
 * Removed previously deprecated `TraversalScriptHelper` class.
 * `gremlin.sh` and `gremln.bat` no longer support the option to pass a script 
as an argument for execution mode without using the `-i` option.
 * Graphite and Ganglia are no longer packaged with the Gremlin Server 
distribution.
-* `TransactionException` is no longer a class of `AbstractTransaction` and it 
extends `RuntimeException`.
 * Included an ellipse on long property names that are truncated.
+* Added `TraversalParent.replaceTraversal()` which can replace a direct child 
traversal.
 * Added `ByModulatorOptimizationStrategy` which replaces certain standard 
traversals w/ optimized traversals (e.g. `TokenTraversal`).
 * Renamed `RangeByIsCountStrategy` to `CountStrategy`.
 * Added more specific typing to various `__` traversal steps. E.g. 
`<A,Vertex>out()` is `<Vertex,Vertex>out()`.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7362e954/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
index 7935252..85902bd 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/OrderTest.java
@@ -29,6 +29,7 @@ import 
org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 import org.apache.tinkerpop.gremlin.structure.Column;
+import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Test;
@@ -96,6 +97,10 @@ public abstract class OrderTest extends 
AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, String> 
get_g_V_hasLabelXsongX_order_byXperfomances_decrX_byXnameX_rangeX110_120X_name();
 
+    public abstract Traversal<Vertex, Vertex> get_g_V_order_byXlabelX();
+
+    public abstract Traversal<Vertex, Vertex> get_g_V_order_byXlabel_decrX();
+
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_name_order() {
@@ -374,6 +379,42 @@ public abstract class OrderTest extends 
AbstractGremlinProcessTest {
                 "KNOCKING ON HEAVENS DOOR", "MEMPHIS BLUES"), traversal);
     }
 
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_order_byXlabelX() {
+        final Traversal<Vertex, Vertex> traversal = get_g_V_order_byXlabelX();
+        printTraversalForm(traversal);
+        for (int i = 0; i < 4; i++) {
+            assertTrue(traversal.hasNext());
+            final Vertex v = traversal.next();
+            assertEquals("person", v.label());
+        }
+        for (int i = 0; i < 2; i++) {
+            assertTrue(traversal.hasNext());
+            final Vertex v = traversal.next();
+            assertEquals("software", v.label());
+        }
+        assertFalse(traversal.hasNext());
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_order_byXlabel_decrX() {
+        final Traversal<Vertex, Vertex> traversal = 
get_g_V_order_byXlabel_decrX();
+        printTraversalForm(traversal);
+        for (int i = 0; i < 2; i++) {
+            assertTrue(traversal.hasNext());
+            final Vertex v = traversal.next();
+            assertEquals("software", v.label());
+        }
+        for (int i = 0; i < 4; i++) {
+            assertTrue(traversal.hasNext());
+            final Vertex v = traversal.next();
+            assertEquals("person", v.label());
+        }
+        assertFalse(traversal.hasNext());
+    }
+
     public static class Traversals extends OrderTest {
 
         @Override
@@ -484,5 +525,15 @@ public abstract class OrderTest extends 
AbstractGremlinProcessTest {
         public Traversal<Vertex, String> 
get_g_V_hasLabelXsongX_order_byXperfomances_decrX_byXnameX_rangeX110_120X_name()
 {
             return g.V().hasLabel("song").order().by("performances", 
Order.decr).by("name").range(110, 120).values("name");
         }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_order_byXlabelX() {
+            return g.V().order().by(__.label());
+        }
+
+        @Override
+        public Traversal<Vertex, Vertex> get_g_V_order_byXlabel_decrX() {
+            return g.V().order().by(__.label(), Order.decr);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/7362e954/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
----------------------------------------------------------------------
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
index 5f2504e..554db37 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTest.java
@@ -99,6 +99,10 @@ public abstract class GroupTest extends 
AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Map<String, List<Object>>> 
get_g_withSideEffectXa__marko_666_noone_blahX_V_groupXaX_byXnameX_byXoutE_label_foldX_capXaX();
 
+    public abstract Traversal<Vertex, Map<String, Long>> 
get_g_V_group_byXlabelX_byXlabel_countX();
+
+    public abstract Traversal<Vertex, Map<String, Long>> 
get_g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX();
+
     @Test
     @LoadGraphWith(MODERN)
     public void g_V_group_byXnameX() {
@@ -484,6 +488,32 @@ public abstract class GroupTest extends 
AbstractGremlinProcessTest {
         checkSideEffects(traversal.asAdmin().getSideEffects(), "a", 
HashMap.class);
     }
 
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_group_byXlabelX_byXlabel_countX() {
+        final Traversal<Vertex, Map<String, Long>> traversal = 
get_g_V_group_byXlabelX_byXlabel_countX();
+        printTraversalForm(traversal);
+        final Map<String, Long> map = traversal.next();
+        assertEquals(2, map.size());
+        assertTrue(map.containsKey("person"));
+        assertTrue(map.containsKey("software"));
+        assertEquals(4L, map.get("person").longValue());
+        assertEquals(2L, map.get("software").longValue());
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX() {
+        final Traversal<Vertex, Map<String, Long>> traversal = 
get_g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX();
+        printTraversalForm(traversal);
+        final Map<String, Long> map = traversal.next();
+        assertEquals(2, map.size());
+        assertTrue(map.containsKey("person"));
+        assertTrue(map.containsKey("software"));
+        assertEquals(4L, map.get("person").longValue());
+        assertEquals(2L, map.get("software").longValue());
+    }
+
     public static class Traversals extends GroupTest {
 
         @Override
@@ -593,5 +623,15 @@ public abstract class GroupTest extends 
AbstractGremlinProcessTest {
             map.put("noone", new ArrayList<>(Collections.singleton("blah")));
             return g.withSideEffect("a", 
map).V().group("a").by("name").by(outE().label().fold()).cap("a");
         }
+
+        @Override
+        public Traversal<Vertex, Map<String, Long>> 
get_g_V_group_byXlabelX_byXlabel_countX() {
+            return g.V().<String, 
Long>group().by(__.label()).by(__.label().count());
+        }
+
+        @Override
+        public Traversal<Vertex, Map<String, Long>> 
get_g_V_groupXmX_byXlabelX_byXlabel_countX_capXmX() {
+            return 
g.V().group("m").by(__.label()).by(__.label().count()).cap("m");
+        }
     }
 }

Reply via email to