Improved test
This commit is contained in:
parent
fd32391267
commit
a92f5c532c
|
@ -69,7 +69,7 @@ public class ContextManagement extends EntityElementManagement<Context> {
|
|||
try {
|
||||
contexts = ElementMapper.unmarshalList(contextsJsonString);
|
||||
} catch (IOException e) {
|
||||
logger.error("Unable to ");
|
||||
logger.error("Unable to read contexts from DB", e);
|
||||
}
|
||||
return contexts;
|
||||
}
|
||||
|
|
|
@ -3,25 +3,33 @@
|
|||
*/
|
||||
package org.gcube.informationsystem.resourceregistry.instances.multicontext;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.gcube.common.authorization.client.exceptions.ObjectNotFound;
|
||||
import org.gcube.informationsystem.context.reference.entities.Context;
|
||||
import org.gcube.informationsystem.model.impl.properties.PropagationConstraintImpl;
|
||||
import org.gcube.informationsystem.model.reference.entities.Facet;
|
||||
import org.gcube.informationsystem.model.reference.properties.PropagationConstraint;
|
||||
import org.gcube.informationsystem.model.reference.properties.PropagationConstraint.AddConstraint;
|
||||
import org.gcube.informationsystem.model.reference.properties.PropagationConstraint.RemoveConstraint;
|
||||
import org.gcube.informationsystem.resourceregistry.ContextTest;
|
||||
import org.gcube.informationsystem.resourceregistry.api.contexts.ContextCache;
|
||||
import org.gcube.informationsystem.resourceregistry.api.contexts.ContextCacheRenewal;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.context.ContextNotFoundException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.facet.FacetAvailableInAnotherContextException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceAvailableInAnotherContextException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.entity.resource.ResourceNotFoundException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.relation.RelationAvailableInAnotherContextException;
|
||||
import org.gcube.informationsystem.resourceregistry.api.utils.Utility;
|
||||
import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility;
|
||||
import org.gcube.informationsystem.resourceregistry.contexts.entities.ContextManagement;
|
||||
import org.gcube.informationsystem.resourceregistry.instances.SmartgearResourcesTest;
|
||||
import org.gcube.informationsystem.resourceregistry.instances.base.ElementManagement;
|
||||
import org.gcube.informationsystem.resourceregistry.instances.base.ElementManagementUtility;
|
||||
|
@ -464,11 +472,11 @@ public class BasicTest extends ContextTest {
|
|||
Assert.assertTrue(deleted);
|
||||
}
|
||||
|
||||
@Test
|
||||
// @Test
|
||||
public void testGetInstanceContexts() throws ObjectNotFound, Exception {
|
||||
|
||||
String type = "ContainerStateFacet";
|
||||
String instanceId = "9d22d8e2-56ad-4de4-99cd-3c68e282ba99";
|
||||
String type = "HostingNode";
|
||||
String instanceId = "f0460614-9ffb-4ecd-bf52-d91e8d81d604";
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
ElementManagement erManagement = ElementManagementUtility.getERManagement(type);
|
||||
|
@ -483,5 +491,138 @@ public class BasicTest extends ContextTest {
|
|||
logger.debug("{}", contexts);
|
||||
|
||||
}
|
||||
|
||||
protected ContextCacheRenewal contextCacheRenewal= new ContextCacheRenewal() {
|
||||
|
||||
@Override
|
||||
public List<Context> renew() throws ResourceRegistryException {
|
||||
ContextManagement contextManagement = new ContextManagement();
|
||||
String contextsJsonString = contextManagement.allFromServer(false);
|
||||
List<Context> contexts = null;
|
||||
try {
|
||||
contexts = ElementMapper.unmarshalList(contextsJsonString);
|
||||
} catch (IOException e) {
|
||||
logger.error("Unable to read context from server", e);
|
||||
}
|
||||
return contexts;
|
||||
}
|
||||
};
|
||||
|
||||
@Test
|
||||
public void testGetInstancesContexts() throws ResourceRegistryException, Exception {
|
||||
ContextTest.setContextByName(DEFAULT_TEST_SCOPE);
|
||||
/* Creating HostingNode */
|
||||
ContextCache contextCache = ContextCache.getInstance();
|
||||
contextCache.setContextCacheRenewal(contextCacheRenewal);
|
||||
|
||||
|
||||
ResourceManagement hostingNodeManagement = new ResourceManagement();
|
||||
hostingNodeManagement.setElementType(HostingNode.NAME);
|
||||
hostingNodeManagement.setJson(SmartgearResourcesTest.HOSTING_NODE);
|
||||
|
||||
String hnJson = hostingNodeManagement.create();
|
||||
logger.debug("Created : {}", hnJson);
|
||||
HostingNode hostingNode = ElementMapper.unmarshal(HostingNode.class, hnJson);
|
||||
logger.debug("Unmarshalled {} {}", HostingNode.NAME, hostingNode);
|
||||
|
||||
/* Creating EService */
|
||||
|
||||
ResourceManagement eServiceManagement = new ResourceManagement();
|
||||
eServiceManagement.setElementType(EService.NAME);
|
||||
eServiceManagement.setJson(SmartgearResourcesTest.ESERVICE);
|
||||
|
||||
String eservicejson = eServiceManagement.create();
|
||||
logger.debug("Created : {}", eservicejson);
|
||||
EService eService = ElementMapper.unmarshal(EService.class, eservicejson);
|
||||
logger.debug("Unmarshalled {} {}", EService.NAME, eService);
|
||||
|
||||
|
||||
/* Creating Activates Relation */
|
||||
|
||||
PropagationConstraint propagationConstraint = new PropagationConstraintImpl();
|
||||
propagationConstraint
|
||||
.setRemoveConstraint(RemoveConstraint.cascade);
|
||||
propagationConstraint
|
||||
.setAddConstraint(AddConstraint.unpropagate);
|
||||
|
||||
|
||||
Activates<HostingNode, EService> activates = new ActivatesImpl<>(hostingNode, eService,
|
||||
propagationConstraint);
|
||||
|
||||
IsRelatedToManagement activatesManagement = new IsRelatedToManagement();
|
||||
activatesManagement.setElementType(Activates.NAME);
|
||||
String activatesJson = ElementMapper.marshal(activates);
|
||||
activatesManagement.setJson(activatesJson);
|
||||
String createdActivatesJson = activatesManagement.create();
|
||||
logger.debug("Created : {}", createdActivatesJson);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Activates<HostingNode, EService> createdActivates = ElementMapper.unmarshal(Activates.class, createdActivatesJson);
|
||||
logger.debug("UnMarshalled {}", createdActivates);
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
logger.debug("Switching to alternative scope");
|
||||
ContextTest.setContextByName(ALTERNATIVE_TEST_SCOPE);
|
||||
|
||||
hostingNodeManagement = new ResourceManagement();
|
||||
hostingNodeManagement.setUUID(hostingNode.getHeader().getUUID());
|
||||
hostingNodeManagement.setElementType(Utility.getTypeName(hostingNode.getClass()));
|
||||
hostingNodeManagement.addToContext(ContextUtility.getCurrentSecurityContext().getUUID());
|
||||
|
||||
String hostingNodeContexts = hostingNodeManagement.getContexts();
|
||||
logger.debug("Contexts of {} with UUID {} have the following UUID {}", HostingNode.NAME, hostingNodeManagement.getUUID(), hostingNodeContexts);
|
||||
Set<UUID> hostingNodeContextsUUID = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextUUIDSet(hostingNodeContexts);
|
||||
Assert.assertTrue(hostingNodeContextsUUID.size()==2);
|
||||
Set<String> hostingNodeContextFullNames = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextFullNameSet(hostingNodeContextsUUID);
|
||||
Assert.assertTrue(hostingNodeContextFullNames.size()==2);
|
||||
logger.debug("Contexts of {} with UUID {} are {}", HostingNode.NAME, hostingNodeManagement.getUUID(), hostingNodeContextFullNames);
|
||||
|
||||
for(Facet facet : hostingNode.getFacets()) {
|
||||
FacetManagement facetManagement = new FacetManagement();
|
||||
facetManagement.setUUID(facet.getHeader().getUUID());
|
||||
String typeName = Utility.getTypeName(facet.getClass());
|
||||
facetManagement.setElementType(typeName);
|
||||
String facetContexts = facetManagement.getContexts();
|
||||
logger.debug("Contexts of {} with UUID {} have the following UUID {}", typeName, facetManagement.getUUID(), facetContexts);
|
||||
Set<UUID> facetContextsUUID = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextUUIDSet(facetContexts);
|
||||
Assert.assertTrue(hostingNodeContextsUUID.size()==2);
|
||||
Assert.assertTrue(facetContextsUUID.containsAll(hostingNodeContextsUUID));
|
||||
Assert.assertTrue(hostingNodeContextsUUID.containsAll(facetContextsUUID));
|
||||
Set<String> facetContextFullNames = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextFullNameSet(facetContextsUUID);
|
||||
Assert.assertTrue(facetContextFullNames.size()==2);
|
||||
logger.debug("Contexts of {} with UUID {} are {}", typeName, facetManagement.getUUID(), facetContextFullNames);
|
||||
}
|
||||
|
||||
activatesManagement = new IsRelatedToManagement();
|
||||
activatesManagement.setUUID(createdActivates.getHeader().getUUID());
|
||||
activatesManagement.setElementType(Utility.getTypeName(createdActivates.getClass()));
|
||||
String isRelatedToContexts = activatesManagement.getContexts();
|
||||
logger.debug("Contexts of {} with UUID {} have the following UUID {}", Activates.NAME, activatesManagement.getUUID(), isRelatedToContexts);
|
||||
Set<UUID> activatesContextsUUID = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextUUIDSet(isRelatedToContexts);
|
||||
Assert.assertTrue(activatesContextsUUID.size()==1);
|
||||
Assert.assertFalse(activatesContextsUUID.containsAll(hostingNodeContextsUUID));
|
||||
Assert.assertTrue(hostingNodeContextsUUID.containsAll(activatesContextsUUID));
|
||||
Set<String> activatesContextFullNames = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextFullNameSet(activatesContextsUUID);
|
||||
Assert.assertTrue(activatesContextFullNames.size()==1);
|
||||
logger.debug("Contexts of {} with UUID {} are {}", Activates.NAME, activatesManagement.getUUID(), activatesContextFullNames);
|
||||
|
||||
|
||||
eServiceManagement = new ResourceManagement();
|
||||
eServiceManagement.setUUID(eService.getHeader().getUUID());
|
||||
eServiceManagement.setElementType(Utility.getTypeName(eService.getClass()));
|
||||
String eServiceContexts = eServiceManagement.getContexts();
|
||||
logger.debug("Contexts of {} with UUID {} have the following UUID {}", EService.NAME, eServiceManagement.getUUID(), eServiceContexts);
|
||||
Set<UUID> eServiceContextsUUID = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextUUIDSet(eServiceContexts);
|
||||
Assert.assertTrue(eServiceContextsUUID.size()==1);
|
||||
Assert.assertFalse(eServiceContextsUUID.containsAll(hostingNodeContextsUUID));
|
||||
Assert.assertTrue(hostingNodeContextsUUID.containsAll(eServiceContextsUUID));
|
||||
Set<String> eServiceContextFullNames = org.gcube.informationsystem.resourceregistry.api.contexts.ContextUtility.getContextFullNameSet(eServiceContextsUUID);
|
||||
Assert.assertTrue(eServiceContextFullNames.size()==1);
|
||||
logger.debug("Contexts of {} with UUID {} are {}", EService.NAME, eServiceManagement.getUUID(), eServiceContextFullNames);
|
||||
|
||||
boolean deleted = hostingNodeManagement.delete();
|
||||
Assert.assertTrue(deleted);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue