@Test
public void should_not_found_any_dependant_model_item_without_active_plugin_in_production() throws Exception {
String datacenter = System.getProperty("datacenter", "hudson");
initJndiValues("com/francetelecom/clara/cloud/commons/testconfigurations/credentials-" + datacenter + ".properties");
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{
"classpath:/spring-config/application-context-plugins.xml",
"classpath:/spring-config/datasources-hsqldb-context.xml",
"classpath:/com/francetelecom/clara/cloud/commons/testconfigurations/mock-liquibase-context.xml",
"classpath:/META-INF/spring/paas-activation-stubbed-context.xml", "classpath:/spring-config/mock-spring-authentication-manager-context.xml"}) {
@Override
protected ConfigurableEnvironment createEnvironment() {
return new StandardServletEnvironment();
}
};
ActivationPluginStrategy strategy = (ActivationPluginStrategy) context.getBean("pluginStrategy");
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
provider.addIncludeFilter(new AssignableTypeFilter(DependantModelItem.class));
Set<BeanDefinition> findCandidateComponents = provider.findCandidateComponents("com/francetelecom/clara/cloud/model");
ActivationStepEnum[] steps = ActivationStepEnum.values();
Set<Class<?>> errorItems = new HashSet<Class<?>>();
for (BeanDefinition beanDefinition : findCandidateComponents) {
ActivationPlugin foundPlugin = null;
Class<?> testedClass = Class.forName(beanDefinition.getBeanClassName());
LOGGER.info("Lookin for a plugin handling {}", testedClass.getSimpleName());
for (ActivationStepEnum activationStepEnum : steps) {
if (foundPlugin == null) {
try {
foundPlugin = strategy.getPlugin(testedClass, activationStepEnum);
} catch (TechnicalException e) {
//Ignore not found error
}
}
}
if (foundPlugin == null) {
if (ignoredClasses.contains(testedClass)) {
LOGGER.info("No plugin found for {} but ignored !", testedClass.getSimpleName());
} else {
LOGGER.info("No plugin found for {}", testedClass.getSimpleName());
}
errorItems.add(testedClass);
} else {
assertFalse(testedClass.getSimpleName() + " is ignored but a plugin has been found : " + foundPlugin.getClass().getSimpleName() + ".\nDid you activate new feature without refactoring this test specs ?", ignoredClasses.contains(testedClass));
LOGGER.info("Plugin found for {} : {}", testedClass.getSimpleName(), foundPlugin.getClass().getSimpleName());
}
}
errorItems.removeAll(ignoredClasses);
assertTrue("No plugin found for some items " + errorItems.toString() + ".\nDid you miss some configuration in cloud-paas-webapp spring config?", errorItems.isEmpty());
}
PluginConfigurationIT.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:elpaaso-core
作者:
评论列表
文章目录