### Question:
SahiConnector { static boolean isSahiScriptTimout(Throwable exception) { return exception != null && ( exception.getMessage().startsWith("Script did not start within") || isSahiScriptTimout(exception.getCause()) ); }  void init(); void startSahiTestSuite();  }### Answer:
@SuppressWarnings("ThrowableInstanceNeverThrown") @Test public void testIsSahiTimoutException() throws Exception { Stream.of(Pair.of("Script did not start within 150 seconds. => ERROR ... @CALL:", true), Pair.of("some other error message", false)).forEach(p -> { String sahiError = p.getLeft(); Exception testException = new SakuliExceptionWithScreenshot(new SahiActionException (new LogResult("error", ResultType.FAILURE, "debug info", sahiError)), null); Stream.of(testException, testException.getCause(), new SakuliCheckedException(sahiError)) .forEach(e -> Assert.assertEquals(SahiConnector.isSahiScriptTimout(e), (boolean) p.getRight())); }); }