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 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()); } } }); } }