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 2016/12/01 15:34:08 UTC

[40/48] tinkerpop git commit: TINKERPOP-1562 Added more tests for the GremlnPluginAdapter

TINKERPOP-1562 Added more tests for the GremlnPluginAdapter


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

Branch: refs/heads/TINKERPOP-1562
Commit: daad833fbf7dc9d1173af380476b6f2cc5333807
Parents: bea343e
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Nov 23 15:36:13 2016 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu Dec 1 06:41:43 2016 -0500

----------------------------------------------------------------------
 .../groovy/plugin/GremlinPluginAdapterTest.java | 70 ++++++++++++++++++++
 .../groovy/plugin/script-customizer-1.groovy    |  3 +
 .../groovy/plugin/script-customizer-2.groovy    |  2 +
 pom.xml                                         |  1 +
 4 files changed, 76 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/daad833f/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
----------------------------------------------------------------------
diff --git a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
index dd582b1..c3ade04 100644
--- a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
+++ b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/groovy/plugin/GremlinPluginAdapterTest.java
@@ -18,12 +18,28 @@
  */
 package org.apache.tinkerpop.gremlin.console.groovy.plugin;
 
+import org.apache.tinkerpop.gremlin.TestHelper;
 import org.apache.tinkerpop.gremlin.console.plugin.PluggedIn;
+import org.apache.tinkerpop.gremlin.jsr223.BindingsCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.Customizer;
+import org.apache.tinkerpop.gremlin.jsr223.DefaultBindingsCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.DefaultScriptCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.GremlinPlugin;
 import org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin;
+import org.apache.tinkerpop.gremlin.jsr223.ScriptCustomizer;
+import org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin;
 import org.junit.Test;
 
+import javax.script.Bindings;
+import javax.script.SimpleBindings;
+import java.io.File;
 import java.time.DayOfWeek;
 import java.time.temporal.TemporalAccessor;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -57,4 +73,58 @@ public class GremlinPluginAdapterTest {
         assertThat(imports, hasItems("import static " + DayOfWeek.class.getCanonicalName() + ".from"));
         assertThat(imports, hasItems("import static " + DayOfWeek.class.getCanonicalName() + ".values"));
     }
+
+    @Test
+    public void shouldAdaptForScriptCustomizer() throws Exception {
+        final File scriptFile1 = TestHelper.generateTempFileFromResource(GremlinPluginAdapterTest.class, "script-customizer-1.groovy", ".groovy");
+        final File scriptFile2 = TestHelper.generateTempFileFromResource(GremlinPluginAdapterTest.class, "script-customizer-2.groovy", ".groovy");
+        final Set<String> files = new HashSet<>();
+        files.add(scriptFile1.getAbsolutePath());
+        files.add(scriptFile2.getAbsolutePath());
+        final ScriptFileGremlinPlugin plugin = ScriptFileGremlinPlugin.build().files(files).create();
+        final PluggedIn.GremlinPluginAdapter adapter = new PluggedIn.GremlinPluginAdapter(plugin, null, null);
+
+        assertEquals(plugin.getName(), adapter.getName());
+
+        final List<String> evals = new ArrayList<>();
+        final SpyPluginAcceptor spy = new SpyPluginAcceptor(evals::add);
+        adapter.pluginTo(spy);
+
+        assertEquals("x = 1 + 1\n" +
+                     "y = 10 * x\n" +
+                     "z = 1 + x + y", evals.get(0));
+        assertEquals("l = g.V(z).out()\n" +
+                     "        .group().by('name')", evals.get(1));
+    }
+
+    @Test
+    public void shouldAdaptForBindingsCustomizer() throws Exception {
+        final Bindings bindings = new SimpleBindings();
+        bindings.put("x", 1);
+        bindings.put("y", "yes");
+        bindings.put("z", true);
+        final BindingsCustomizer bindingsCustomizer = new DefaultBindingsCustomizer(bindings);
+        final GremlinPlugin plugin = new GremlinPlugin() {
+            @Override
+            public String getName() {
+                return "anon-bindings";
+            }
+
+            @Override
+            public Optional<Customizer[]> getCustomizers(final String scriptEngineName) {
+                return Optional.of(new Customizer[]{bindingsCustomizer});
+            }
+        };
+        final PluggedIn.GremlinPluginAdapter adapter = new PluggedIn.GremlinPluginAdapter(plugin, null, null);
+
+        assertEquals(plugin.getName(), adapter.getName());
+
+        final SpyPluginAcceptor spy = new SpyPluginAcceptor();
+        adapter.pluginTo(spy);
+
+        final Map<String,Object> bindingsFromSpy = spy.getBindings();
+        assertEquals(1, bindingsFromSpy.get("x"));
+        assertEquals("yes", bindingsFromSpy.get("y"));
+        assertEquals(true, bindingsFromSpy.get("z"));
+    }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/daad833f/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-1.groovy
----------------------------------------------------------------------
diff --git a/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-1.groovy b/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-1.groovy
new file mode 100644
index 0000000..c2cc784
--- /dev/null
+++ b/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-1.groovy
@@ -0,0 +1,3 @@
+x = 1 + 1
+y = 10 * x
+z = 1 + x + y
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/daad833f/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-2.groovy
----------------------------------------------------------------------
diff --git a/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-2.groovy b/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-2.groovy
new file mode 100644
index 0000000..1a4f9a9
--- /dev/null
+++ b/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-2.groovy
@@ -0,0 +1,2 @@
+l = g.V(z).out()
+        .group().by('name')
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/daad833f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8db0fb0..83a736e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -287,6 +287,7 @@ limitations under the License.
                         <exclude>**/goal.txt</exclude>
                         <exclude>**/src/main/resources/META-INF/services/**</exclude>
                         <exclude>**/src/test/resources/META-INF/services/**</exclude>
+                        <exclude>**/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/script-customizer-*.groovy</exclude>
                         <exclude>**/src/test/resources/org/apache/tinkerpop/gremlin/jsr223/script-customizer-*.groovy</exclude>
                         <exclude>**/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/script/*.txt</exclude>
                         <exclude>**/src/main/ext/**</exclude>