◐ Shell
reader mode source ↗
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
File filter
Conversations
Jump to
Diff view
Apply and reload
Show whitespace
Diff view
Apply and reload
6 changes: 6 additions & 0 deletions src/main/java/org/scijava/script/DefaultScriptService.java
Original file line number Diff line number Diff line change
@@ -30,6 +30,7 @@
package org.scijava.script;

import java.io.File;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
Expand Up @@ -159,6 +160,11 @@ public ScriptInfo getScript(final File scriptFile) {
return getOrCreate(scriptFile);
}

@Override
public Future<ScriptModule> run(final File file, final boolean process,
final Object... inputs)
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/org/scijava/script/ScriptService.java
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,18 @@ default ScriptLanguage getLanguageByName(final String name) {
*/
ScriptInfo getScript(File scriptFile);

/**
* Executes the script in the given file.
*
Expand Down
60 changes: 38 additions & 22 deletions src/test/java/org/scijava/script/ScriptServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,11 @@

import javax.script.ScriptException;

import org.junit.Test;
import org.scijava.Context;
import org.scijava.util.AppUtils;
import org.scijava.util.ColorRGB;
import org.scijava.util.ColorRGBA;
Expand All @@ -53,6 +56,20 @@
*/
public class ScriptServiceTest {

/**
* Tests that the "scijava.scripts.path" system property is handled correctly.
*/
Expand All @@ -65,9 +82,6 @@ public void testSystemProperty() {
final String dir2 = root + "to" + slash + "the" + slash + "moon";
System.setProperty("scijava.scripts.path", dir1 + sep + dir2);

final Context context = new Context(ScriptService.class);
final ScriptService scriptService = context.service(ScriptService.class);

final List<File> scriptDirs = scriptService.getScriptDirectories();
assertEquals(3, scriptDirs.size());

Expand All @@ -80,9 +94,6 @@ public void testSystemProperty() {

@Test
public void testBuiltInAliases() throws ScriptException {
final Context ctx = new Context(ScriptService.class);
final ScriptService ss = ctx.service(ScriptService.class);

final Class<?>[] builtIns = { boolean.class, byte.class, char.class,
double.class, float.class, int.class, long.class, short.class,
Boolean.class, Byte.class, Character.class, Double.class, Float.class,
Expand All @@ -91,39 +102,44 @@ public void testBuiltInAliases() throws ScriptException {
String.class };

for (final Class<?> builtIn : builtIns) {
final Class<?> c = ss.lookupClass(builtIn.getSimpleName());
assertSame(builtIn, c);
}

ctx.dispose();
}

@Test
public void testArrayAliases() throws ScriptException {
final Context ctx = new Context(ScriptService.class);
final ScriptService ss = ctx.service(ScriptService.class);

final Class<?> pInt2D = ss.lookupClass("int[][]");
assertSame(int[][].class, pInt2D);
final Class<?> pInt1D = ss.lookupClass("int[]");
assertSame(int[].class, pInt1D);
final Class<?> pInt = ss.lookupClass("int");
assertSame(int.class, pInt);

final Class<?> oInt2D = ss.lookupClass("Integer[][]");
assertSame(Integer[][].class, oInt2D);
final Class<?> oInt1D = ss.lookupClass("Integer[]");
assertSame(Integer[].class, oInt1D);
final Class<?> oInt = ss.lookupClass("Integer");
assertSame(Integer.class, oInt);

final Class<?> str2D = ss.lookupClass("String[][]");
assertSame(String[][].class, str2D);
final Class<?> str1D = ss.lookupClass("String[]");
assertSame(String[].class, str1D);
final Class<?> str = ss.lookupClass("String");
assertSame(String.class, str);

ctx.dispose();
}
}
Toggle all file notes Toggle all file annotations