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.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 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(); if(GCubeTest.isTestInfrastructureEnabled()){ TokenSetter.set(GCubeTest.getContext()); ip.initInContext(); } } catch (InitializationException e) { e.printStackTrace(System.err); Assert.fail("Unable to Init "+p.getDescriptor().getId()); } } }); System.out.println("Plugin Loading OK"); if(GCubeTest.isTestInfrastructureEnabled()){ ImplementationProvider.get().setEngine(new ISProvider(), ISInterface.class); } } }