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

88 lines
3.0 KiB
Java
Raw Normal View History

2022-01-12 18:42:22 +01:00
package org.gcube.application.cms.tests;
import ch.qos.logback.core.net.SyslogOutputStream;
import org.gcube.application.cms.plugins.InitializablePlugin;
2022-02-24 18:09:30 +01:00
import org.gcube.application.cms.plugins.MaterializationPlugin;
2022-01-12 18:42:22 +01:00
import org.gcube.application.cms.plugins.Plugin;
2022-02-24 18:09:30 +01:00
import org.gcube.application.cms.plugins.PluginsReflections;
2022-01-12 18:42:22 +01:00
import org.gcube.application.cms.plugins.faults.InitializationException;
2022-02-24 18:09:30 +01:00
import org.gcube.application.cms.plugins.requests.MaterializationRequest;
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
2022-01-12 18:42:22 +01:00
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;
2022-02-24 18:09:30 +01:00
import java.util.ArrayList;
2022-01-12 18:42:22 +01:00
import java.util.List;
import java.util.ServiceLoader;
import java.util.concurrent.atomic.AtomicLong;
2022-02-24 18:09:30 +01:00
import static org.junit.Assume.assumeTrue;
2022-01-12 18:42:22 +01:00
public class BasicPluginTest {
2022-02-24 18:09:30 +01:00
protected String context;
static List<Plugin> plugins=new ArrayList<>();
2022-01-12 18:42:22 +01:00
@BeforeClass
public static void checkPluginRegistration() {
2022-02-24 18:09:30 +01:00
plugins.addAll(PluginsReflections.load().values());
plugins.forEach(plugin -> System.out.println());
2022-01-12 18:42:22 +01:00
2022-02-24 18:09:30 +01:00
Assert.assertFalse(plugins.isEmpty());
System.out.println("Plugin Loading OK");
}
2022-01-12 18:42:22 +01:00
2022-02-24 18:09:30 +01:00
@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;
2022-01-12 18:42:22 +01:00
try {
2022-02-24 18:09:30 +01:00
ip.init();
} catch (InitializationException e) {
e.printStackTrace(System.err);
Assert.fail("Unable to Init "+p.getDescriptor().getId());
2022-01-12 18:42:22 +01:00
}
}
});
}
@Test
2022-02-24 18:09:30 +01:00
public void initInContext(){
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
2022-01-12 18:42:22 +01:00
plugins.forEach(p->{
2022-02-24 18:09:30 +01:00
TokenSetter.set(context);
System.out.println("INIT Plugin "+p.getClass()+" in "+context);
2022-01-12 18:42:22 +01:00
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 {
2022-02-24 18:09:30 +01:00
ip.initInContext();
2022-01-12 18:42:22 +01:00
} catch (InitializationException e) {
e.printStackTrace(System.err);
Assert.fail("Unable to Init "+p.getDescriptor().getId());
}
}
});
}
2022-02-24 18:09:30 +01:00
2022-01-12 18:42:22 +01:00
}