// $HeadURL$ // $Id$ // // Copyright 2006 by the President and Fellows of Harvard College. // // Screensaver is an open-source project developed by the ICCB-L and NSRB labs // at Harvard Medical School. This software is distributed under the terms of // the GNU General Public License. package edu.harvard.med.iccbl.screensaver.soaputils; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.apache.log4j.Logger; import edu.mit.broad.chembank.shared.mda.webservices.service.FindBySimilarity1Fault1; import edu.mit.broad.chembank.shared.mda.webservices.service.MoleculeWebServiceStub.ArrayOfMolecule; import edu.mit.broad.chembank.shared.mda.webservices.service.MoleculeWebServiceStub.Molecule; /** * WARNING: this test requires an internet connection. * * @author <a mailto="john_sullivan@hms.harvard.edu">John Sullivan</a> * @author <a mailto="andrew_tolopko@hms.harvard.edu">Andrew Tolopko</a> */ public class ChembankComponentTest extends TestCase { private static Logger log = Logger.getLogger(ChembankComponentTest.class); @Override protected void setUp() throws Exception { super.setUp(); } public void testGetChembankIDsForSmiles1() throws RemoteException { String smiles = "Clc1ccc(\\C=C/c2c(C)n(C)n(c3ccccc3)c2=O)c(Cl)c1"; try { long before = System.currentTimeMillis(); List<String> chembankIDs = PubchemChembankQueryUtility.getChembankIdsForSmiles(smiles); log.info("query time: " + (System.currentTimeMillis()-before) + ", smiles: " + smiles + ": " + chembankIDs); assertEquals(1, chembankIDs.size()); assertTrue(chembankIDs.contains("3081674")); smiles = "O=C1CC(C)(C)CC(=O)C1C(c1ccccc1)C1=C(O)CC(C)(C)CC1=O"; before = System.currentTimeMillis(); chembankIDs = PubchemChembankQueryUtility.getChembankIdsForSmiles(smiles); log.info("query time: " + (System.currentTimeMillis()-before) + ", smiles: " + smiles + ": " + chembankIDs); assertEquals(1, chembankIDs.size()); assertTrue(chembankIDs.contains("1665724")); } catch (FindBySimilarity1Fault1 e) { log.error("Failure: ", e); fail("Fail with fault: " + e); } } // public void testGetPubchemCidsForSmiles2() // { // try { // List<String> pubchemCids = _pubchemSmilesOrInchiSearch.getPubchemCidsForSmilesOrInchi( // "N#Cc1c(CN2CCN(C)CC2)n(C)c2ccccc12"); // assertEquals(1, pubchemCids.size()); // assertEquals("607443", pubchemCids.get(0)); // } // catch (EutilsException e) { // fail("PubchemSmilesOrInchiSearch threw an exception: " + e.getMessage()); // } // } // // public void testGetPubchemCidsForSmiles3() // { // try { // List<String> pubchemCids = _pubchemSmilesOrInchiSearch.getPubchemCidsForSmilesOrInchi( // "NC(=S)c1cnc2ccccn2c1=N"); // assertEquals(1, pubchemCids.size()); // assertEquals("687414", pubchemCids.get(0)); // } // catch (EutilsException e) { // fail("PubchemSmilesOrInchiSearch threw an exception: " + e.getMessage()); // } // } // // public void testGetPubchemCidsForSmiles4() // { // try { // List<String> pubchemCids = _pubchemSmilesOrInchiSearch.getPubchemCidsForSmilesOrInchi( // "CCOC(=O)C(C#N)C(=O)c1ccc(N)cc1"); // assertEquals(3, pubchemCids.size()); // assertTrue(pubchemCids.contains("577795")); // assertTrue(pubchemCids.contains("684423")); // assertTrue(pubchemCids.contains("684424")); // } // catch (EutilsException e) { // fail("PubchemSmilesOrInchiSearch threw an exception: " + e.getMessage()); // } // } // // public void testGetPubchemCidsForInvalidSmiles() // { // class MockedPubchemSmilesSearch extends PubchemSmilesOrInchiSearch // { // private boolean _gotDataOrServerError = false; // public boolean gotDataOrServerError() // { // return _gotDataOrServerError; // } // public void reportError(String errorMessage) // { // if (errorMessage.startsWith("PUG server reported non-success status")) { // _gotDataOrServerError = true; // } // } // } // try { // MockedPubchemSmilesSearch mockedSearch = new MockedPubchemSmilesSearch(); // List<String> pubchemCids = mockedSearch.getPubchemCidsForSmilesOrInchi( // "CCOC(=O)C(C#N)C(=O)c1ccc(N)cc1)"); // the dangling ')' is a actual encountered error // assertNull(pubchemCids); // assertTrue(mockedSearch.gotDataOrServerError()); // } // catch (EutilsException e) { // fail("PubchemSmilesOrInchiSearch threw an exception: " + e.getMessage()); // } // } }