@Test public void testLongRunningExecutorWithSeveralMessages() throws InterruptedException { V8Executor executor = new V8Executor("messageHandler = function(e) { postMessage(e); }", true, "messageHandler") { @Override protected void setup(final V8 runtime) { runtime.registerJavaMethod(V8ExecutorTest.this, "postMessage", "postMessage", new Class<?>[] { Object[].class }); } }; executor.start(); executor.postMessage("1"); executor.postMessage("2"); executor.postMessage("3"); waitForResult("123"); executor.forceTermination(); executor.join(); assertEquals("123", result); }
@Test public void testPostEmptyMessageToLongRunningTask() throws InterruptedException { V8Executor executor = new V8Executor("messageHandler = function(e) { postMessage(e); }", true, "messageHandler") { @Override protected void setup(final V8 runtime) { runtime.registerJavaMethod(V8ExecutorTest.this, "postMessage", "postMessage", new Class<?>[] { Object[].class }); } }; executor.start(); executor.postMessage(); executor.forceTermination(); executor.join(); assertEquals("", result); }
@Test public void testLongRunningExecutorWithMessageHandler() throws InterruptedException { V8Executor executor = new V8Executor("messageHandler = function(e) { postMessage(e); }", true, "messageHandler") { @Override protected void setup(final V8 runtime) { runtime.registerJavaMethod(V8ExecutorTest.this, "postMessage", "postMessage", new Class<?>[] { Object[].class }); } }; executor.start(); executor.postMessage(""); waitForPassed(); executor.forceTermination(); executor.join(); assertTrue(passed); }
@Test public void testLongRunningExecutorWithMultiPartMessage() throws InterruptedException { V8Executor executor = new V8Executor("messageHandler = function(e) { postMessage(e[0], e[1]); }", true, "messageHandler") { @Override protected void setup(final V8 runtime) { runtime.registerJavaMethod(V8ExecutorTest.this, "postMessage", "postMessage", new Class<?>[] { Object[].class }); } }; executor.start(); executor.postMessage("1", "3"); waitForResult("13"); executor.forceTermination(); executor.join(); assertEquals("13", result); }