package org.molgenis.genetics.diag.genenetwork; import org.molgenis.data.DataService; import org.molgenis.data.Entity; import org.molgenis.framework.ui.MolgenisPluginRegistry; import org.molgenis.genetics.diag.genenetwork.meta.GeneNetworkScoreMetaData; import org.molgenis.test.data.AbstractMolgenisSpringTest; import org.molgenis.util.ResourceUtils; import org.springframework.beans.factory.annotation.Autowired; 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.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.io.IOException; import java.util.*; import static org.mockito.Mockito.mock; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; @ContextConfiguration(classes = { GeneNetworkControllerTest.Config.class, GeneNetworkController.class }) public class GeneNetworkControllerTest extends AbstractMolgenisSpringTest { @Autowired private GeneNetworkController geneNetworkController; @Autowired DataService dataService; List<String> hpo = Arrays.asList("hpo1", "hpo2", "hpo3"); Map<String, String> genes = new HashMap<>(); @BeforeClass public void beforeClass() throws IOException { genes.put("E1", "H1"); genes.put("E2", "H2"); genes.put("E3", "H3"); } @Test public void testCreateHpoTermList() throws IOException { List result = geneNetworkController .createHpoTermList(new Scanner(ResourceUtils.getFile(getClass(), "/testfile.txt"))); for (String value : hpo) { assertTrue(result.contains(value)); } } @Test public void testCreateEnsembleHugoMap() throws IOException { Map<String, String> result = geneNetworkController .createEnsembleHugoMap(ResourceUtils.getFile(getClass(), "/mart_export.txt").getPath()); assertEquals(result.keySet().size(), 3); for (String key : genes.keySet()) { assertEquals(result.get(key), genes.get(key)); } } @Test public void testImport() throws IOException { List<Entity> entities = geneNetworkController.processSingleInputLine(new Scanner("E1\t1\t2\t3"), hpo, genes); assertEquals(entities.size(), 3); assertEquals(entities.get(0).get(GeneNetworkScoreMetaData.ENSEMBL_ID), "E1"); assertEquals(entities.get(0).get(GeneNetworkScoreMetaData.SCORE), 1.0); assertEquals(entities.get(0).get(GeneNetworkScoreMetaData.HUGO_SYMBOL), "H1"); assertEquals(entities.get(0).get(GeneNetworkScoreMetaData.HPO), "hpo1"); assertEquals(entities.get(1).get(GeneNetworkScoreMetaData.ENSEMBL_ID), "E1"); assertEquals(entities.get(1).get(GeneNetworkScoreMetaData.SCORE), 2.0); assertEquals(entities.get(1).get(GeneNetworkScoreMetaData.HUGO_SYMBOL), "H1"); assertEquals(entities.get(1).get(GeneNetworkScoreMetaData.HPO), "hpo2"); assertEquals(entities.get(2).get(GeneNetworkScoreMetaData.ENSEMBL_ID), "E1"); assertEquals(entities.get(2).get(GeneNetworkScoreMetaData.SCORE), 3.0); assertEquals(entities.get(2).get(GeneNetworkScoreMetaData.HUGO_SYMBOL), "H1"); assertEquals(entities.get(2).get(GeneNetworkScoreMetaData.HPO), "hpo3"); } @Configuration @ComponentScan({ "org.molgenis.genetics.diag.genenetwork.meta" }) public static class Config { @Bean DataService dataService() { return mock(DataService.class); } @Bean MolgenisPluginRegistry pluginRegistry() { return mock(MolgenisPluginRegistry.class); } } }