### Question:
ErrorHandler implements AutoCloseable { public static void runAll( String description, ThrowingRunnable... actions ) throws RuntimeException { try ( ErrorHandler errorHandler = new ErrorHandler( description ) ) { for ( ThrowingRunnable action : actions ) { errorHandler.execute( action ); } } } ErrorHandler( String message ); static void runAll( String description, ThrowingRunnable... actions ); void execute( ThrowingRunnable throwingRunnable ); void add( Throwable throwable ); @Override void close();  }### Answer:
@Test public void shouldExecuteAllFailingOperations() { AtomicBoolean bool = new AtomicBoolean( false ); try { ErrorHandler.runAll( "test", Assert::fail, () -> { bool.set( true ); throw new IllegalStateException( FAILMESSAGE ); } ); fail(); } catch ( RuntimeException e ) { assertEquals( "test", e.getMessage() ); Throwable cause = e.getCause(); assertEquals( AssertionError.class, cause.getClass() ); Throwable[] suppressed = e.getSuppressed(); assertEquals( 1, suppressed.length ); assertEquals( IllegalStateException.class, suppressed[0].getClass() ); assertEquals( "More fail", suppressed[0].getMessage() ); assertTrue( bool.get() ); } }