62 lines
2.7 KiB
Java
62 lines
2.7 KiB
Java
|
package org.gcube.informationsystem.resourceregistry.instances.multicontext;
|
||
|
|
||
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaViolationException;
|
||
|
import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility;
|
||
|
import org.gcube.informationsystem.resourceregistry.instances.ERManagementTest;
|
||
|
import org.gcube.informationsystem.resourceregistry.instances.model.entities.FacetManagement;
|
||
|
import org.gcube.informationsystem.resourceregistry.instances.model.entities.ResourceManagement;
|
||
|
import org.gcube.informationsystem.resourceregistry.instances.model.relations.ConsistsOfManagement;
|
||
|
import org.gcube.informationsystem.utils.ElementMapper;
|
||
|
import org.gcube.resourcemanagement.model.reference.entities.facets.SoftwareFacet;
|
||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.EService;
|
||
|
import org.gcube.resourcemanagement.model.reference.relations.consistsof.IsIdentifiedBy;
|
||
|
import org.junit.Test;
|
||
|
|
||
|
public class AddToContextTest {
|
||
|
|
||
|
@Test
|
||
|
public void testCreateEServiceAndRemoveFromContextRequiredFacet() throws Exception {
|
||
|
EService eService = ERManagementTest.instantiateValidEService();
|
||
|
ResourceManagement resourceManagement = new ResourceManagement();
|
||
|
resourceManagement.setElementType(EService.NAME);
|
||
|
resourceManagement.setJson(ElementMapper.marshal(eService));
|
||
|
String createEServiceString = resourceManagement.create();
|
||
|
EService createEService = ElementMapper.unmarshal(EService.class, createEServiceString);
|
||
|
|
||
|
@SuppressWarnings("unchecked")
|
||
|
IsIdentifiedBy<EService, SoftwareFacet> isIdentifiedBy = (IsIdentifiedBy<EService, SoftwareFacet>) createEService.getConsistsOf(IsIdentifiedBy.class).get(0);
|
||
|
ConsistsOfManagement consistsOfManagement = new ConsistsOfManagement();
|
||
|
consistsOfManagement.setElementType(IsIdentifiedBy.NAME);
|
||
|
consistsOfManagement.setUUID(isIdentifiedBy.getHeader().getUUID());
|
||
|
|
||
|
try {
|
||
|
consistsOfManagement.removeFromContext(ContextUtility.getCurrentSecurityContext().getUUID());
|
||
|
throw new Exception("You should not be able to delete a mandatory ConsistsOf");
|
||
|
}catch (SchemaViolationException e) {
|
||
|
// As expected
|
||
|
}catch (Exception e) {
|
||
|
resourceManagement.delete();
|
||
|
throw e;
|
||
|
}
|
||
|
|
||
|
SoftwareFacet softwareFacet = isIdentifiedBy.getTarget();
|
||
|
FacetManagement facetManagement = new FacetManagement();
|
||
|
facetManagement.setElementType(SoftwareFacet.NAME);
|
||
|
facetManagement.setUUID(softwareFacet.getHeader().getUUID());
|
||
|
|
||
|
try {
|
||
|
facetManagement.removeFromContext(ContextUtility.getCurrentSecurityContext().getUUID());
|
||
|
throw new Exception("You should not be able to delete a mandatory Facet");
|
||
|
}catch (SchemaViolationException e) {
|
||
|
// As expected
|
||
|
}catch (Exception e) {
|
||
|
resourceManagement.delete();
|
||
|
throw e;
|
||
|
}
|
||
|
|
||
|
resourceManagement.delete();
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|