Next version of JABA
[jabaws.git] / testsrc / compbio / runner / msa / LimitTester.java
1 /* Copyright (c) 2009 Peter Troshin\r
2  *  \r
3  *  JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0     \r
4  * \r
5  *  This library is free software; you can redistribute it and/or modify it under the terms of the\r
6  *  Apache License version 2 as published by the Apache Software Foundation\r
7  * \r
8  *  This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\r
9  *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache \r
10  *  License for more details.\r
11  * \r
12  *  A copy of the license is in apache_license.txt. It is also available here:\r
13  * @see: http://www.apache.org/licenses/LICENSE-2.0.txt\r
14  * \r
15  * Any republication or derived work distributed in source code form\r
16  * must include this copyright and license notice.\r
17  */\r
18 \r
19 package compbio.runner.msa;\r
20 \r
21 import static org.testng.Assert.assertEquals;\r
22 import static org.testng.Assert.assertFalse;\r
23 import static org.testng.Assert.assertNotNull;\r
24 import static org.testng.Assert.assertTrue;\r
25 import static org.testng.Assert.fail;\r
26 \r
27 import java.io.File;\r
28 import java.io.FileInputStream;\r
29 import java.io.FileNotFoundException;\r
30 import java.util.List;\r
31 \r
32 import javax.xml.bind.JAXBException;\r
33 \r
34 import org.testng.annotations.BeforeMethod;\r
35 import org.testng.annotations.Test;\r
36 \r
37 import compbio.engine.client.ConfExecutable;\r
38 import compbio.engine.conf.RunnerConfigMarshaller;\r
39 import compbio.metadata.AllTestSuit;\r
40 import compbio.metadata.Limit;\r
41 import compbio.metadata.LimitsManager;\r
42 import compbio.metadata.PresetManager;\r
43 import compbio.runner.msa.ClustalW;\r
44 \r
45 public class LimitTester {\r
46 \r
47         static final String clustalLimitsFile = AllTestSuit.TEST_DATA_PATH\r
48                         + "ClustalLimits.xml";\r
49         static String test_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE\r
50                         + "TO1381.fasta"; //\r
51         static final String input =  AllTestSuit.TEST_DATA_PATH\r
52                         + "ClustalPresets.xml";\r
53 \r
54         LimitsManager<ClustalW> clustalLimitConfig = null;\r
55         PresetManager<ClustalW> presets = null;\r
56 \r
57         @BeforeMethod(groups = { AllTestSuit.test_group_runner })\r
58         public void setup() {\r
59                 try {\r
60                         RunnerConfigMarshaller<ClustalW> clustalmarsh = new RunnerConfigMarshaller<ClustalW>(\r
61                                         LimitsManager.class);\r
62                         clustalLimitConfig = clustalmarsh.read(new FileInputStream(\r
63                                         new File(clustalLimitsFile)), LimitsManager.class);\r
64                         assertNotNull(clustalLimitConfig.getLimits());\r
65                         assertEquals(clustalLimitConfig.getLimits().size(), 3);\r
66                         // Load presets\r
67                         RunnerConfigMarshaller<ClustalW> rconfigPresets = new RunnerConfigMarshaller<ClustalW>(\r
68                                         PresetManager.class);\r
69                         File infile = new File(input);\r
70                         assertTrue(infile.exists());\r
71                         presets = rconfigPresets.read(new FileInputStream(infile),\r
72                                         PresetManager.class);\r
73                         assertNotNull(presets);\r
74                         assertFalse(presets.getPresets().isEmpty());\r
75 \r
76                 } catch (JAXBException e) {\r
77                         e.printStackTrace();\r
78                         fail(e.getLocalizedMessage());\r
79                 } catch (FileNotFoundException e) {\r
80                         e.printStackTrace();\r
81                         fail(e.getLocalizedMessage());\r
82                 }\r
83 \r
84         }\r
85 \r
86         @Test\r
87         public void testLoadLimits() {\r
88                 assertNotNull(clustalLimitConfig);\r
89                 List<Limit<ClustalW>> limits = clustalLimitConfig.getLimits();\r
90                 assertEquals(limits.size(), 3);\r
91                 Limit<ClustalW> limit = limits.get(0);\r
92                 assertNotNull(limit);\r
93                 assertEquals(limit.getPreset(),\r
94                                 "Disable gap weighting (Speed-oriented)");\r
95                 assertEquals(limit.getSeqNumber(), 400);\r
96                 assertEquals(limit.getAvgSeqLength(), 600);\r
97                 assertFalse(limit.isDefault());\r
98 \r
99                 limit = limits.get(1);\r
100                 assertNotNull(limit);\r
101                 assertEquals(limit.getPreset(), null);\r
102                 assertEquals(limit.getSeqNumber(), 1000);\r
103                 assertEquals(limit.getAvgSeqLength(), 400);\r
104                 assertTrue(limit.isDefault());\r
105         }\r
106 }\r