rmp-common-library/src/main/java/org/gcube/resourcemanagement/support/server/tests/GenericTest.java

205 lines
7.6 KiB
Java

/****************************************************************************
*
*
*
*
* This software is part of the gCube Project.
* Site: http://www.gcube-system.org/
****************************************************************************
* The gCube/gCore software is licensed as Free Open Source software
* conveying to the EUPL (http://ec.europa.eu/idabc/eupl).
* The software and documentation is provided by its authors/distributors
* "as is" and no expressed or
* implied warranty is given for its use, quality or fitness for a
* particular case.
****************************************************************************
* Filename: GenericTest.java
****************************************************************************
* @author <a href="mailto:daniele.strollo@isti.cnr.it">Daniele Strollo</a>
***************************************************************************/
package org.gcube.resourcemanagement.support.server.tests;
import java.io.File;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.gcube.common.resources.gcore.HostingNode;
import org.gcube.common.resources.gcore.utils.XPathHelper;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.common.scope.impl.ScopeBean;
import org.gcube.resourcemanagement.support.server.gcube.CacheManager;
import org.gcube.resourcemanagement.support.server.gcube.ISClientRequester;
import org.gcube.resourcemanagement.support.server.managers.resources.GHNManager;
import org.gcube.resourcemanagement.support.server.managers.resources.GenericResourceManager;
import org.gcube.resourcemanagement.support.server.managers.resources.ManagementUtils;
import org.gcube.resourcemanagement.support.server.managers.scope.ScopeManager;
import org.gcube.resourcemanagement.support.server.types.AllowedResourceTypes;
import org.gcube.resourcemanagement.support.server.utils.ServerConsole;
import org.gcube.resourcemanagement.support.shared.types.datamodel.ResourceDescriptor;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
/**
* @author Daniele Strollo (ISTI-CNR)
*
*/
public class GenericTest {
private static final String LOG_PREFIX = "[SW-SUPPORT-TEST]";
public static String testCreation() {
System.out.println("\n\n\n******************** TEST CREATION ***************");
String resID = null;
try {
resID = GenericResourceManager.create(
null,
new ScopeBean("/gcube/devsec"),
"RMP Test " + new Date(),
"RMP Test Description",
"Hello",
"test");
ServerConsole.trace(null, "Generic Resource Created with ID: " + resID);
} catch (Exception e) {
ServerConsole.error(LOG_PREFIX, e);
} finally {
System.out.println("\n******************** TEST CREATION END ***************\n");
}
return resID;
}
public static void testScopeCopy(final String resID, final String fromScope, final String toScope) {
System.out.println("\n\n\n******************** TEST SCOPE COPY ***************");
try {
// GenericResourceManager res = new GenericResourceManager(resID);
// ServerConsole.trace(null,
// res.addToExistingScope(new ScopeBean(fromScope), new ScopeBean(toScope))
// );
String[] ids = {resID};
ManagementUtils.addToExistingScope(AllowedResourceTypes.GenericResource, ids, new ScopeBean(fromScope), new ScopeBean(toScope));
} catch (Exception e) {
ServerConsole.error(LOG_PREFIX, e);
} finally {
System.out.println("\n******************** TEST SCOPE COPY END ***************\n");
}
}
public static void testResourceEdit(final String resID, final ScopeBean scope) {
System.out.println("\n\n\n******************** TEST RESEDIT COPY ***************");
try {
GenericResourceManager res = new GenericResourceManager(resID);
res.update(res.getName()+" Edited", "updated description", "<update>updated body</update>", "test2", scope);
} catch (Exception e) {
ServerConsole.error(LOG_PREFIX, e);
} finally {
System.out.println("\n******************** TEST RESEDIT END ***************\n");
}
}
public static void testModeGHN(final String resID, final String scope)
throws Exception {
ScopeBean queryScope = new ScopeBean(scope);
GHNManager ghnManager = new GHNManager(resID);
HostingNode res = (HostingNode) ghnManager.getResource(queryScope);
res.profile().description().status("CERTIFIED");
ScopeProvider.instance.set(queryScope.name());
ghnManager.getRegistryPublisher().update(res);
}
public static void testGHN() {
System.out.println("\n\n\n******************** TEST GHN ***************");
try {
GHNManager ghn1 = new GHNManager("796f0680-3937-11e2-9d5f-ae6a92affb51", "pcd4science3.cern.ch");
ghn1.addToExistingScope(new ScopeBean("/gcube"), new ScopeBean("/gcube/devsec"));
} catch (Exception e) {
ServerConsole.error(LOG_PREFIX, e);
} finally {
System.out.println("\n******************** TEST GHN END ***************\n");
}
}
public static void testRemoveFromScope(final String resID, final ScopeBean scope) {
System.out.println("\n\n\n******************** TEST RESOURCE REMOVEFROMSCOPE ***************");
try {
GenericResourceManager res = new GenericResourceManager(resID);
res.removeFromScope(scope);
} catch (Exception e) {
ServerConsole.error(LOG_PREFIX, e);
} finally {
System.out.println("\n******************** TEST RESOURCE REMOVEFROMSCOPE END ***************\n");
}
}
public static void testDelete(final String resID, final ScopeBean scope) {
System.out.println("\n\n\n******************** TEST RESOURCE DELETE ***************");
try {
GenericResourceManager res = new GenericResourceManager(resID);
res.delete(scope);
} catch (Exception e) {
ServerConsole.error(LOG_PREFIX, e);
} finally {
System.out.println("\n******************** TEST RESOURCE DELETE END ***************\n");
}
}
private static void testTree(ScopeBean scope) throws Exception {
CacheManager cm = new CacheManager();
cm.setUseCache(false);
HashMap<String, ArrayList<String>> results = ISClientRequester.getResourcesTree(cm, scope);
for (String res : results.keySet()) {
System.out.println(res);
for (String sub : results.get(res)) {
System.out.println(sub);
}
}
List<String> descs = ISClientRequester.getResourcesByType(cm, scope, "GenericResource", "VRE");
for (String resourceDescriptor : descs) {
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Node node = docBuilder.parse(new InputSource(new StringReader(resourceDescriptor))).getDocumentElement();
XPathHelper helper = new XPathHelper(node);
System.out.println(helper.evaluate("/Resource/Name/text()").get(0));
}
}
@SuppressWarnings("deprecation")
public static void main(final String[] args) throws Exception {
// The scopes must be initialized
ScopeManager.setScopeConfigFile("test-suite" + File.separator + "scopes" + File.separator + "scopedata_admin.xml");
ScopeProvider.instance.set("/gcube/devsec");
testTree( new ScopeBean("/gcube/devsec"));
// boolean deepTest = true;
//
// // testGHN();
// if (deepTest) {
// String resID = testCreation();
// testScopeCopy(resID, "/gcube/devsec", "/gcube/devsec/devVRE");
//////
// System.out.println("\n\nWaiting for resource refresh 20secs.\n\n\n");
// Thread.sleep(20000);
//
//
// //testResourceEdit(resID, new ScopeBean("/gcube/devsec"));
//testDelete(resID, new ScopeBean("/gcube/devsec"));
//
// testRemoveFromScope(resID, new ScopeBean("/gcube/devsec/devVRE"));
// } else {
// testModeGHN("796f0680-3937-11e2-9d5f-ae6a92affb51", "/gcube/devsec/devVRE");
// }
}
}