@Test
 public void
     should_Not_Call_Hook_And_Throw_Error_If_Method_Called_Is_In_Runtime_But_Is_Not_Exit_Or_Halt() {
   StackTraceElement[] stackTrace = array(methodInRuntime("availableProcessors"));
   when(stackTraces.stackTraceInCurrentThread()).thenReturn(stackTrace);
   securityManager.checkExit(0);
   verifyZeroInteractions(hook);
 }
 @Test
 public void should_Call_Hook_And_Throw_Error_If_Runtime_Halt_Was_Called() {
   StackTraceElement[] stackTrace = array(methodInRuntime("halt"));
   when(stackTraces.stackTraceInCurrentThread()).thenReturn(stackTrace);
   thrown.expect(ExitException.class);
   securityManager.checkExit(0);
   verify(hook).exitCalled(0);
 }
 @Test
 public void should_Not_Call_Hook_And_Throw_Error_If_Method_Called_Is_Not_Runtime_Exit_Or_Halt() {
   StackTraceElement e =
       new StackTraceElement(String.class.getName(), "substring", "String.java", 0);
   StackTraceElement[] stackTrace = array(e);
   when(stackTraces.stackTraceInCurrentThread()).thenReturn(stackTrace);
   securityManager.checkExit(0);
   verifyZeroInteractions(hook);
 }