@Test public void testIsReleasedFalse() { MemoryManager memoryManager = new MemoryManager(v8); assertFalse(memoryManager.isReleased()); }
@Test public void testIsReleasedTrue() { MemoryManager memoryManager = new MemoryManager(v8); memoryManager.release(); assertTrue(memoryManager.isReleased()); }
@SuppressWarnings("resource") public void testExceptionDuringReleaseDoesNotReleaseMemoryManager() { memoryManager = new MemoryManager(v8); ReferenceHandler handler = new ReferenceHandler() { @Override public void v8HandleDisposed(final V8Value object) { // Throws CME memoryManager.persist(object); } @Override public void v8HandleCreated(final V8Value object) { } }; v8.addReferenceHandler(handler); new V8Object(v8); try { memoryManager.release(); } catch (ConcurrentModificationException e) { } assertFalse(memoryManager.isReleased()); v8.removeReferenceHandler(handler); memoryManager.release(); assertTrue(memoryManager.isReleased()); }