Reorganizing tests
This commit is contained in:
parent
5fc6288a65
commit
d0fe1fc2ec
|
@ -1,52 +0,0 @@
|
||||||
package org.gcube.informationsystem.resourceregistry.instances;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.ServiceLoader;
|
|
||||||
|
|
||||||
import org.gcube.informationsystem.model.reference.entities.Resource;
|
|
||||||
import org.gcube.informationsystem.types.TypeMapper;
|
|
||||||
import org.gcube.informationsystem.utils.discovery.ElementSpecilizationDiscovery;
|
|
||||||
import org.gcube.informationsystem.utils.discovery.RegistrationProvider;
|
|
||||||
import org.junit.Test;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Luca Frosini (ISTI - CNR)
|
|
||||||
*/
|
|
||||||
public class DiscoveryTest {
|
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(DiscoveryTest.class);
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void discover() throws Exception {
|
|
||||||
ServiceLoader<? extends RegistrationProvider> regsitrationProviders = ServiceLoader
|
|
||||||
.load(RegistrationProvider.class);
|
|
||||||
List<Package> packages = new ArrayList<>();
|
|
||||||
for(RegistrationProvider registrationProvider : regsitrationProviders) {
|
|
||||||
packages.addAll(registrationProvider.getPackagesToRegister());
|
|
||||||
}
|
|
||||||
Package[] packagesArray = packages.stream().toArray(Package[]::new);
|
|
||||||
|
|
||||||
ElementSpecilizationDiscovery<Resource> resourceDiscovery = new ElementSpecilizationDiscovery<>(Resource.class);
|
|
||||||
Arrays.stream(packagesArray).forEach(p -> resourceDiscovery.addPackage(p));
|
|
||||||
resourceDiscovery.discover();
|
|
||||||
|
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
|
||||||
stringBuilder.append("[");
|
|
||||||
boolean first = true;
|
|
||||||
for (Class<? extends Resource> resource : resourceDiscovery.getDiscovered()) {
|
|
||||||
if(first) {
|
|
||||||
first = false;
|
|
||||||
}else {
|
|
||||||
stringBuilder.append(",");
|
|
||||||
}
|
|
||||||
stringBuilder.append(TypeMapper.serializeType(resource));
|
|
||||||
}
|
|
||||||
stringBuilder.append("]");
|
|
||||||
logger.debug(stringBuilder.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -11,7 +11,6 @@ import org.gcube.informationsystem.model.reference.relations.ConsistsOf;
|
||||||
import org.gcube.informationsystem.resourceregistry.ContextTest;
|
import org.gcube.informationsystem.resourceregistry.ContextTest;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException;
|
||||||
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaViolationException;
|
import org.gcube.informationsystem.resourceregistry.api.exceptions.schema.SchemaViolationException;
|
||||||
import org.gcube.informationsystem.resourceregistry.contexts.ContextUtility;
|
|
||||||
import org.gcube.informationsystem.resourceregistry.instances.model.entities.FacetManagement;
|
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.entities.ResourceManagement;
|
||||||
import org.gcube.informationsystem.resourceregistry.instances.model.relations.ConsistsOfManagement;
|
import org.gcube.informationsystem.resourceregistry.instances.model.relations.ConsistsOfManagement;
|
||||||
|
@ -84,7 +83,6 @@ public class InvalidInstancesTest extends ContextTest {
|
||||||
|
|
||||||
@Test(expected = SchemaViolationException.class)
|
@Test(expected = SchemaViolationException.class)
|
||||||
public void testCreateStandAloneFacet() throws Exception {
|
public void testCreateStandAloneFacet() throws Exception {
|
||||||
|
|
||||||
CPUFacet cpuFacet = new CPUFacetImpl();
|
CPUFacet cpuFacet = new CPUFacetImpl();
|
||||||
cpuFacet.setClockSpeed("1 GHz");
|
cpuFacet.setClockSpeed("1 GHz");
|
||||||
cpuFacet.setModel("Opteron");
|
cpuFacet.setModel("Opteron");
|
||||||
|
@ -166,7 +164,6 @@ public class InvalidInstancesTest extends ContextTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test(expected = SchemaViolationException.class)
|
@Test(expected = SchemaViolationException.class)
|
||||||
public void testCreateEServiceAndDeleteRequiredConsistsOf() throws Exception {
|
public void testCreateEServiceAndDeleteRequiredConsistsOf() throws Exception {
|
||||||
EService eService = ERManagementTest.instantiateValidEService();
|
EService eService = ERManagementTest.instantiateValidEService();
|
||||||
|
@ -184,12 +181,6 @@ public class InvalidInstancesTest extends ContextTest {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
consistsOfManagement.delete();
|
consistsOfManagement.delete();
|
||||||
throw new Exception("You should not be able to delete a mandatory ConsistsOf");
|
|
||||||
}catch (SchemaViolationException e) {
|
|
||||||
// As expected
|
|
||||||
throw e;
|
|
||||||
}catch (Exception e) {
|
|
||||||
throw e;
|
|
||||||
}finally {
|
}finally {
|
||||||
resourceManagement.delete();
|
resourceManagement.delete();
|
||||||
}
|
}
|
||||||
|
@ -217,63 +208,12 @@ public class InvalidInstancesTest extends ContextTest {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
facetManagement.delete();
|
facetManagement.delete();
|
||||||
throw new Exception("You should not be able to delete a mandatory Facet");
|
|
||||||
}catch (SchemaViolationException e) {
|
|
||||||
// As expected
|
|
||||||
throw e;
|
|
||||||
}catch (Exception e) {
|
|
||||||
throw e;
|
|
||||||
}finally {
|
}finally {
|
||||||
resourceManagement.delete();
|
resourceManagement.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@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();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test(expected = SchemaViolationException.class)
|
@Test(expected = SchemaViolationException.class)
|
||||||
public void testCreateConsistsOfBeetweenResources() throws Exception {
|
public void testCreateConsistsOfBeetweenResources() throws Exception {
|
||||||
Map<String, Resource> map = ERManagementTest.createHostingNodeAndEService();
|
Map<String, Resource> map = ERManagementTest.createHostingNodeAndEService();
|
||||||
|
@ -299,12 +239,6 @@ public class InvalidInstancesTest extends ContextTest {
|
||||||
|
|
||||||
consistsOfManagement.create();
|
consistsOfManagement.create();
|
||||||
throw new Exception("A ConsistsOf has been created between two resoures. This should not happen");
|
throw new Exception("A ConsistsOf has been created between two resoures. This should not happen");
|
||||||
|
|
||||||
} catch (ResourceRegistryException e) {
|
|
||||||
logger.error("Sounds good. A {} cannot be created between two resources", ConsistsOf.NAME, e);
|
|
||||||
throw e;
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw e;
|
|
||||||
} finally {
|
} finally {
|
||||||
ResourceManagement resourceManagement = new ResourceManagement();
|
ResourceManagement resourceManagement = new ResourceManagement();
|
||||||
resourceManagement.setUUID(eServiceUUID);
|
resourceManagement.setUUID(eServiceUUID);
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
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();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,88 @@
|
||||||
|
package org.gcube.informationsystem.resourceregistry.types;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ServiceLoader;
|
||||||
|
|
||||||
|
import org.gcube.informationsystem.model.reference.entities.Resource;
|
||||||
|
import org.gcube.informationsystem.types.TypeMapper;
|
||||||
|
import org.gcube.informationsystem.utils.discovery.ElementSpecilizationDiscovery;
|
||||||
|
import org.gcube.informationsystem.utils.discovery.RegistrationProvider;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Actor;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.ConcreteDataset;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Configuration;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.ConfigurationTemplate;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Dataset;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.EService;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.GCubeResource;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.HostingNode;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.LegalBody;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Person;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Plugin;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.RunningPlugin;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Schema;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Service;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Site;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.Software;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.VirtualMachine;
|
||||||
|
import org.gcube.resourcemanagement.model.reference.entities.resources.VirtualService;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Luca Frosini (ISTI - CNR)
|
||||||
|
*/
|
||||||
|
public class DiscoveryTest {
|
||||||
|
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(DiscoveryTest.class);
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void discover() throws Exception {
|
||||||
|
ServiceLoader<? extends RegistrationProvider> regsitrationProviders = ServiceLoader
|
||||||
|
.load(RegistrationProvider.class);
|
||||||
|
List<Package> packages = new ArrayList<>();
|
||||||
|
for(RegistrationProvider registrationProvider : regsitrationProviders) {
|
||||||
|
packages.addAll(registrationProvider.getPackagesToRegister());
|
||||||
|
}
|
||||||
|
Package[] packagesArray = packages.stream().toArray(Package[]::new);
|
||||||
|
|
||||||
|
ElementSpecilizationDiscovery<Resource> resourceDiscovery = new ElementSpecilizationDiscovery<>(Resource.class);
|
||||||
|
Arrays.stream(packagesArray).forEach(p -> resourceDiscovery.addPackage(p));
|
||||||
|
resourceDiscovery.discover();
|
||||||
|
|
||||||
|
List<Class<? extends Resource>> expected = new ArrayList<>();
|
||||||
|
expected.add(Resource.class);
|
||||||
|
expected.add(Actor.class);
|
||||||
|
expected.add(ConcreteDataset.class);
|
||||||
|
expected.add(Configuration.class);
|
||||||
|
expected.add(ConfigurationTemplate.class);
|
||||||
|
expected.add(Dataset.class);
|
||||||
|
expected.add(EService.class);
|
||||||
|
expected.add(GCubeResource.class);
|
||||||
|
expected.add(HostingNode.class);
|
||||||
|
expected.add(LegalBody.class);
|
||||||
|
expected.add(Person.class);
|
||||||
|
expected.add(Plugin.class);
|
||||||
|
expected.add(RunningPlugin.class);
|
||||||
|
expected.add(Schema.class);
|
||||||
|
expected.add(Service.class);
|
||||||
|
expected.add(Site.class);
|
||||||
|
expected.add(Software.class);
|
||||||
|
expected.add(VirtualMachine.class);
|
||||||
|
expected.add(VirtualService.class);
|
||||||
|
|
||||||
|
List<Class<? extends Resource>> found = resourceDiscovery.getDiscovered();
|
||||||
|
|
||||||
|
for (Class<? extends Resource> resource : found) {
|
||||||
|
String typeDefinition = TypeMapper.serializeType(resource);
|
||||||
|
logger.debug(typeDefinition);
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.assertTrue(expected.containsAll(found));
|
||||||
|
Assert.assertTrue(found.containsAll(expected));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue