You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gcube-cms-suite/cms-test-commons/src/main/java/org/gcube/application/cms/tests/BasicPluginTest.java

72 lines
2.3 KiB
Java

package org.gcube.application.cms.tests;
import ch.qos.logback.core.net.SyslogOutputStream;
import org.gcube.application.cms.plugins.InitializablePlugin;
import org.gcube.application.cms.plugins.Plugin;
import org.gcube.application.cms.plugins.faults.InitializationException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.reflections.Reflections;
import org.reflections.util.ConfigurationBuilder;
import org.reflections.util.FilterBuilder;
import java.rmi.ServerError;
import java.util.List;
import java.util.ServiceLoader;
import java.util.concurrent.atomic.AtomicLong;
public class BasicPluginTest {
static List<Plugin> plugins;
@BeforeClass
public static void checkPluginRegistration() {
Reflections reflections = new Reflections(
new ConfigurationBuilder()
.forPackage("org.gcube.application.cms")
.filterInputsBy(new FilterBuilder().includePackage("org.gcube.application.cms")));
reflections.getSubTypesOf(Plugin.class).iterator().forEachRemaining(pluginClass->{
if(!pluginClass.isInterface()){
try {
Plugin plugin = pluginClass.newInstance();
plugins.add(plugin);
}catch (Throwable t){
t.printStackTrace(System.err);
Assert.fail("Unable to Load "+pluginClass);
}
}
});
Assert.assertFalse(plugins.isEmpty());
System.out.println("Plugin Loading OK");
}
@Test
public void basicChecks(){
plugins.forEach(p->{
System.out.println("INIT Plugin "+p.getClass());
Assert.assertNotNull(p.getDescriptor());
Assert.assertNotNull(p.getDescriptor().getId());
Assert.assertNotNull(p.getDescriptor().getType());
Assert.assertNotNull(p.getDescriptor().getVersion());
if(p instanceof InitializablePlugin){
InitializablePlugin ip=(InitializablePlugin)p;
try {
ip.init();
} catch (InitializationException e) {
e.printStackTrace(System.err);
Assert.fail("Unable to Init "+p.getDescriptor().getId());
}
}
});
}
}