### Question:
CommunityRuntime implements TransactionEventHandler<Map<String, Object>>, GraphAwareRuntime, KernelEventHandler { @Override public <M extends RuntimeModule> M getModule(String moduleId, Class<M> clazz) throws NotFoundException { M module = txDrivenModuleManager.getModule(moduleId, clazz); if (module != null) { return module; } module = timerDrivenModuleManager.getModule(moduleId, clazz); if (module != null) { return module; } throw new NotFoundException("No module of type " + clazz.getName() + " with ID " + moduleId + " has been registered"); } protected  CommunityRuntime(RuntimeConfiguration configuration, GraphDatabaseService database, TxDrivenModuleManager<TxDrivenModule> txDrivenModuleManager, TimerDrivenModuleManager timerDrivenModuleManager, Neo4jWriter writer); @Override synchronized void registerModule(RuntimeModule module); @Override final synchronized void start(); @Override final void waitUntilStarted(); @Override Map<String, Object> beforeCommit(TransactionData data); @Override final void afterCommit(TransactionData data, Map<String, Object> states); @Override final void afterRollback(TransactionData data, Map<String, Object> states); @Override void beforeShutdown(); @Override M getModule(String moduleId, Class<M> clazz); @Override M getModule(Class<M> clazz); @Override final void kernelPanic(ErrorState error); @Override final Object getResource(); @Override final ExecutionOrder orderComparedTo(KernelEventHandler other); @Override RuntimeConfiguration getConfiguration(); @Override Neo4jWriter getDatabaseWriter();  }### Answer:
@Test(expected = NotFoundException.class) public void shouldThrowExceptionWhenAskedForNonExistingModule() { GraphAwareRuntime runtime = createRuntime(database, defaultConfiguration(database).withTimingStrategy(TIMING_STRATEGY)); runtime.getModule("non-existing", TxAndTimerDrivenModule.class); }