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>