JAL-2189 format tests
[jalview.git] / test / jalview / ext / ensembl / EnsemblCdsTest.java
index fb17845..02ce2b2 100644 (file)
@@ -13,19 +13,20 @@ import jalview.util.MapList;
 
 import java.util.List;
 
+import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 public class EnsemblCdsTest
 {
-  @BeforeClass
+  @BeforeClass(alwaysRun = true)
   public void setUp()
   {
     SequenceOntologyFactory.setInstance(new SequenceOntologyLite());
   }
 
-  @AfterClass
+  @AfterClass(alwaysRun = true)
   public void tearDown()
   {
     SequenceOntologyFactory.setInstance(null);
@@ -43,25 +44,25 @@ public class EnsemblCdsTest
     genomic.setStart(10000);
     genomic.setEnd(50000);
     String transcriptId = "ABC123";
-  
+
     // CDS at (start+10000) length 501
     SequenceFeature sf = new SequenceFeature("CDS", "", 20000, 20500, 0f,
             null);
     sf.setValue("Parent", "transcript:" + transcriptId);
     sf.setStrand("+");
     genomic.addSequenceFeature(sf);
-  
+
     // CDS (sub-type) at (start + 10500) length 101
     sf = new SequenceFeature("CDS_predicted", "", 10500, 10600, 0f, null);
     sf.setValue("Parent", "transcript:" + transcriptId);
     sf.setStrand("+");
     genomic.addSequenceFeature(sf);
-  
+
     // CDS belonging to a different transcript doesn't count
     sf = new SequenceFeature("CDS", "", 11500, 12600, 0f, null);
     sf.setValue("Parent", "transcript:anotherOne");
     genomic.addSequenceFeature(sf);
-  
+
     // exon feature doesn't count
     sf = new SequenceFeature("exon", "", 10000, 50000, 0f, null);
     genomic.addSequenceFeature(sf);
@@ -69,7 +70,7 @@ public class EnsemblCdsTest
     // mRNA_region feature doesn't count (parent of CDS)
     sf = new SequenceFeature("mRNA_region", "", 10000, 50000, 0f, null);
     genomic.addSequenceFeature(sf);
-  
+
     MapList ranges = testee.getGenomicRangesFromFeatures(genomic,
             transcriptId, 23);
     List<int[]> fromRanges = ranges.getFromRanges();
@@ -95,22 +96,22 @@ public class EnsemblCdsTest
   {
     String accId = "ABC123";
     EnsemblCds testee = new EnsemblCds();
-  
-    SequenceFeature sf = new SequenceFeature("CDS", "", 20000,
-            20500, 0f, null);
+
+    SequenceFeature sf = new SequenceFeature("CDS", "", 20000, 20500, 0f,
+            null);
     assertFalse(testee.retainFeature(sf, accId));
-  
+
     sf.setType("CDS_predicted");
     assertFalse(testee.retainFeature(sf, accId));
-  
+
     // other feature with no parent is retained
     sf.setType("sequence_variant");
     assertTrue(testee.retainFeature(sf, accId));
-  
+
     // other feature with desired parent is retained
     sf.setValue("Parent", "transcript:" + accId);
     assertTrue(testee.retainFeature(sf, accId));
-  
+
     // feature with wrong parent is not retained
     sf.setValue("Parent", "transcript:XYZ");
     assertFalse(testee.retainFeature(sf, accId));
@@ -125,30 +126,43 @@ public class EnsemblCdsTest
   {
     String accId = "ABC123";
     EnsemblCds testee = new EnsemblCds();
-  
+
     // cds with no parent not valid
     SequenceFeature sf = new SequenceFeature("CDS", "", 1, 2, 0f, null);
     assertFalse(testee.identifiesSequence(sf, accId));
-  
+
     // cds with wrong parent not valid
     sf.setValue("Parent", "transcript:XYZ");
     assertFalse(testee.identifiesSequence(sf, accId));
-  
+
     // cds with right parent is valid
     sf.setValue("Parent", "transcript:" + accId);
     assertTrue(testee.identifiesSequence(sf, accId));
-  
+
     // cds sub-type with right parent is valid
     sf.setType("CDS_predicted");
     assertTrue(testee.identifiesSequence(sf, accId));
-  
+
     // transcript not valid:
     sf.setType("transcript");
     assertFalse(testee.identifiesSequence(sf, accId));
-  
+
     // exon not valid:
     sf.setType("exon");
     assertFalse(testee.identifiesSequence(sf, accId));
   }
 
+  @Test(groups = "Functional")
+  public void testIsValidReference() throws Exception
+  {
+    EnsemblSequenceFetcher esq = new EnsemblCds();
+    Assert.assertTrue(esq.isValidReference("CCDS5863.1"));
+    Assert.assertTrue(esq.isValidReference("ENST00000288602"));
+    Assert.assertTrue(esq.isValidReference("ENSG00000288602"));
+    Assert.assertTrue(esq.isValidReference("ENSP00000288602"));
+    Assert.assertFalse(esq.isValidReference("ENST0000288602"));
+    // non-human species have a 3 character identifier included:
+    Assert.assertTrue(esq.isValidReference("ENSMUSG00000099398"));
+  }
+
 }