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

87 lines
2.8 KiB
Java
Raw Normal View History

2022-01-12 18:42:22 +01:00
package org.gcube.application.cms.tests;
2022-02-25 11:44:56 +01:00
import org.gcube.application.cms.implementations.ISInterface;
import org.gcube.application.cms.implementations.ImplementationProvider;
2022-01-12 18:42:22 +01:00
import org.gcube.application.cms.plugins.InitializablePlugin;
2022-03-17 17:54:00 +01:00
import org.gcube.application.cms.plugins.LifecycleManager;
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-03-04 11:30:11 +01:00
import org.gcube.application.cms.plugins.faults.PluginExecutionException;
2022-03-14 17:04:09 +01:00
import org.gcube.application.geoportal.common.model.document.accounting.Context;
import org.gcube.application.geoportal.common.model.document.accounting.User;
2022-03-17 17:54:00 +01:00
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
2022-02-24 18:09:30 +01:00
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
2022-03-17 17:54:00 +01:00
import org.junit.*;
2022-01-12 18:42:22 +01:00
2022-02-25 11:44:56 +01:00
import java.util.HashMap;
import java.util.Map;
2022-02-24 18:09:30 +01:00
2022-03-17 17:54:00 +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
2022-03-14 17:04:09 +01:00
protected User getTestUser(){
User toReturn = new User();
toReturn.setUsername("test-user");
return toReturn;
}
2022-02-24 18:09:30 +01:00
2022-03-14 17:04:09 +01:00
protected Context getTestContext(){
Context toReturn = new Context();
String contextId =GCubeTest.getContext();
toReturn.setId(contextId);
toReturn.setName(contextId.substring(contextId.lastIndexOf("/")));
return toReturn;
}
2022-02-25 11:44:56 +01:00
protected static Map<String,Plugin> plugins=new HashMap<>();
2022-01-12 18:42:22 +01:00
@BeforeClass
public static void checkPluginRegistration() {
2022-02-25 11:44:56 +01:00
plugins.putAll(PluginsReflections.load());
plugins.forEach((s,p) -> System.out.println(s+" "+p.getDescriptor()));
2022-01-12 18:42:22 +01:00
2022-02-24 18:09:30 +01:00
Assert.assertFalse(plugins.isEmpty());
2022-01-12 18:42:22 +01:00
2022-02-25 11:44:56 +01:00
plugins.forEach((s,p)->{
2022-02-24 18:09:30 +01:00
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-03-04 11:30:11 +01:00
ip.init().validate();
2022-02-25 11:44:56 +01:00
if(GCubeTest.isTestInfrastructureEnabled()){
TokenSetter.set(GCubeTest.getContext());
2022-03-04 11:30:11 +01:00
ip.initInContext().validate();
2022-02-25 11:44:56 +01:00
}
2022-03-04 11:30:11 +01:00
} catch (Exception e) {
2022-02-24 18:09:30 +01:00
e.printStackTrace(System.err);
Assert.fail("Unable to Init "+p.getDescriptor().getId());
2022-01-12 18:42:22 +01:00
}
}
});
2022-02-25 11:44:56 +01:00
System.out.println("Plugin Loading OK");
2022-03-17 17:54:00 +01:00
}
2022-03-04 11:30:11 +01:00
2022-03-17 17:54:00 +01:00
@Before
public void initContext(){
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
TokenSetter.set(GCubeTest.getContext());
2022-01-12 18:42:22 +01:00
}
2022-02-24 18:09:30 +01:00
2022-03-17 17:54:00 +01:00
2022-01-12 18:42:22 +01:00
}