public void testResume() throws Exception { assertTrue(fromSuite()); testSuspend(); assertTrue("suspend must succeed to create the output first", output != null); assertEquals(output.length(), 562); final Object o = loadJDK(output); assertTrue(o instanceof Continuation); final Continuation c1 = (Continuation) o; final StackRecorder sr1 = (StackRecorder) PrivateAccessor.getField(c1, "stackRecorder"); final Runnable r1 = (Runnable) PrivateAccessor.getField(sr1, "runnable"); assertEquals(SimpleSerializable.class.getName(), r1.getClass().getName()); final SimpleSerializable ss1 = (SimpleSerializable) r1; assertTrue(ss1.g == 0); assertTrue(ss1.l == 0); final Continuation c2 = Continuation.continueWith(c1); final StackRecorder sr2 = (StackRecorder) PrivateAccessor.getField(c2, "stackRecorder"); final Runnable r2 = (Runnable) PrivateAccessor.getField(sr2, "runnable"); assertEquals(SimpleSerializable.class.getName(), r2.getClass().getName()); final SimpleSerializable ss2 = (SimpleSerializable) r2; assertTrue(ss2.g == 1); assertTrue(ss2.l == 1); assertTrue(r1 == r2); }
/** * Helper method. * * @param filter the content type. * @return true if the filter is in the container, false otherwise. */ private boolean isFilterInContainer(ScriptFilter filter) throws Exception { if (filter != null) { Map map = (Map) PrivateAccessor.getField(module, "scriptFilters"); if (map != null) { return map.containsKey(filter.getContentType()); } } return false; }