gcube-cms-suite/cms-test-commons/src/main/java/org/gcube/application/cms/tests/BasicPluginTest.java

64 lines
2.0 KiB
Java

package org.gcube.application.cms.tests;
import org.gcube.application.cms.implementations.ISInterface;
import org.gcube.application.cms.implementations.ImplementationProvider;
import org.gcube.application.cms.plugins.InitializablePlugin;
import org.gcube.application.cms.plugins.Plugin;
import org.gcube.application.cms.plugins.PluginsReflections;
import org.gcube.application.cms.plugins.faults.InitializationException;
import org.gcube.application.cms.plugins.faults.PluginExecutionException;
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
import org.junit.Assert;
import org.junit.BeforeClass;
import java.util.HashMap;
import java.util.Map;
public class BasicPluginTest {
protected static Map<String,Plugin> plugins=new HashMap<>();
@BeforeClass
public static void checkPluginRegistration() {
plugins.putAll(PluginsReflections.load());
plugins.forEach((s,p) -> System.out.println(s+" "+p.getDescriptor()));
Assert.assertFalse(plugins.isEmpty());
plugins.forEach((s,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().validate();
if(GCubeTest.isTestInfrastructureEnabled()){
TokenSetter.set(GCubeTest.getContext());
ip.initInContext().validate();
}
} catch (Exception e) {
e.printStackTrace(System.err);
Assert.fail("Unable to Init "+p.getDescriptor().getId());
}
}
});
System.out.println("Plugin Loading OK");
if(GCubeTest.isTestInfrastructureEnabled()){
}
}
}