diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java index 1bf449dae07d3e7be61c37f5bb2c4e0db63cd6eb..16dde0eeff6167b8fb743cfa232c5435fa9b0193 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java @@ -205,6 +205,13 @@ public class PubmedParser extends CachableInterface implements IExternalService return result; } + public Article getPubmedArticleById(String id) throws PubmedSearchException { + if (id==null) { + return null; + } + return getPubmedArticleById(Integer.valueOf(id.trim())); + } + /** * This method return html \< a\ > tag with link for pubmed id (with some * additional information). diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java index 7cf58274ce4a187510003729c4fa5d3fa1993c5e..55407803d022e099c3c5940da78016f9490bcc80 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java @@ -58,7 +58,7 @@ public abstract class BaseRestImpl { /** * Default class logger. */ - private Logger logger = Logger.getLogger(BaseRestImpl.class); + private static Logger logger = Logger.getLogger(BaseRestImpl.class); @Autowired private IModelService modelService; @@ -118,7 +118,7 @@ public abstract class BaseRestImpl { } if (MiriamType.PUBMED.equals(annotation.getDataType())) { try { - Article article = pubmedParser.getPubmedArticleById(Integer.valueOf(annotation.getResource())); + Article article = pubmedParser.getPubmedArticleById(annotation.getResource()); result.put("article", article); } catch (PubmedSearchException e) { logger.error("Problem with accessing info about pubmed", e); @@ -387,4 +387,20 @@ public abstract class BaseRestImpl { this.configurationService = configurationService; } + public MiriamConnector getMiriamConnector() { + return miriamConnector; + } + + public void setMiriamConnector(MiriamConnector miriamConnector) { + this.miriamConnector = miriamConnector; + } + + public PubmedParser getPubmedParser() { + return pubmedParser; + } + + public void setPubmedParser(PubmedParser pubmedParser) { + this.pubmedParser = pubmedParser; + } + } diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java index f5802d61013b00f5bf4bc444d41c6483c662e79d..5fde7baa71928f1c3e0a2ac7732e3f1ff059d7e1 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java @@ -6,12 +6,26 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.CALLS_REAL_METHODS; +import java.util.Map; + import org.apache.log4j.Logger; import org.junit.Test; import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; + +import lcsb.mapviewer.annotation.services.MiriamConnector; +import lcsb.mapviewer.annotation.services.PubmedParser; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.MiriamType; public class BaseRestImplTest extends RestTestFunctions { Logger logger = Logger.getLogger(BaseRestImplTest.class); + + @Autowired + MiriamConnector mc; + + @Autowired + PubmedParser pubmedParser; @Test public void testMathMLToPresentationML() throws Exception { @@ -39,6 +53,15 @@ public class BaseRestImplTest extends RestTestFunctions { assertFalse(presentationXml.startsWith("<?xml")); } + @Test + public void testCreateAnnotationWithWhitespace() throws Exception { + BaseRestImpl controller = Mockito.mock(BaseRestImpl.class, CALLS_REAL_METHODS); + controller.setMiriamConnector(mc); + controller.setPubmedParser(pubmedParser); + Map<String, Object> response = controller.createAnnotation(new MiriamData(MiriamType.PUBMED,"28255955 ")); + assertNotNull(response); + } + }