@Test
public void testLifecycle$shutdownFailure(@Mocked final ScheduledExecutorService executor) throws Exception {
final MyApplication application=new MyApplication();
new MockUp<Executors>() {
@Mock
public ScheduledExecutorService newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory) {
return executor;
}
};
LOGGER.info("Setting up application...");
application.setup(environment, bootstrap);
new Expectations() {{
initSession.find(ResourceSnapshot.class,application.personResourceName(),PersonHandler.class);result=personSnapshot;
personSnapshot.createAttachedResource(ContainerSnapshot.class,PersonHandler.RELATIVES_ID,application.relativeContainerResourceName(),RelativeContainerHandler.class);result=null;
initSession.find(ResourceSnapshot.class,application.personContainerName(),PersonContainerHandler.class);result=personContainerSnapshot;
executor.isTerminated();result=false;
executor.awaitTermination(anyLong,(TimeUnit)any);result=new InterruptedException("EXIT");
}};
LOGGER.info("Initializing application...");
application.initialize(initSession);
LOGGER.info("Shutting down application...");
application.shutdown();
}