JAL-3438 spotless for 2.11.2.0
[jalview.git] / test / jalview / io / gff / Gff3HelperTest.java
index 4355e40..5660666 100644 (file)
@@ -33,16 +33,27 @@ import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceDummy;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 public class Gff3HelperTest
 {
 
+  @BeforeClass(alwaysRun = true)
+  public void setUpJvOptionPane()
+  {
+    JvOptionPane.setInteractiveMode(false);
+    JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+  }
+
   /**
    * Test processing one PASA GFF line giving a match from forward strand to
    * forward strand
@@ -83,11 +94,11 @@ public class Gff3HelperTest
     assertSame(newseqs.get(0), mapping.getAaSeqs()[0]);
     assertEquals(1, mapping.getdnaToProt().length);
     assertEquals(1, mapping.getdnaToProt()[0].getFromRanges().size());
-    assertArrayEquals(new int[] { 12923, 13060 }, mapping.getdnaToProt()[0]
-            .getFromRanges().get(0));
+    assertArrayEquals(new int[] { 12923, 13060 },
+            mapping.getdnaToProt()[0].getFromRanges().get(0));
     assertEquals(1, mapping.getdnaToProt()[0].getToRanges().size());
-    assertArrayEquals(new int[] { 1, 138 }, mapping.getdnaToProt()[0]
-            .getToRanges().get(0));
+    assertArrayEquals(new int[] { 1, 138 },
+            mapping.getdnaToProt()[0].getToRanges().get(0));
   }
 
   /**
@@ -130,11 +141,11 @@ public class Gff3HelperTest
     assertSame(newseqs.get(0), mapping.getAaSeqs()[0]);
     assertEquals(1, mapping.getdnaToProt().length);
     assertEquals(1, mapping.getdnaToProt()[0].getFromRanges().size());
-    assertArrayEquals(new int[] { 12923, 13060 }, mapping.getdnaToProt()[0]
-            .getFromRanges().get(0));
+    assertArrayEquals(new int[] { 12923, 13060 },
+            mapping.getdnaToProt()[0].getFromRanges().get(0));
     assertEquals(1, mapping.getdnaToProt()[0].getToRanges().size());
-    assertArrayEquals(new int[] { 138, 1 }, mapping.getdnaToProt()[0]
-            .getToRanges().get(0));
+    assertArrayEquals(new int[] { 138, 1 },
+            mapping.getdnaToProt()[0].getToRanges().get(0));
   }
 
   /**
@@ -212,14 +223,59 @@ public class Gff3HelperTest
     assertEquals(1, mapping.getdnaToProt().length);
     assertEquals(2, mapping.getdnaToProt()[0].getFromRanges().size());
     // the two spliced dna ranges are combined in one MapList
-    assertArrayEquals(new int[] { 12923, 13060 }, mapping.getdnaToProt()[0]
-            .getFromRanges().get(0));
-    assertArrayEquals(new int[] { 13411, 13550 }, mapping.getdnaToProt()[0]
-            .getFromRanges().get(1));
+    assertArrayEquals(new int[] { 12923, 13060 },
+            mapping.getdnaToProt()[0].getFromRanges().get(0));
+    assertArrayEquals(new int[] { 13411, 13550 },
+            mapping.getdnaToProt()[0].getFromRanges().get(1));
     assertEquals(1, mapping.getdnaToProt()[0].getToRanges().size());
     // the two cdna ranges are merged into one contiguous region
-    assertArrayEquals(new int[] { 1, 278 }, mapping.getdnaToProt()[0]
-            .getToRanges().get(0));
+    assertArrayEquals(new int[] { 1, 278 },
+            mapping.getdnaToProt()[0].getToRanges().get(0));
   }
 
+  @Test(groups = "Functional")
+  public void testGetDescription()
+  {
+    Gff3Helper testee = new Gff3Helper();
+    SequenceFeature sf = new SequenceFeature("type", "desc", 10, 20, 3f,
+            "group");
+    Map<String, List<String>> attributes = new HashMap<String, List<String>>();
+    assertNull(testee.getDescription(sf, attributes));
+
+    // ID if any is a fall-back for description
+    sf.setValue("ID", "Patrick");
+    assertEquals("Patrick", testee.getDescription(sf, attributes));
+
+    // Target is set by Exonerate
+    sf.setValue("Target", "Destination Moon");
+    assertEquals("Destination", testee.getDescription(sf, attributes));
+
+    // Ensembl variant feature - extract "alleles" value
+    // may be sequence_variant or a sub-type in the sequence ontology
+    sf = new SequenceFeature("feature_variant", "desc", 10, 20, 3f,
+            "group");
+    List<String> atts = new ArrayList<String>();
+    atts.add("A");
+    atts.add("C");
+    atts.add("T");
+    attributes.put("alleles", atts);
+    assertEquals("A,C,T", testee.getDescription(sf, attributes));
+
+    // Ensembl transcript or exon feature - extract Name
+    List<String> atts2 = new ArrayList<String>();
+    atts2.add("ENSE00001871077");
+    attributes.put("Name", atts2);
+    sf = new SequenceFeature("transcript", "desc", 10, 20, 3f, "group");
+    assertEquals("ENSE00001871077", testee.getDescription(sf, attributes));
+    // transcript sub-type in SO
+    sf = new SequenceFeature("mRNA", "desc", 10, 20, 3f, "group");
+    assertEquals("ENSE00001871077", testee.getDescription(sf, attributes));
+    // special usage of feature by Ensembl
+    sf = new SequenceFeature("NMD_transcript_variant", "desc", 10, 20, 3f,
+            "group");
+    assertEquals("ENSE00001871077", testee.getDescription(sf, attributes));
+    // exon feature
+    sf = new SequenceFeature("exon", "desc", 10, 20, 3f, "group");
+    assertEquals("ENSE00001871077", testee.getDescription(sf, attributes));
+  }
 }