/* * Copyright (C) Lennart Martens * * Contact: lennart.martens AT UGent.be (' AT ' to be replaced with '@') */ package com.compomics.util.test.general.servlet; import com.compomics.util.junit.TestCaseLM; import junit.framework.Assert; import junit.framework.TestCase; import org.apache.log4j.Logger; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.util.Properties; /* * CVS information: * * $Revision: 1.3 $ * $Date: 2007/07/06 09:41:54 $ */ /** * This class test the MassCalcServlet. * * @see com.compomics.util.general.servlet.MassCalcServlet * @author Lennart Martens */ public class TstMassCalcServlet extends TestCase { // Class specific log4j logger for TstMassCalcServlet instances. Logger logger = Logger.getLogger(TstMassCalcServlet.class); public TstMassCalcServlet() { super("This class test the MassCalcServlet."); } public TstMassCalcServlet(String aName) { super(aName); } /** * This method does not perform an exhaustive test as of yet. * Maybe some day it will. */ public void testMassCalcServlet() { try { Properties p = TestCaseLM.getPropertiesFile("testMCServlet.properties"); int doTest = Integer.parseInt(p.getProperty("doTest")); if (doTest == 0) { // Don't do the test, IE no internet connection present. return; } else { String rootURL = p.getProperty("url"); String realURL = rootURL + "?SEQUENCE=CH3CH2COOH&MASSLISTCHOICE=MONOBIOCHEM"; URL url = new URL(realURL); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); String line = null; boolean test1 = false; while ((line = br.readLine()) != null) { if (line.indexOf("74.03678") >= 0) { test1 = true; } } br.close(); boolean test2 = false; realURL = rootURL + "?SEQUENCE=YSFVATAER&MASSLISTCHOICE=MONOAA"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); while ((line = br.readLine()) != null) { if (line.indexOf("1042.508345") >= 0) { test2 = true; } } br.close(); boolean test3 = false; realURL = rootURL + "?SEQUENCE=RWX&MASSLISTCHOICE=SELFLIST&SELFDEFINEDLIST=R:4_W:2_X:1"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); while ((line = br.readLine()) != null) { if (line.indexOf("7.0") >= 0) { test3 = true; } } br.close(); if (test1 && test2 && test3) { // Both succeeded. return; } // At least one failed. fail("The servlet failed to answer correctly.\nResult BIOCHEM: " + test1 + ".\nResult AA: " + test2 + ".\nResult self: " + test3 + ".\n"); } } catch (IOException ioe) { logger.error(ioe.getMessage(), ioe); fail("IO went wrong in testMasCalcServlet!"); } } /** * This method test the additive use of the self-defined list. */ public void testAddSelfList() { try { Properties p = TestCaseLM.getPropertiesFile("testMCServlet.properties"); int doTest = Integer.parseInt(p.getProperty("doTest")); if (doTest == 0) { // Don't do the test, IE no internet connection present. return; } else { String rootURL = p.getProperty("url"); // First test the absence of a list. // It should behave as normal. boolean test = false; String realURL = rootURL + "?SEQUENCE=YSFVATAER&MASSLISTCHOICE=ADDSELFLISTAA&SELFDEFINEDLIST="; URL url = new URL(realURL); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); String line = null; while ((line = br.readLine()) != null) { if (line.indexOf("1042.508345") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); // Next up: a defined list present. // this time: plain overriding. test = false; realURL = rootURL + "?SEQUENCE=YSFVATAER&MASSLISTCHOICE=ADDSELFLISTAA&SELFDEFINEDLIST=A:72.03711_Y:164.06333"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); line = null; while ((line = br.readLine()) != null) { if (line.indexOf("1045.508345") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); // Next up: a defined list present. // this time: plain adding. test = false; realURL = rootURL + "?SEQUENCE=YSFVAoTAERYo&MASSLISTCHOICE=ADDSELFLISTAA&SELFDEFINEDLIST=Ao:72.03711_Yo:164.06333"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); line = null; while ((line = br.readLine()) != null) { if (line.indexOf("1207.571675") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); // Next up: a defined list present. // this time: adding and substituting. test = false; realURL = rootURL + "?SEQUENCE=YSFVAoTAERYo&MASSLISTCHOICE=ADDSELFLISTAA&SELFDEFINEDLIST=A:72.03711_Ao:72.03711_Y:164.06333_Yo:164.06333"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); line = null; while ((line = br.readLine()) != null) { if (line.indexOf("1209.571675") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); // Next up: a defined list present. // this time: testing for M<Ox>. test = false; realURL = rootURL + "?SEQUENCE=YSFVM<Ox>TAER&MASSLISTCHOICE=ADDSELFLISTAA&SELFDEFINEDLIST=M<Ox>:72.03711"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); line = null; while ((line = br.readLine()) != null) { if (line.indexOf("1043.508345") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); // Start wrapping up. // Standard calculation should still be correct. test = false; realURL = rootURL + "?SEQUENCE=YSFVATAER&MASSLISTCHOICE=MONOAA"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); line = null; while ((line = br.readLine()) != null) { if (line.indexOf("1042.508345") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); // Final one. // Error should be reported when Ao is present in String. test = false; realURL = rootURL + "?SEQUENCE=YSFVAoTAER&MASSLISTCHOICE=MONOAA"; url = new URL(realURL); br = new BufferedReader(new InputStreamReader(url.openStream())); line = null; while ((line = br.readLine()) != null) { if (line.indexOf("Unknown element 'Ao' encountered") >= 0) { test = true; } } br.close(); Assert.assertTrue(test); } } catch (IOException ioe) { logger.error(ioe.getMessage(), ioe); fail("IO went wrong in testMasCalcServlet!"); } } }