JAL-4245 Test getRootDataset method
[jalview.git] / test / jalview / datamodel / SequenceTest.java
index 6e18324..529c80b 100644 (file)
@@ -30,14 +30,6 @@ import static org.testng.AssertJUnit.assertNull;
 import static org.testng.AssertJUnit.assertSame;
 import static org.testng.AssertJUnit.assertTrue;
 
-import jalview.analysis.AlignmentGenerator;
-import jalview.commands.EditCommand;
-import jalview.commands.EditCommand.Action;
-import jalview.datamodel.PDBEntry.Type;
-import jalview.gui.JvOptionPane;
-import jalview.util.MapList;
-import jalview.ws.params.InvalidArgumentException;
-
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -51,6 +43,13 @@ import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import jalview.analysis.AlignmentGenerator;
+import jalview.commands.EditCommand;
+import jalview.commands.EditCommand.Action;
+import jalview.datamodel.PDBEntry.Type;
+import jalview.gui.JvOptionPane;
+import jalview.util.MapList;
+
 import junit.extensions.PA;
 
 public class SequenceTest
@@ -351,8 +350,6 @@ public class SequenceTest
      * invalid inputs
      */
     assertNull(sq.findPositions(6, 5));
-    assertNull(sq.findPositions(0, 5));
-    assertNull(sq.findPositions(-1, 5));
 
     /*
      * all gapped ranges
@@ -395,6 +392,16 @@ public class SequenceTest
     assertEquals(new Range(11, 12), sq.findPositions(5, 10)); // DE
     assertEquals(new Range(8, 13), sq.findPositions(1, 13)); // the lot
     assertEquals(new Range(8, 13), sq.findPositions(1, 99));
+
+    /**
+     * now try on a sequence with no gaps
+     */
+    sq.createDatasetSequence();
+    assertEquals(new Range(8, 13),
+            sq.getDatasetSequence().findPositions(1, 99));
+    assertEquals(new Range(8, 13),
+            sq.getDatasetSequence().findPositions(0, 99));
+
   }
 
   /**
@@ -1593,6 +1600,43 @@ public class SequenceTest
     assertTrue(found.contains(sfI));
   }
 
+  @Test(groups = { "Functional"} )
+  public void testGetRootDatasetSequence_datasetIsNull_returnNull()
+  {
+    Sequence dseq = new Sequence("test", "ABCDEF");
+    assertNull(dseq.getRootDatasetSequence());
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetRootDatasetSequence_datasetImplicit_returnDataset()
+  {
+    Sequence seq = new Sequence("test", "--AB-CDEF");
+    SequenceI dseq = seq.createDatasetSequence();
+    assertEquals(seq.getRootDatasetSequence(), dseq);
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetRootDatasetSequence_datasetExplicit_returnDataset()
+  {
+    Sequence seq = new Sequence("test", "--AB-CDEF");
+    Sequence dseq = new Sequence("test", "ABCDEF");
+    seq.setDatasetSequence(dseq);
+    assertEquals(seq.getRootDatasetSequence(), dseq);
+  }
+
+  @Test(groups = { "Functional" })
+  public void testGetRootDatasetSequence_nestedDatasets_returnLastDataset()
+  {
+    Sequence seq = new Sequence("test", "--AB-CDEFE");
+    Sequence dseq = new Sequence("test", "ABCDEF");
+    seq.setDatasetSequence(dseq);
+    Sequence ddseq = new Sequence("test", "ABCDEF");
+    dseq.setDatasetSequence(ddseq);
+    assertEquals(seq.getDatasetSequence(), dseq);
+    assertEquals(seq.getRootDatasetSequence(), ddseq);
+  }
+
+
   @Test(groups = { "Functional" })
   public void testFindIndex_withCursor()
   {