resource-registry-database-.../src/test/java/org/gcube/informationsystem/model/discovery/ISMDiscoveryTest.java

65 lines
2.2 KiB
Java

package org.gcube.informationsystem.model.discovery;
import java.util.List;
import java.util.ServiceLoader;
import org.gcube.informationsystem.model.reference.ISManageable;
import org.gcube.informationsystem.model.reference.entities.Entity;
import org.gcube.informationsystem.model.reference.properties.Property;
import org.gcube.informationsystem.model.reference.relations.Relation;
import org.gcube.informationsystem.types.TypeBinder;
import org.gcube.informationsystem.utils.discovery.ISMDiscovery;
import org.gcube.informationsystem.utils.discovery.RegistrationProvider;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ISMDiscoveryTest {
private static Logger logger = LoggerFactory.getLogger(ISMDiscovery.class);
private void addDiscoveredModel(ISMDiscovery<? extends ISManageable> ismDiscovery) {
ServiceLoader<? extends RegistrationProvider> regsitrationProviders = ServiceLoader.load(RegistrationProvider.class);
for (RegistrationProvider registrationProvider : regsitrationProviders) {
List<Package> packages = registrationProvider.getPackagesToRegister();
for(Package p : packages) {
ismDiscovery.addPackage(p);
}
}
}
@Test
public void testPropertyDiscovery() throws Exception{
ISMDiscovery<Property> propertyDiscovery = new ISMDiscovery<>(Property.class);
addDiscoveredModel(propertyDiscovery);
propertyDiscovery.discover();
for(Class<Property> propertyClass : propertyDiscovery.getDiscovered()) {
logger.info("Going to create : {}", propertyClass);
logger.info("{}", TypeBinder.serializeType(propertyClass));
}
}
@Test
public void testEntityDiscovery() throws Exception{
ISMDiscovery<Entity> entityDiscovery = new ISMDiscovery<>(Entity.class);
addDiscoveredModel(entityDiscovery);
entityDiscovery.discover();
for(Class<Entity> entity : entityDiscovery.getDiscovered()) {
logger.info("Going to create : {}", entity);
}
}
@Test
public void testRelationDiscovery() throws Exception{
@SuppressWarnings("rawtypes")
ISMDiscovery<Relation> relationDiscovery = new ISMDiscovery<>(Relation.class);
addDiscoveredModel(relationDiscovery);
relationDiscovery.discover();
}
}