@Override public void run() { cut.registerReference(); } };
@Test public void testRefCount() throws InterruptedException, ExecutionException { assertEquals(cut.getRefCount(), 0); cut.registerReference(); assertEquals(cut.getRefCount(), 1); assertEquals(cut.getRefCount(), 1); cut.releaseReference(); assertEquals(cut.getRefCount(), 0); // other threads must each increment the ref count final Runnable registerReference = new Runnable() { @Override public void run() { cut.registerReference(); } }; executor.submit(registerReference).get(); assertEquals(cut.getRefCount(), 1); alternateExecutor.submit(registerReference).get(); assertEquals(cut.getRefCount(), 2); // we (no ref registered) must not be able to decrement the ref count cut.releaseReference(); assertEquals(cut.getRefCount(), 2); } }
addValidLoadedSession(result); result.registerReference(); addValidLoadedSession(result); result.registerReference();
addValidLoadedSession(result); result.registerReference(); addValidLoadedSession(result); result.registerReference();