// $HeadURL$
// $Id$
//
// Copyright © 2006, 2010, 2011, 2012 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.pipelinepilot;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
/**
* 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);
private ChembankIDForSmilesComponent _chembankComponent = new ChembankIDForSmilesComponent();
@Override
protected void setUp() throws Exception
{
// _chembankComponent.onInitialize(null);
super.setUp();
}
// public void testGetChembankIDsForSmiles1()
// {
// String smiles = "Clc1ccc(\\C=C/c2c(C)n(C)n(c3ccccc3)c2=O)c(Cl)c1";
// try {
// long before = System.currentTimeMillis();
// List<String> chembankIDs = _chembankComponent.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 = _chembankComponent.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());
// }
// }
}