JAL-3121 slightly cleaner parsing of, and unit test for, map attributes
[jalview.git] / test / jalview / io / FeaturesFileTest.java
index 5154ef2..959c413 100644 (file)
@@ -272,7 +272,8 @@ public class FeaturesFileTest
     // comma (%2C) equals (%3D) or semi-colon (%3B) should be url-escaped in values
     String gffData = "##gff-version 3\n"
             + "FER_CAPAA\tuniprot\tMETAL\t39\t39\t0.0\t.\t.\t"
-            + "Note=Iron-sulfur (2Fe-2S);Note=another note;evidence=ECO%3B0000255%2CPROSITE%3DProRule:PRU00465\n"
+            + "Note=Iron-sulfur (2Fe-2S);Note=another note;evidence=ECO%3B0000255%2CPROSITE%3DProRule:PRU00465;"
+            + "jvmap_CSQ={AF=21,clin_sig=Benign%3Dgood}\n"
             + "FER1_SOLLC\tuniprot\tPfam\t55\t130\t3.0\t.\t.\tID=$23";
     FeaturesFile featuresFile = new FeaturesFile(gffData,
             DataSourceType.PASTE);
@@ -290,13 +291,17 @@ public class FeaturesFileTest
     assertEquals(39, sf.end);
     assertEquals("uniprot", sf.featureGroup);
     assertEquals("METAL", sf.type);
-    assertEquals(4, sf.otherDetails.size());
-    assertEquals("ECO;0000255,PROSITE=ProRule:PRU00465",
-            sf.otherDetails.get("evidence"));
+    assertEquals(5, sf.otherDetails.size());
+    assertEquals("ECO;0000255,PROSITE=ProRule:PRU00465", // url decoded
+            sf.getValue("evidence"));
     assertEquals("Iron-sulfur (2Fe-2S),another note",
-            sf.otherDetails.get("Note"));
+            sf.getValue("Note"));
+    assertEquals("21", sf.getValueAsString("CSQ", "AF"));
+    assertEquals("Benign=good", sf.getValueAsString("CSQ", "clin_sig")); // url decoded
+    // todo change STRAND and !Phase into fields of SequenceFeature instead
     assertEquals(".", sf.otherDetails.get("STRAND"));
-    assertEquals(".", sf.otherDetails.get("!Phase"));
+    assertEquals(0, sf.getStrand());
+    assertEquals(".", sf.getPhase());
 
     // verify feature on FER1_SOLLC1
     sfs = al.getSequenceAt(2).getDatasetSequence().getSequenceFeatures();