package org.molgenis.test.data; import org.molgenis.data.DataService; import org.molgenis.data.EntityFactoryRegistry; import org.molgenis.data.EntityReferenceCreator; import org.molgenis.data.EntityReferenceCreatorImpl; import org.molgenis.data.meta.SystemEntityType; import org.molgenis.data.meta.model.AttributeMetadata; import org.molgenis.data.meta.model.EntityTypeMetadata; import org.molgenis.data.support.DataServiceImpl; import org.molgenis.util.GenericDependencyResolver; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.annotations.BeforeClass; import java.util.Map; import static com.google.common.collect.Lists.newArrayList; @ContextConfiguration(classes = { AbstractMolgenisSpringTest.Config.class }) public abstract class AbstractMolgenisSpringTest extends AbstractTestNGSpringContextTests { @BeforeClass public void bootstrap() { // bootstrap meta data EntityTypeMetadata entityTypeMeta = applicationContext.getBean(EntityTypeMetadata.class); entityTypeMeta.setBackendEnumOptions(newArrayList("test")); applicationContext.getBean(AttributeMetadata.class).bootstrap(entityTypeMeta); Map<String, SystemEntityType> systemEntityTypeMap = applicationContext.getBeansOfType(SystemEntityType.class); new GenericDependencyResolver().resolve(systemEntityTypeMap.values(), SystemEntityType::getDependencies) .stream().forEach(systemEntityType -> systemEntityType.bootstrap(entityTypeMeta)); } @Configuration @ComponentScan({ "org.molgenis.data.meta.model", "org.molgenis.data.system.model", "org.molgenis.data.populate", "org.molgenis.test.data" }) public static class Config { @Bean public GenericDependencyResolver genericDependencyResolver() { return new GenericDependencyResolver(); } @Bean public DataService dataService() { return new DataServiceImpl(); } @Bean public EntityFactoryRegistry entityFactoryRegistry() { return new EntityFactoryRegistry(); } @Bean public EntityReferenceCreator entityReferenceCreator() { return new EntityReferenceCreatorImpl(dataService(), entityFactoryRegistry()); } } }