JAL-2446 added getFeatureGroups
[jalview.git] / test / jalview / datamodel / features / SequenceFeaturesTest.java
index 1ee21f3..d5da9fa 100644 (file)
@@ -7,6 +7,7 @@ import static org.testng.Assert.assertTrue;
 import jalview.datamodel.SequenceFeature;
 
 import java.util.List;
+import java.util.Set;
 
 import org.testng.annotations.Test;
 
@@ -310,4 +311,49 @@ public class SequenceFeaturesTest
     sf.delete(sf1);
     assertFalse(sf.hasFeatures());
   }
+
+  @Test(groups = "Functional")
+  public void testGetFeatureGroups()
+  {
+    SequenceFeatures sf = new SequenceFeatures();
+    assertTrue(sf.getFeatureGroups().isEmpty());
+
+    SequenceFeature sf1 = new SequenceFeature("Pfam", "Desc", 10, 50, 0f,
+            "PfamGroup");
+    sf.add(sf1);
+    Set<String> groups = sf.getFeatureGroups();
+    assertEquals(groups.size(), 1);
+    assertTrue(groups.contains("PfamGroup"));
+
+    SequenceFeature sf2 = new SequenceFeature("Cath", "Desc", 10, 50, 0f,
+            null);
+    sf.add(sf2);
+    groups = sf.getFeatureGroups();
+    assertEquals(groups.size(), 2);
+    assertTrue(groups.contains("PfamGroup"));
+    assertTrue(groups.contains(null));
+
+    sf.delete(sf1);
+    sf.delete(sf2);
+    assertTrue(sf.getFeatureGroups().isEmpty());
+
+    SequenceFeature sf3 = new SequenceFeature("CDS", "", 10, 50, 0f,
+            "Ensembl");
+    sf.add(sf3);
+    SequenceFeature sf4 = new SequenceFeature("exon", "", 10, 50, 0f,
+            "Ensembl");
+    sf.add(sf4);
+    groups = sf.getFeatureGroups();
+    assertEquals(groups.size(), 1);
+    assertTrue(groups.contains("Ensembl"));
+
+    /*
+     * delete last Ensembl group feature from CDS features
+     * but still have one in exon features
+     */
+    sf.delete(sf3);
+    groups = sf.getFeatureGroups();
+    assertEquals(groups.size(), 1);
+    assertTrue(groups.contains("Ensembl"));
+  }
 }