//package org.dynjs.runtime.modules; // //import static org.fest.assertions.Assertions.*; //import static org.junit.Assert.*; // //import org.dynjs.runtime.DynJS; //import org.dynjs.runtime.DynJSConfig; //import org.dynjs.runtime.DynThreadContext; //import org.junit.Before; //import org.junit.Test; // // //public class JavaClassModuleProviderTest { // private DynJS dynJS; // private DynThreadContext context; // private DynJSConfig config; // private JavaClassModuleProvider javaClassModuleProvider; // // @Before // public void setUp() { // javaClassModuleProvider = new JavaClassModuleProvider(); // javaClassModuleProvider.addModule( new AnnotatedJavaModule() ); // config = new DynJSConfig(); // context = new DynThreadContext(); // context.addLoadPath(System.getProperty("user.dir") + "/src/test/resources/org/dynjs/runtime/builtins/"); // context.addModuleProvider( javaClassModuleProvider ); // dynJS = new DynJS(config); // } // // @Test // public void testMethodWithOnlySelfAndContext() { // check( "var x = require('tacos'); var result = x.cheese();", "cheddar" ); // } // // @Test // public void testMethodWithNoArguments() { // check( "var x = require('tacos'); var result = x.lunch();", "beef" ); // } // // @Test // public void testMethodWithNoDynJSArguments() { // check( "var x = require('tacos'); var result = x.breakfast('bacon');", "eggs and bacon" ); // } // // @Test // public void testMethodWithDynJSArgumentsAndMore() { // check( "var x = require('tacos'); var result = x.dinner('soup');", "fish soup" ); // } // // @Test // public void testMethodWithDynJSArgumentsAndMoreButMissingSomeWhichAreSubsequentlyPassedSomeNulls() { // check( "var x = require('tacos'); var result = x.dinner();", "fish null" ); // } // // private void check(String scriptlet, Object expected) { // dynJS.eval(context, scriptlet); // Object result = context.getScope().resolve("result"); // assertThat(result).isEqualTo(expected); // } // // @Module( name="tacos" ) // public static class AnnotatedJavaModule { // @Export // public String cheese(Object self, DynThreadContext context) { // return "cheddar"; // } // // @Export // public String lunch() { // return "beef"; // } // // @Export // public String breakfast(String side) { // return "eggs and " + side; // } // // @Export // public String dinner(Object self, DynThreadContext context, String style) { // return "fish " + style; // } // } // // // //}