@Test public void testCheckNotFinalized3() { Runnable task = mock(Runnable.class); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); finalizer.checkNotFinalized(); }
/** Test of checkNotFinalized method, of class ObjectFinalizer. */ @Test(expected = IllegalStateException.class) public void testCheckNotFinalized1() { Runnable task = mock(Runnable.class); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); finalizer.doFinalize(); finalizer.checkNotFinalized(); }
@Test(expected = TestException.class) public void testDoFinalizePropagatesException() { Runnable task = mock(Runnable.class); doThrow(TestException.class).when(task).run(); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); finalizer.doFinalize(); }
/** Test of doFinalize method, of class ObjectFinalizer. */ @Test public void testDoFinalize() { Runnable task = mock(Runnable.class); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); assertTrue(finalizer.doFinalize()); verify(task).run(); verifyNoMoreInteractions(task); }
/** Test of markFinalized method, of class ObjectFinalizer. */ @Test public void testMarkFinalized() { Runnable task = mock(Runnable.class); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); finalizer.markFinalized(); assertFalse(finalizer.doFinalize()); verifyZeroInteractions(task); }
@Test public void testIsFinalized2() { Runnable task = mock(Runnable.class); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); assertFalse(finalizer.isFinalized()); finalizer.markFinalized(); assertTrue(finalizer.isFinalized()); }
@Test public void testFinalizeAfterMarkFinalized() { Runnable task = mock(Runnable.class); ObjectFinalizer finalizer = new ObjectFinalizer(task, "DESCRIPTION"); finalizer.markFinalized(); try (LogCollector logs = LogCollectorTest.startCollecting()) { finalizeObject(finalizer); assertEquals(0, logs.getNumberOfLogs()); } verifyZeroInteractions(task); }
@SuppressWarnings("FinalizeCalledExplicitly") private static void finalizeObject(ObjectFinalizer finalizer) { finalizer.finalize(); }