package org.gcube.informationsystem.model.discovery; import java.util.List; import java.util.ServiceLoader; import org.gcube.informationsystem.model.impl.utils.discovery.ISMDiscovery; import org.gcube.informationsystem.model.impl.utils.discovery.RegistrationProvider; import org.gcube.informationsystem.model.reference.ISManageable; import org.gcube.informationsystem.model.reference.embedded.Embedded; import org.gcube.informationsystem.model.reference.entity.Entity; import org.gcube.informationsystem.model.reference.relation.Relation; 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 ismDiscovery) { ServiceLoader regsitrationProviders = ServiceLoader.load(RegistrationProvider.class); for (RegistrationProvider registrationProvider : regsitrationProviders) { List packages = registrationProvider.getPackagesToRegister(); for(Package p : packages) { ismDiscovery.addPackage(p); } } } @Test public void testEmbeddedDiscovery() throws Exception{ ISMDiscovery embeddedDiscovery = new ISMDiscovery<>(Embedded.class); addDiscoveredModel(embeddedDiscovery); embeddedDiscovery.discover(); for(Class embedded : embeddedDiscovery.getDiscovered()) { logger.info("Going to create : {}", embedded); } } @Test public void testEntityDiscovery() throws Exception{ ISMDiscovery entityDiscovery = new ISMDiscovery<>(Entity.class); addDiscoveredModel(entityDiscovery); entityDiscovery.discover(); for(Class entity : entityDiscovery.getDiscovered()) { logger.info("Going to create : {}", entity); } } @Test public void testRelationDiscovery() throws Exception{ @SuppressWarnings("rawtypes") ISMDiscovery relationDiscovery = new ISMDiscovery<>(Relation.class); addDiscoveredModel(relationDiscovery); relationDiscovery.discover(); } }