/**
  * Tests the isSuccessful() method of the result object if at least one child initializer has
  * thrown an exception.
  *
  * @throws org.apache.commons.lang3.concurrent.ConcurrentException so we don't have to catch it
  */
 @Test
 public void testInitializeResultsIsSuccessfulFalse() throws ConcurrentException {
   final ChildBackgroundInitializer child = new ChildBackgroundInitializer();
   child.ex = new Exception();
   initializer.addInitializer(CHILD_INIT, child);
   initializer.start();
   final MultiBackgroundInitializer.MultiBackgroundInitializerResults res = initializer.get();
   assertFalse("Wrong success flag", res.isSuccessful());
 }
 /**
  * Tests the behavior of the initializer if one of the child initializers throws a checked
  * exception.
  *
  * @throws org.apache.commons.lang3.concurrent.ConcurrentException so we don't have to catch it
  */
 @Test
 public void testInitializeEx() throws ConcurrentException {
   final ChildBackgroundInitializer child = new ChildBackgroundInitializer();
   child.ex = new Exception();
   initializer.addInitializer(CHILD_INIT, child);
   initializer.start();
   final MultiBackgroundInitializer.MultiBackgroundInitializerResults res = initializer.get();
   assertTrue("No exception flag", res.isException(CHILD_INIT));
   assertNull("Got a results object", res.getResultObject(CHILD_INIT));
   final ConcurrentException cex = res.getException(CHILD_INIT);
   assertEquals("Wrong cause", child.ex, cex.getCause());
 }
 /**
  * Tests the behavior of the initializer if one of the child initializers throws a runtime
  * exception.
  */
 @Test
 public void testInitializeRuntimeEx() {
   final ChildBackgroundInitializer child = new ChildBackgroundInitializer();
   child.ex = new RuntimeException();
   initializer.addInitializer(CHILD_INIT, child);
   initializer.start();
   try {
     initializer.get();
     fail("Runtime exception not thrown!");
   } catch (final Exception ex) {
     assertEquals("Wrong exception", child.ex, ex);
   }
 }