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

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

commit 5209ccaaab5fbf4f700c2710ffeff15c0b35c68a
Author: Cole-Greer <[email protected]>
AuthorDate: Thu Sep 19 12:34:38 2024 -0700

    add new feature tests
---
 .../integrated/AdjacentToIncidentStrategy.feature  | 80 ++++++++++++++++++++++
 .../ByModulatorOptimizationStrategy.feature        | 52 ++++++++++++++
 .../ComputerFinalizationStrategy.feature           | 52 ++++++++++++++
 .../ComputerVerificationStrategy.feature           | 52 ++++++++++++++
 .../features/integrated/ConnectiveStrategy.feature | 46 +++++++++++++
 .../test/features/integrated/CountStrategy.feature | 46 +++++++++++++
 .../features/integrated/EarlyLimitStrategy.feature | 46 +++++++++++++
 .../EdgeLabelVerificationStrategy.feature          | 63 +++++++++++++++++
 .../features/integrated/ElementIdStrategy.feature  | 52 ++++++++++++++
 .../integrated/FilterRankingStrategy.feature       | 48 +++++++++++++
 .../integrated/GraphFilterStrategy.feature         | 52 ++++++++++++++
 .../integrated/HaltedTraverserStrategy.feature     | 69 +++++++++++++++++++
 .../integrated/IdentityRemovalStrategy.feature     | 52 ++++++++++++++
 .../integrated/IncidentToAdjacentStrategy.feature  | 52 ++++++++++++++
 .../integrated/InlineFilterStrategy.feature        | 42 ++++++++++++
 .../integrated/LambdaRestrictionStrategy.feature   | 54 +++++++++++++++
 .../integrated/LazyBarrierStrategy.feature         | 42 ++++++++++++
 .../integrated/MatchAlgorithmStrategy.feature      | 63 +++++++++++++++++
 .../integrated/MatchPredicateStrategy.feature      | 49 +++++++++++++
 .../MessagePassingReductionStrategy.feature        | 52 ++++++++++++++
 .../features/integrated/OptionsStrategy.feature    | 69 +++++++++++++++++++
 .../features/integrated/OrderLimitStrategy.feature | 52 ++++++++++++++
 .../integrated/PathProcessorStrategy.feature       | 53 ++++++++++++++
 .../integrated/PathRetractionStrategy.feature      | 52 ++++++++++++++
 .../integrated/ProductiveByStrategy.feature        | 42 ++++++++++++
 .../features/integrated/ProfileStrategy.feature    | 52 ++++++++++++++
 .../integrated/ReferenceElementStrategy.feature    | 52 ++++++++++++++
 .../integrated/RepeatUnrollStrategy.feature        | 44 ++++++++++++
 .../ReservedKeysVerificationStrategy.feature       | 50 ++++++++++++++
 .../test/features/integrated/SeedStrategy.feature  | 48 +++++++++++++
 .../StandardVerificationStrategy.feature           | 52 ++++++++++++++
 .../VertexProgramRestrictionStrategy.feature       | 63 +++++++++++++++++
 .../integrated/VertexProgramStrategy.feature       | 52 ++++++++++++++
 33 files changed, 1745 insertions(+)

diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/AdjacentToIncidentStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/AdjacentToIncidentStrategy.feature
new file mode 100644
index 0000000000..608f9662c3
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/AdjacentToIncidentStrategy.feature
@@ -0,0 +1,80 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - AdjacentToIncidentStrategy
+
+  @WithAdjacentToIncidentStrategy
+  Scenario: g_withStrategiesXAdjacentToIncidentStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(AdjacentToIncidentStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXAdjacentToIncidentStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(AdjacentToIncidentStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  @WithAdjacentToIncidentStrategy
+  Scenario: g_withStrategiesXAdjacentToIncidentStrategyX_V_out_count
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(AdjacentToIncidentStrategy).V().out().count()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[6].l |
+
+  @WithAdjacentToIncidentStrategy
+  Scenario: g_withStrategiesXAdjacentToIncidentStrategyX_V_whereXoutX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(AdjacentToIncidentStrategy).V().where(__.out())
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[josh] |
+      | v[peter]  |
+
+
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ByModulatorOptimizationStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ByModulatorOptimizationStrategy.feature
new file mode 100644
index 0000000000..126bf70e1f
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ByModulatorOptimizationStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ByModulatorOptimizationStrategy
+
+  @WithByModulatorOptimizationStrategy
+  Scenario: 
g_withStrategiesXByModulatorOptimizationStrategyX_V_order_byXvaluesXnameXX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(ByModulatorOptimizationStrategy).V().order().by(values("name"))
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | v[josh] |
+      | v[lop] |
+      | v[marko] |
+      | v[peter]  |
+      | v[ripple] |
+      | v[vadas] |
+
+  Scenario: 
g_withoutStrategiesXByModulatorOptimizationStrategyX_V_order_byXvaluesXnameXX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withoutStrategies(ByModulatorOptimizationStrategy).V().order().by(values("name"))
+      """
+    When iterated to list
+    Then the result should be ordered
+      | result |
+      | v[josh] |
+      | v[lop] |
+      | v[marko] |
+      | v[peter]  |
+      | v[ripple] |
+      | v[vadas] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ComputerFinalizationStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ComputerFinalizationStrategy.feature
new file mode 100644
index 0000000000..80dc757fa0
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ComputerFinalizationStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ComputerFinalizationStrategy
+
+  @WithComputerFinalizationStrategy
+  Scenario: g_withStrategiesXComputerFinalizationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(ComputerFinalizationStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXByModulatorOptimizationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(ComputerFinalizationStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ComputerVerificationStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ComputerVerificationStrategy.feature
new file mode 100644
index 0000000000..bd733f5647
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ComputerVerificationStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ComputerVerificationStrategy
+
+  @WithComputerVerificationStrategy
+  Scenario: g_withStrategiesXComputerVerificationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(ComputerVerificationStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXComputerVerificationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(ComputerVerificationStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ConnectiveStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ConnectiveStrategy.feature
new file mode 100644
index 0000000000..d716796261
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ConnectiveStrategy.feature
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ConnectiveStrategy
+
+  @WithConnectiveStrategy @GraphComputerVerificationStarGraphExceeded
+  Scenario: 
g_withStrategiesXConnectiveStrategyStrategyX_V_hasXname_markoX_or_whereXinXknowsX_hasXname_markoXX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(ConnectiveStrategy).V().has("name","marko").or().where(in("knows").has("name","marko"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[josh]  |
+
+#  Scenario: 
g_withoutStrategiesXConnectiveStrategyX_V_hasXname_markoX_or_whereXinXknowsX_hasXname_markoXX
+#    Given the modern graph
+#    And the traversal of
+#      """
+#      
g.withoutStrategies(ConnectiveStrategy).V().has("name","marko").or().where(in("knows").has("name","marko"))
+#      """
+#    When iterated to list
+#    Then the result should be unordered
+#      | result |
+#      | v[marko] |
+#      | v[vadas] |
+#      | v[josh]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/CountStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/CountStrategy.feature
new file mode 100644
index 0000000000..46c26edcb8
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/CountStrategy.feature
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - CountStrategy
+
+  @WithCountStrategy
+  Scenario: g_withStrategiesXCountStrategyX_V_whereXoutE_count_isX0XX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(CountStrategy).V().where(outE().count().is(0))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[ripple]  |
+
+  Scenario: g_withoutStrategiesXCountStrategyX_V_whereXoutE_count_isX0XX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(CountStrategy).V().where(outE().count().is(0))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[ripple]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/EarlyLimitStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/EarlyLimitStrategy.feature
new file mode 100644
index 0000000000..dcbe50be5e
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/EarlyLimitStrategy.feature
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - EarlyLimitStrategy
+
+  @WithEarlyLimitStrategy
+  Scenario: 
g_withStrategiesXEarlyLimitStrategyX_V_out_order_valueMap_limitX3X_selectXnameX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(EarlyLimitStrategy).V().out().order().valueMap().limit(3).select("name")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | l[vadas] |
+      | l[lop] |
+      | l[lop] |
+
+  Scenario: 
g_withoutStrategiesXEarlyLimitStrategyX_V_out_order_valueMap_limitX3X_selectXnameX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withoutStrategies(EarlyLimitStrategy).V().out().order().valueMap().limit(3).select("name")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | l[vadas] |
+      | l[lop] |
+      | l[lop] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/EdgeLabelVerificationStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/EdgeLabelVerificationStrategy.feature
new file mode 100644
index 0000000000..4644c624cc
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/EdgeLabelVerificationStrategy.feature
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - EdgeLabelVerificationStrategy
+
+  @WithEdgeLabelVerificationStrategy
+  Scenario: 
g_withStrategiesXEdgeLabelVerificationStrategyXthrowException_true_logWarning_falseXX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(EdgeLabelVerificationStrategy(throwException: true, 
logWarning: false)).V().out()
+      """
+    When iterated to list
+    Then the traversal will raise an error with message containing text of 
"The provided traversal contains a vertex step without any specified edge label"
+
+  @WithEdgeLabelVerificationStrategy
+  Scenario: 
g_withStrategiesXEdgeLabelVerificationStrategyXthrowException_false_logWarning_falseXX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(EdgeLabelVerificationStrategy(throwException: false, 
logWarning: false)).V().out()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[lop] |
+      | v[lop] |
+      | v[vadas] |
+      | v[josh] |
+      | v[ripple]  |
+
+  Scenario: g_withoutStrategiesXEdgeLabelVerificationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(EdgeLabelVerificationStrategy).V().out()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[lop] |
+      | v[lop] |
+      | v[vadas] |
+      | v[josh] |
+      | v[ripple]  |
+
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ElementIdStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ElementIdStrategy.feature
new file mode 100644
index 0000000000..337eac6bbe
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ElementIdStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ElementIdStrategy
+
+  @WithElementIdStrategy
+  Scenario: g_withStrategiesXElementIdStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(ElementIdStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXElementIdStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(ElementIdStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/FilterRankingStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/FilterRankingStrategy.feature
new file mode 100644
index 0000000000..3c18eb140f
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/FilterRankingStrategy.feature
@@ -0,0 +1,48 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - FilterRankingStrategy
+
+  @WithFilterRankingStrategy
+  Scenario: g_withStrategiesXFilterRankingStrategyX_V_out_order_dedup
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(FilterRankingStrategy).V().out().order().dedup()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+
+  Scenario: g_withoutStrategiesXFilterRankingStrategyX_V_out_order_dedup
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(FilterRankingStrategy).V().out().order().dedup()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/GraphFilterStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/GraphFilterStrategy.feature
new file mode 100644
index 0000000000..c4b318e476
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/GraphFilterStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - GraphFilterStrategy
+
+  @WithGraphFilterStrategy
+  Scenario: g_withStrategiesXGraphFilterStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(GraphFilterStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXGraphFilterStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(GraphFilterStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/HaltedTraverserStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/HaltedTraverserStrategy.feature
new file mode 100644
index 0000000000..91d80bad39
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/HaltedTraverserStrategy.feature
@@ -0,0 +1,69 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - HaltedTraverserStrategy
+
+  @WithHaltedTraverserStrategy
+  Scenario: g_withStrategiesXHaltedTraverserStrategyXDetachedFactoryXX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(HaltedTraverserStrategy(haltedTraverserFactory: 
"org.apache.tinkerpop.gremlin.structure.util.detached.DetachedFactory")).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  @WithHaltedTraverserStrategy
+  Scenario: g_withStrategiesXHaltedTraverserStrategyXReferenceFactoryXX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(HaltedTraverserStrategy(haltedTraverserFactory: 
"org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceFactory")).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXHaltedTraverserStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(HaltedTraverserStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/IdentityRemovalStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/IdentityRemovalStrategy.feature
new file mode 100644
index 0000000000..0697bc86ed
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/IdentityRemovalStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - IdentityRemovalStrategy
+
+  @WithIdentityRemovalStrategy
+  Scenario: g_withStrategiesXIdentityRemovalStrategyX_V_identity_out
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(IdentityRemovalStrategy).V().identity().out()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[lop] |
+      | v[lop] |
+      | v[vadas] |
+      | v[josh] |
+      | v[ripple]  |
+
+  Scenario: g_withoutStrategiesXIdentityRemovalStrategyX_V_identity_out
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(IdentityRemovalStrategy).V().identity().out()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[lop] |
+      | v[lop] |
+      | v[vadas] |
+      | v[josh] |
+      | v[ripple]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/IncidentToAdjacentStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/IncidentToAdjacentStrategy.feature
new file mode 100644
index 0000000000..0039518055
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/IncidentToAdjacentStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - IncidentToAdjacentStrategy
+
+  @WithIncidentToAdjacentStrategy
+  Scenario: g_withStrategiesXIncidentToAdjacentStrategyX_V_outE_inV
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(IncidentToAdjacentStrategy).V().outE().inV()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[lop] |
+      | v[lop] |
+      | v[vadas] |
+      | v[josh] |
+      | v[ripple]  |
+
+  Scenario: g_withoutStrategiesXIncidentToAdjacentStrategyX_V_outE_inV
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(IncidentToAdjacentStrategy).V().outE().inV()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[lop] |
+      | v[lop] |
+      | v[vadas] |
+      | v[josh] |
+      | v[ripple]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/InlineFilterStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/InlineFilterStrategy.feature
new file mode 100644
index 0000000000..7126571b1a
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/InlineFilterStrategy.feature
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - InlineFilterStrategy
+
+  @WithInlineFilterStrategy
+  Scenario: g_withStrategiesXInlineFilterStrategyX_V_filterXhasXname_markoXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(InlineFilterStrategy).V().filter(has("name","marko"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+
+  Scenario: g_withoutStrategiesXInlineFilterStrategyX_V_filterXhasXname_markoXX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(InlineFilterStrategy).V().filter(has("name","marko"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/LambdaRestrictionStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/LambdaRestrictionStrategy.feature
new file mode 100644
index 0000000000..7e6f3efd98
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/LambdaRestrictionStrategy.feature
@@ -0,0 +1,54 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+#
+@StepClassIntegrated
+Feature: Step - LambdaRestrictionStrategy
+
+  @WithLambdaRestrictionStrategy
+  Scenario: g_withStrategiesXLambdaRestrictionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(LambdaRestrictionStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXLambdaRestrictionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(LambdaRestrictionStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/LazyBarrierStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/LazyBarrierStrategy.feature
new file mode 100644
index 0000000000..c982b47514
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/LazyBarrierStrategy.feature
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - LazyBarrierStrategy
+
+  @WithLazyBarrierStrategy
+  Scenario: g_withStrategiesXLazyBarrierStrategyX_V_out_bothE_count
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(LazyBarrierStrategy).V().out().bothE().count()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[14].l |
+
+  Scenario: g_withoutStrategiesXLazyBarrierStrategyX_V_out_bothE_count
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(LazyBarrierStrategy).V().out().bothE().count()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | d[14].l |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MatchAlgorithmStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MatchAlgorithmStrategy.feature
new file mode 100644
index 0000000000..2b5680941c
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MatchAlgorithmStrategy.feature
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - MatchAlgorithmStrategy
+
+  @WithMatchAlgorithmStrategy
+  Scenario: 
g_withStrategiesXMatchAlgorithmStrategyXmatchAlgorithm_CountMatchAlgorithmXX_V_matchXa_knows_b__a_created_cX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(MatchAlgorithmStrategy(matchAlgorithm: 
"org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep$CountMatchAlgorithm"))
+                  .V().match(__.as("a").out("knows").as("b"),
+                  __.as("a").out("created").as("c"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | m[{"a":"v[marko]","b":"v[vadas]","c":"v[lop]"}] |
+      | m[{"a":"v[marko]","b":"v[josh]","c":"v[lop]"}] |
+
+  @WithMatchAlgorithmStrategy
+  Scenario: 
g_withStrategiesXMatchAlgorithmStrategyXmatchAlgorithm_GreedyMatchAlgorithmXX_V_matchXa_knows_b__a_created_cX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(MatchAlgorithmStrategy(matchAlgorithm: 
"org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep$GreedyMatchAlgorithm"))
+                  .V().match(__.as("a").out("knows").as("b"),
+                  __.as("a").out("created").as("c"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | m[{"a":"v[marko]","b":"v[vadas]","c":"v[lop]"}] |
+      | m[{"a":"v[marko]","b":"v[josh]","c":"v[lop]"}] |
+
+  Scenario: 
g_withoutStrategiesXMatchAlgorithmStrategyX_V_matchXa_knows_b__a_created_cX
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(MatchAlgorithmStrategy)
+                .V().match(__.as("a").out("knows").as("b"),
+                  __.as("a").out("created").as("c"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | m[{"a":"v[marko]","b":"v[vadas]","c":"v[lop]"}] |
+      | m[{"a":"v[marko]","b":"v[josh]","c":"v[lop]"}] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MatchPredicateStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MatchPredicateStrategy.feature
new file mode 100644
index 0000000000..bcf6c8cc9f
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MatchPredicateStrategy.feature
@@ -0,0 +1,49 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - MatchPredicateStrategy
+
+  @WithMatchPredicateStrategy @GraphComputerVerificationStarGraphExceeded
+  Scenario: 
g_withStrategiesXMatchPredicateStrategyX_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(MatchPredicateStrategy).V().match(__.as("a").out("created").has("name",
 "lop").as("b"),
+                  __.as("b").in("created").has("age", 
29).as("c")).where(__.as("c").repeat(__.out()).times(2)).select("a", "b", "c")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | m[{"a":"v[marko]","b":"v[lop]","c":"v[marko]"}] |
+      | m[{"a":"v[josh]","b":"v[lop]","c":"v[marko]"}] |
+      | m[{"a":"v[peter]","b":"v[lop]","c":"v[marko]"}] |
+
+  @GraphComputerVerificationStarGraphExceeded
+  Scenario: 
g_withoutStrategiesXMatchPredicateStrategyX_V_matchXa_created_lop_b__b_0created_29_cX_whereXc_repeatXoutX_timesX2XX_selectXa_b_cX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withoutStrategies(MatchPredicateStrategy).V().match(__.as("a").out("created").has("name",
 "lop").as("b"),
+                  __.as("b").in("created").has("age", 
29).as("c")).where(__.as("c").repeat(__.out()).times(2)).select("a", "b", "c")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | m[{"a":"v[marko]","b":"v[lop]","c":"v[marko]"}] |
+      | m[{"a":"v[josh]","b":"v[lop]","c":"v[marko]"}] |
+      | m[{"a":"v[peter]","b":"v[lop]","c":"v[marko]"}] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MessagePassingReductionStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MessagePassingReductionStrategy.feature
new file mode 100644
index 0000000000..c36adcf659
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/MessagePassingReductionStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - MessagePassingReductionStrategy
+
+  @WithMessagePassingReductionStrategy
+  Scenario: g_withStrategiesXMessagePassingReductionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(MessagePassingReductionStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXMessagePassingReductionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(MessagePassingReductionStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/OptionsStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/OptionsStrategy.feature
new file mode 100644
index 0000000000..db90e07230
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/OptionsStrategy.feature
@@ -0,0 +1,69 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - OptionsStrategy
+
+  @WithOptionsStrategy
+  Scenario: g_withStrategiesXOptionsStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(OptionsStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  @WithOptionsStrategy
+  Scenario: g_withStrategiesXOptionsStrategyXmyVar_myValueXX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(OptionsStrategy(myVar: "myValue")).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXOptionsStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(OptionsStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/OrderLimitStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/OrderLimitStrategy.feature
new file mode 100644
index 0000000000..805c1d66c9
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/OrderLimitStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - OrderLimitStrategy
+
+  @WithOrderLimitStrategy
+  Scenario: g_withStrategiesXOrderLimitStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(OrderLimitStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXOrderLimitStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(OrderLimitStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/PathProcessorStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/PathProcessorStrategy.feature
new file mode 100644
index 0000000000..6f4f283aac
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/PathProcessorStrategy.feature
@@ -0,0 +1,53 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - PathProcessorStrategy
+
+  @WithPathProcessorStrategy
+  Scenario: 
g_withStrategiesXPathProcessorStrategyX_V_asXaX_selectXaX_byXvaluesXnameXX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(PathProcessorStrategy).V().as("a").select("a").by(values("name"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | marko |
+      | vadas |
+      | lop |
+      | josh |
+      | ripple |
+      | peter  |
+
+  @GraphComputerVerificationReferenceOnly
+  Scenario: 
g_withoutStrategiesXPathProcessorStrategyX_V_asXaX_selectXaX_byXvaluesXnameXX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withoutStrategies(PathProcessorStrategy).V().as("a").select("a").by(values("name"))
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | marko |
+      | vadas |
+      | lop |
+      | josh |
+      | ripple |
+      | peter  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/PathRetractionStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/PathRetractionStrategy.feature
new file mode 100644
index 0000000000..54e807f5a8
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/PathRetractionStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - PathRetractionStrategy
+
+  @WithPathRetractionStrategy
+  Scenario: g_withStrategiesXPathRetractionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(PathRetractionStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXPathRetractionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(PathRetractionStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ProductiveByStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ProductiveByStrategy.feature
new file mode 100644
index 0000000000..60bef9dcae
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ProductiveByStrategy.feature
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ProductiveByStrategy
+
+  @WithProductiveByStrategy
+  Scenario: g_withStrategiesXProductiveByStrategyX_V_group_byXageX_byXnameX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(ProductiveByStrategy).V().order().by("name").group().by("age").by("name")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | 
m[{"null":"l[lop,ripple]","d[32].i":"l[josh]","d[35].i":"l[peter]","d[27].i":"l[vadas]","d[29].i":"l[marko]"}]
 |
+
+  Scenario: g_withoutStrategiesXProductiveByStrategyX_V_group_byXageX_byXnameX
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withoutStrategies(ProductiveByStrategy).V().group().by("age").by("name")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | 
m[{"d[32].i":"l[josh]","d[35].i":"l[peter]","d[27].i":"l[vadas]","d[29].i":"l[marko]"}]
 |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ProfileStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ProfileStrategy.feature
new file mode 100644
index 0000000000..e51c7a0275
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ProfileStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ProfileStrategy
+
+  @WithProfileStrategy
+  Scenario: g_withStrategiesXProfileStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(ProfileStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXProfileStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(ProfileStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ReferenceElementStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ReferenceElementStrategy.feature
new file mode 100644
index 0000000000..6b50420fa4
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ReferenceElementStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ReferenceElementStrategy
+
+  @WithReferenceElementStrategy
+  Scenario: g_withStrategiesXReferenceElementStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(ReferenceElementStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXReferenceElementStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(ReferenceElementStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/RepeatUnrollStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/RepeatUnrollStrategy.feature
new file mode 100644
index 0000000000..13fd68a8c8
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/RepeatUnrollStrategy.feature
@@ -0,0 +1,44 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - RepeatUnrollStrategy
+
+  @WithRepeatUnrollStrategy
+  Scenario: g_withStrategiesXRepeatUnrollStrategyX_V_repeatXoutX_timesX2X
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(RepeatUnrollStrategy).V().repeat(out()).times(2)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[ripple] |
+
+  Scenario: g_withoutStrategiesXRepeatUnrollStrategyX_V_repeatXoutX_timesX2X
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(RepeatUnrollStrategy).V().repeat(out()).times(2)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[ripple] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ReservedKeysVerificationStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ReservedKeysVerificationStrategy.feature
new file mode 100644
index 0000000000..88142b0c2d
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/ReservedKeysVerificationStrategy.feature
@@ -0,0 +1,50 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - ReservedKeysVerificationStrategy
+
+  @WithReservedKeysVerificationStrategy
+  Scenario: 
g_withStrategiesXReservedKeysVerificationStrategyXthrowException_trueXX_addVXpersonX_propertyXid_123X_propertyXname_markoX
+    Given the empty graph
+    And the traversal of
+      """
+      g.withStrategies(ReservedKeysVerificationStrategy(throwException: 
true)).addV("person").property("id", 123).property("name", "marko")
+      """
+    When iterated to list
+    Then the traversal will raise an error with message containing text of "is 
setting a property key to a reserved word: id"
+
+  @WithReservedKeysVerificationStrategy
+  Scenario: 
g_withStrategiesXReservedKeysVerificationStrategyXthrowException_trueXX_addVXpersonX_propertyXage_29X_propertyXname_markoX
+    Given the empty graph
+    And the traversal of
+      """
+      g.withStrategies(ReservedKeysVerificationStrategy(throwException: true, 
keys: ["age"])).addV("person").property("age", 29).property("name", "marko")
+      """
+    When iterated to list
+    Then the traversal will raise an error with message containing text of "is 
setting a property key to a reserved word: age"
+
+  Scenario: 
g_withoutStrategiesXReservedKeysVerificationStrategyX_addVXpersonX_propertyXid_123X_propertyXname_markoX
+    Given the empty graph
+    And the traversal of
+      """
+      
g.withoutStrategies(ReservedKeysVerificationStrategy).addV("person").property("id",
 123).property("name", "marko")
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/SeedStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/SeedStrategy.feature
new file mode 100644
index 0000000000..57b76f8325
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/SeedStrategy.feature
@@ -0,0 +1,48 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - SeedStrategy
+
+  @WithSeedStrategy @InsertionOrderingRequired
+  Scenario: g_withStrategiesXSeedStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(SeedStrategy(seed: 7)).V().coin(0.5)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[lop] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXSeedStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(SeedStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/StandardVerificationStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/StandardVerificationStrategy.feature
new file mode 100644
index 0000000000..623c282019
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/StandardVerificationStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - StandardVerificationStrategy
+
+  @WithStandardVerificationStrategy
+  Scenario: g_withStrategiesXStandardVerificationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(StandardVerificationStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXStandardVerificationStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(StandardVerificationStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/VertexProgramRestrictionStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/VertexProgramRestrictionStrategy.feature
new file mode 100644
index 0000000000..f840a3c7ba
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/VertexProgramRestrictionStrategy.feature
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - VertexProgramRestrictionStrategy
+
+  @WithVertexProgramRestrictionStrategy
+  Scenario: 
g_withStrategiesXVertexProgramRestrictionStrategyX_withoutStrategiesXVertexProgramStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withStrategies(VertexProgramRestrictionStrategy).withoutStrategies(VertexProgramStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  @WithVertexProgramRestrictionStrategy @WithVertexProgramStrategy
+  Scenario: 
g_withStrategiesXVertexProgramRestrictionStrategy_VertexProgramStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(VertexProgramRestrictionStrategy, 
VertexProgramStrategy).V()
+      """
+    When iterated to list
+    Then the traversal will raise an error with message containing text of 
"The TraversalSource does not allow the use of a GraphComputer"
+
+  @WithVertexProgramStrategy
+  Scenario: g_withoutStrategiesXVertexProgramRestrictionStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      
g.withoutStrategies(VertexProgramRestrictionStrategy).withStrategies(VertexProgramStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/VertexProgramStrategy.feature
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/VertexProgramStrategy.feature
new file mode 100644
index 0000000000..05940a665f
--- /dev/null
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/integrated/VertexProgramStrategy.feature
@@ -0,0 +1,52 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+@StepClassIntegrated
+Feature: Step - VertexProgramStrategy
+
+  @WithVertexProgramStrategy
+  Scenario: g_withStrategiesXVertexProgramStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withStrategies(VertexProgramStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |
+
+  Scenario: g_withoutStrategiesXVertexProgramStrategyX_V
+    Given the modern graph
+    And the traversal of
+      """
+      g.withoutStrategies(VertexProgramStrategy).V()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+      | v[ripple] |
+      | v[peter]  |

Reply via email to