package jp.vmi.script; import java.util.Set; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.junit.Before; import org.junit.Test; import com.google.common.collect.Sets; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @SuppressWarnings("javadoc") public class JSWrapperTest { private ScriptEngine engine; @Before public void init() { ScriptEngineManager manager = new ScriptEngineManager(); engine = manager.getEngineByExtension("js"); } @Test public void testMap() throws Exception { Object object = engine.eval("var map = {'abc': 'ABC', 'def': 'DEF', 'ghi': 'GHI'}; map"); JSMap<String, String> map = new JSMap<>(engine, object); assertThat(map.get("abc"), equalTo("ABC")); assertThat(map.keySet(), equalTo((Set<String>) Sets.newHashSet("abc", "def", "ghi"))); assertThat(map.size(), equalTo(3)); } @Test public void testList() throws Exception { Object object = engine.eval("var list = ['abc', 'def', 'ghi']; list"); JSList<String> list = new JSList.JSNativeList<>(engine, object); assertThat(list.get(1), equalTo("def")); assertThat(list.size(), equalTo(3)); } }