protected void assertFrameworkEvent( int type, Bundle bundle, Class<? extends Throwable> expectedThrowable) throws Exception { FrameworkEvent event = (FrameworkEvent) waitForEvent(frameworkEvents, type); log.debug("frameworkEvents=" + frameworkEvents); assertNotNull("Event not null", event); frameworkEvents.remove(event); assertEquals( ConstantsHelper.frameworkEvent(type), ConstantsHelper.frameworkEvent(event.getType())); Throwable t = event.getThrowable(); if (expectedThrowable == null) { if (t != null) { log.error("Unexpected error in Framework event: ", t); fail("Unexpected throwable: " + t); } } else { String message = expectedThrowable.getSimpleName() + " is assignable from " + t.getClass().getSimpleName(); assertTrue(message, expectedThrowable.isAssignableFrom(t.getClass())); } assertEquals(bundle, event.getSource()); assertEquals(bundle, event.getBundle()); }