Add LoadBalancer and Limit testers from JWS2 branch
[jabaws.git] / testsrc / compbio / runner / msa / LimitTester.java
index 75b319a..8a9e56a 100644 (file)
@@ -27,6 +27,7 @@ import static org.testng.Assert.fail;
 import java.io.File;\r
 import java.io.FileInputStream;\r
 import java.io.FileNotFoundException;\r
+import java.io.IOException;\r
 import java.util.List;\r
 \r
 import javax.xml.bind.JAXBException;\r
@@ -34,13 +35,13 @@ import javax.xml.bind.JAXBException;
 import org.testng.annotations.BeforeMethod;\r
 import org.testng.annotations.Test;\r
 \r
-import compbio.engine.client.ConfExecutable;\r
+import compbio.data.sequence.FastaSequence;\r
+import compbio.data.sequence.SequenceUtil;\r
 import compbio.engine.conf.RunnerConfigMarshaller;\r
 import compbio.metadata.AllTestSuit;\r
 import compbio.metadata.Limit;\r
 import compbio.metadata.LimitsManager;\r
 import compbio.metadata.PresetManager;\r
-import compbio.runner.msa.ClustalW;\r
 \r
 public class LimitTester {\r
 \r
@@ -48,7 +49,7 @@ public class LimitTester {
                        + "ClustalLimits.xml";\r
        static String test_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE\r
                        + "TO1381.fasta"; //\r
-       static final String input =  AllTestSuit.TEST_DATA_PATH\r
+       static final String input = AllTestSuit.TEST_DATA_PATH\r
                        + "ClustalPresets.xml";\r
 \r
        LimitsManager<ClustalW> clustalLimitConfig = null;\r
@@ -103,4 +104,43 @@ public class LimitTester {
                assertEquals(limit.getAvgSeqLength(), 400);\r
                assertTrue(limit.isDefault());\r
        }\r
+\r
+       @Test\r
+       public void testLimitExceeded() {\r
+\r
+               String test_input = AllTestSuit.TEST_DATA_PATH_ABSOLUTE\r
+                               + "testlimit.fasta";\r
+\r
+               FileInputStream fio;\r
+               try {\r
+                       fio = new FileInputStream(test_input);\r
+                       List<FastaSequence> data = SequenceUtil.readFasta(fio);\r
+                       fio.close();\r
+                       assertNotNull(data);\r
+                       assertEquals(data.size(), 6);\r
+                       assertEquals(Limit.getAvgSequenceLength(data), 20486);\r
+                       Limit small = new Limit(40, 500, "default");\r
+\r
+                       assertTrue(small.isExceeded(data));\r
+\r
+                       Limit large = new Limit(500, 500, "default");\r
+                       assertFalse(large.isExceeded(data));\r
+\r
+                       Limit numSeqOnly = new Limit(6, 0, "default");\r
+                       assertFalse(numSeqOnly.isExceeded(data));\r
+\r
+                       Limit exnumSeqOnly = new Limit(5, 0, "default");\r
+                       assertTrue(exnumSeqOnly.isExceeded(data));\r
+\r
+                       Limit numSeq3 = new Limit(5, 1000000, "default");\r
+                       assertTrue(numSeq3.isExceeded(data));\r
+\r
+               } catch (FileNotFoundException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (IOException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               }\r
+       }\r
 }\r