diff --git a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java index c947104992856bb393f310779a596aae011ba27f..1e01f40e07ec338fd685ea16271578579d6fa1d2 100644 --- a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java +++ b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java @@ -103,8 +103,17 @@ public class ElementMatcher { return false; case OTHER: // in other case just compare names - String name = target.getGenes().get(0).getResource(); - return element.getName().equalsIgnoreCase(name); + String targetName = null; + if (target.getGenes().size() > 0) { + targetName = target.getGenes().get(0).getResource(); + } + if (targetName == null) { + targetName = target.getName(); + } + if (targetName == null) { + return false; + } + return element.getName().equalsIgnoreCase(targetName); default: throw new InvalidArgumentException("Unknown drug target type: " + target.getType()); } diff --git a/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java b/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java index 0073cd477c59c7639df3b1bd57795fbf69a7b87d..512a3b462cb76482a560273f03114acb946038b1 100644 --- a/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java +++ b/service/src/test/java/lcsb/mapviewer/services/search/AllSearchTests.java @@ -13,7 +13,8 @@ import lcsb.mapviewer.services.search.layout.AllSearchLayoutTests; @SuiteClasses({ AllCommentTests.class, // AllSearchDbTests.class, // AllSearchDataTests.class, // - AllSearchLayoutTests.class,// + AllSearchLayoutTests.class, // + ElementMatcherTest.class, // }) public class AllSearchTests { diff --git a/service/src/test/java/lcsb/mapviewer/services/search/SearchResultFactoryTest.java b/service/src/test/java/lcsb/mapviewer/services/search/ElementMatcherTest.java similarity index 66% rename from service/src/test/java/lcsb/mapviewer/services/search/SearchResultFactoryTest.java rename to service/src/test/java/lcsb/mapviewer/services/search/ElementMatcherTest.java index 7a310be346eede812e93543470d29662e40af3fc..c34aa859e2cda767baf89001ebd4062493888e17 100644 --- a/service/src/test/java/lcsb/mapviewer/services/search/SearchResultFactoryTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/search/ElementMatcherTest.java @@ -1,60 +1,68 @@ -package lcsb.mapviewer.services.search; - -import static org.junit.Assert.assertTrue; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import lcsb.mapviewer.annotation.data.Chemical; -import lcsb.mapviewer.annotation.data.Target; -import lcsb.mapviewer.model.map.MiriamData; -import lcsb.mapviewer.model.map.MiriamType; -import lcsb.mapviewer.model.map.species.Element; -import lcsb.mapviewer.model.map.species.Rna; -import lcsb.mapviewer.services.ServiceTestFunctions; -import lcsb.mapviewer.services.search.comment.FullCommentViewFactory; -import lcsb.mapviewer.services.search.db.DbSearchCriteria; -import lcsb.mapviewer.services.search.db.chemical.IChemicalService; - -public class SearchResultFactoryTest extends ServiceTestFunctions { - - Logger logger = Logger.getLogger(SearchResultFactoryTest.class); - - @Autowired - FullCommentViewFactory factory; - - @Autowired - IChemicalService chemicalService; - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testElementMatch() { - String geneName = "GDNF"; - Chemical view = chemicalService.getByName("Amphetamine", new DbSearchCriteria().disease(new MiriamData(MiriamType.MESH_2012, "D010300"))); - Target target = null; - for (Target t : view.getInferenceNetwork()) { - for (MiriamData row : t.getGenes()) { - if (row.getResource().equals(geneName)) { - target = t; - } - } - } - - Element element = new Rna("id"); - element.setName(geneName); - - assertTrue(factory.elementMatch(target, element)); - - } - -} +package lcsb.mapviewer.services.search; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import lcsb.mapviewer.annotation.data.Chemical; +import lcsb.mapviewer.annotation.data.Target; +import lcsb.mapviewer.annotation.data.TargetType; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.MiriamType; +import lcsb.mapviewer.model.map.species.Element; +import lcsb.mapviewer.model.map.species.GenericProtein; +import lcsb.mapviewer.model.map.species.Rna; +import lcsb.mapviewer.services.ServiceTestFunctions; +import lcsb.mapviewer.services.search.db.DbSearchCriteria; + +public class ElementMatcherTest extends ServiceTestFunctions { + + @Autowired + ElementMatcher elementMatcher; + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testMatchOther() { + Target target = new Target(); + + target.setType(TargetType.OTHER); + assertFalse(elementMatcher.elementMatch(target, new GenericProtein("s1"))); + } + + @Test + public void testElementMatch() { + String geneName = "GDNF"; + Chemical view = chemicalService.getByName("Amphetamine", new DbSearchCriteria().disease(new MiriamData(MiriamType.MESH_2012, "D010300"))); + Target target = null; + for (Target t : view.getInferenceNetwork()) { + for (MiriamData row : t.getGenes()) { + if (row.getResource().equals(geneName)) { + target = t; + } + } + } + + Element element = new Rna("id"); + element.setName(geneName); + + assertTrue(elementMatcher.elementMatch(target, element)); + + } + +}