@Test public void testMemoryReferenceCount0() { MemoryManager memoryManager = new MemoryManager(v8); assertEquals(0, memoryManager.getObjectReferenceCount()); }
@Test(expected = IllegalStateException.class) public void testMemoryManagerReleased_CannotCallGetObjectReferenceCount() { MemoryManager memoryManager = new MemoryManager(v8); memoryManager.release(); memoryManager.getObjectReferenceCount(); }
@SuppressWarnings("resource") @Test public void testNestedMemoryManager_ReverseReleaseOrder() { MemoryManager memoryManager1 = new MemoryManager(v8); new V8Object(v8); MemoryManager memoryManager2 = new MemoryManager(v8); new V8Object(v8); assertEquals(2, memoryManager1.getObjectReferenceCount()); assertEquals(1, memoryManager2.getObjectReferenceCount()); memoryManager1.release(); assertEquals(0, memoryManager2.getObjectReferenceCount()); memoryManager2.release(); }
@SuppressWarnings("resource") @Test public void testNestedMemoryManagerHasProperObjectCount() { MemoryManager memoryManager1 = new MemoryManager(v8); new V8Object(v8); MemoryManager memoryManager2 = new MemoryManager(v8); new V8Object(v8); assertEquals(2, memoryManager1.getObjectReferenceCount()); assertEquals(1, memoryManager2.getObjectReferenceCount()); memoryManager2.release(); assertEquals(1, memoryManager1.getObjectReferenceCount()); memoryManager1.release(); }
@Test public void testMemoryReferenceCount0_AfterRemove() { MemoryManager memoryManager = new MemoryManager(v8); new V8Object(v8).close(); assertEquals(0, memoryManager.getObjectReferenceCount()); }
@SuppressWarnings("resource") @Test public void testTwins() { MemoryManager memoryManager = new MemoryManager(v8); V8Object object = new V8Object(v8); object.twin(); assertEquals(2, memoryManager.getObjectReferenceCount()); memoryManager.release(); }
@Test public void testMemoryReferenceCount() { MemoryManager memoryManager = new MemoryManager(v8); v8.executeScript("(function() {})"); assertEquals(1, memoryManager.getObjectReferenceCount()); memoryManager.release(); assertEquals(0, v8.getObjectReferenceCount()); }
@Test public void testTwinsReleaseOne() { MemoryManager memoryManager = new MemoryManager(v8); V8Object object = new V8Object(v8); object.twin(); object.close(); assertEquals(1, memoryManager.getObjectReferenceCount()); memoryManager.release(); }
@Test public void testGetObjectTwice() { v8.executeVoidScript("foo = {}"); MemoryManager memoryManager = new MemoryManager(v8); V8Object foo1 = v8.getObject("foo"); v8.getObject("foo").close(); assertEquals(1, memoryManager.getObjectReferenceCount()); memoryManager.release(); assertTrue(foo1.isReleased()); }