87 lines
2.8 KiB
Java
87 lines
2.8 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.LifecycleManager;
|
|
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.model.document.accounting.Context;
|
|
import org.gcube.application.geoportal.common.model.document.accounting.User;
|
|
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
|
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
|
|
import org.junit.*;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import static org.junit.Assume.assumeTrue;
|
|
|
|
public class BasicPluginTest {
|
|
|
|
|
|
protected User getTestUser(){
|
|
User toReturn = new User();
|
|
toReturn.setUsername("test-user");
|
|
return toReturn;
|
|
}
|
|
|
|
protected Context getTestContext(){
|
|
Context toReturn = new Context();
|
|
String contextId =GCubeTest.getContext();
|
|
toReturn.setId(contextId);
|
|
toReturn.setName(contextId.substring(contextId.lastIndexOf("/")));
|
|
return toReturn;
|
|
}
|
|
|
|
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");
|
|
|
|
}
|
|
|
|
@Before
|
|
public void initContext(){
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
TokenSetter.set(GCubeTest.getContext());
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|