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

88 lines
3.0 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.MaterializationPlugin;
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.requests.MaterializationRequest;
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
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.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import java.util.concurrent.atomic.AtomicLong;
import static org.junit.Assume.assumeTrue;
public class BasicPluginTest {
protected String context;
static List<Plugin> plugins=new ArrayList<>();
@BeforeClass
public static void checkPluginRegistration() {
plugins.addAll(PluginsReflections.load().values());
plugins.forEach(plugin -> System.out.println());
Assert.assertFalse(plugins.isEmpty());
System.out.println("Plugin Loading OK");
}
@Test
public void init(){
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());
}
}
});
}
@Test
public void initInContext(){
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
plugins.forEach(p->{
TokenSetter.set(context);
System.out.println("INIT Plugin "+p.getClass()+" in "+context);
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.initInContext();
} catch (InitializationException e) {
e.printStackTrace(System.err);
Assert.fail("Unable to Init "+p.getDescriptor().getId());
}
}
});
}
}