Merge branch 'documentation/JAL-3111_release_211' into develop
[jalview.git] / test / jalview / commands / EditCommandTest.java
index 9c91705..348d871 100644 (file)
@@ -90,11 +90,11 @@ public class EditCommandTest
     testee = new EditCommand();
     seqs = new SequenceI[4];
     seqs[0] = new Sequence("seq0", "abcdefghjk");
-    seqs[0].setDatasetSequence(new Sequence("seq0ds", "abcdefghjk"));
+    seqs[0].setDatasetSequence(new Sequence("seq0ds", "ABCDEFGHJK"));
     seqs[1] = new Sequence("seq1", "fghjklmnopq");
-    seqs[1].setDatasetSequence(new Sequence("seq1ds", "fghjklmnopq"));
+    seqs[1].setDatasetSequence(new Sequence("seq1ds", "FGHJKLMNOPQ"));
     seqs[2] = new Sequence("seq2", "qrstuvwxyz");
-    seqs[2].setDatasetSequence(new Sequence("seq2ds", "qrstuvwxyz"));
+    seqs[2].setDatasetSequence(new Sequence("seq2ds", "QRSTUVWXYZ"));
     seqs[3] = new Sequence("seq3", "1234567890");
     seqs[3].setDatasetSequence(new Sequence("seq3ds", "1234567890"));
     al = new Alignment(seqs);
@@ -279,9 +279,15 @@ public class EditCommandTest
   {
     // seem to need a dataset sequence on the edited sequence here
     seqs[1].createDatasetSequence();
-    new EditCommand("", Action.REPLACE, "ZXY", new SequenceI[] { seqs[1] },
+    assertEquals("fghjklmnopq", seqs[1].getSequenceAsString());
+    // NB command.number holds end position for a Replace command
+    new EditCommand("", Action.REPLACE, "Z-xY", new SequenceI[] { seqs[1] },
             4, 8, al);
     assertEquals("abcdefghjk", seqs[0].getSequenceAsString());
+    assertEquals("fghjZ-xYopq", seqs[1].getSequenceAsString());
+    // Dataset Sequence should always be uppercase
+    assertEquals("fghjZxYopq".toUpperCase(),
+            seqs[1].getDatasetSequence().getSequenceAsString());
     assertEquals("qrstuvwxyz", seqs[2].getSequenceAsString());
     assertEquals("1234567890", seqs[3].getSequenceAsString());
   }
@@ -303,14 +309,16 @@ public class EditCommandTest
      * NB arg4 = start column of selection for edit (base 0)
      * arg5 = column after end of selection for edit
      */
-    EditCommand edit = new EditCommand("", Action.REPLACE, "XYZ",
+    EditCommand edit = new EditCommand("", Action.REPLACE, "xyZ",
             new SequenceI[]
             { seq }, 2,
             4, al);
-    assertEquals("ABXYZ-DEF", seq.getSequenceAsString());
+    assertEquals("ABxyZ-DEF", seq.getSequenceAsString());
     assertEquals(1, seq.getStart());
     assertEquals(8, seq.getEnd());
-    assertEquals("ABXYZDEF", seq.getDatasetSequence().getSequenceAsString());
+    // Dataset sequence always uppercase
+    assertEquals("ABxyZDEF".toUpperCase(),
+            seq.getDatasetSequence().getSequenceAsString());
     assertEquals(8, seq.getDatasetSequence().getEnd());
 
     /*
@@ -331,10 +339,11 @@ public class EditCommandTest
      */
     edit.doCommand(views);
 
-    assertEquals("ABXYZ-DEF", seq.getSequenceAsString());
+    assertEquals("ABxyZ-DEF", seq.getSequenceAsString());
     assertEquals(1, seq.getStart());
     assertEquals(8, seq.getEnd());
-    assertEquals("ABXYZDEF",
+    // dataset sequence should be Uppercase
+    assertEquals("ABxyZDEF".toUpperCase(),
             seq.getDatasetSequence().getSequenceAsString());
     assertEquals(8, seq.getDatasetSequence().getEnd());
 
@@ -357,8 +366,8 @@ public class EditCommandTest
     assertEquals("----klmnopq", seqs[1].getSequenceAsString());
     // and ds is preserved
     assertTrue(dsseq == seqs[1].getDatasetSequence());
-    // and it is unchanged
-    assertEquals("fghjklmnopq", dsseq.getSequenceAsString());
+    // and it is unchanged and UPPERCASE !
+    assertEquals("fghjklmnopq".toUpperCase(), dsseq.getSequenceAsString());
     // and that alignment sequence start has been adjusted
     assertEquals(5, seqs[1].getStart());
     assertEquals(11, seqs[1].getEnd());
@@ -384,8 +393,8 @@ public class EditCommandTest
     assertEquals("----klmnopq", seqs[1].getSequenceAsString());
     // and ds is preserved
     assertTrue(dsseq == seqs[1].getDatasetSequence());
-    // and it is unchanged
-    assertEquals("fghjklmnopq", dsseq.getSequenceAsString());
+    // and it is unchanged AND UPPERCASE !
+    assertEquals("fghjklmnopq".toUpperCase(), dsseq.getSequenceAsString());
     // and that alignment sequence start has been adjusted
     assertEquals(5, seqs[1].getStart());
     assertEquals(11, seqs[1].getEnd());
@@ -894,7 +903,6 @@ public class EditCommandTest
      * and validate the resulting remaining sequence features!
      */
     SequenceI[] sqs = new SequenceI[] { seq0 };
-    boolean checkDsSize = true;
 
     for (int from = 0; from < seq0.getLength(); from++)
     {
@@ -915,15 +923,13 @@ public class EditCommandTest
                 copySequenceFeatures,
                 copySeq0.getSequenceFeatures().toString());
 
-        if (checkDsSize)
-        {
-          /*
-           * verify a new dataset sequence has appeared
-           */
-          assertEquals("Wrong Dataset size after " + msg,
-                  newDatasetSequence ? 2 : 1, alignment.getDataset()
-                          .getHeight());
-        }
+        /*
+         * verify any new dataset sequence was added to the
+         * alignment dataset
+         */
+        assertEquals("Wrong Dataset size after " + msg,
+                newDatasetSequence ? 2 : 1,
+                alignment.getDataset().getHeight());
 
         /*
          * undo and verify all restored
@@ -936,19 +942,13 @@ public class EditCommandTest
 
         /*
          * verify copy alignment dataset sequence still unaffected
+         * and alignment dataset has shrunk (if it was added to)
          */
         assertEquals("Original dataset sequence was modified",
                 copySequenceFeatures,
                 copySeq0.getSequenceFeatures().toString());
-
-        if (checkDsSize)
-        {
-          /*
-           * verify dataset sequence has shrunk
-           */
-          assertEquals("Wrong Dataset size after Undo of " + msg, 1,
-                  alignment.getDataset().getHeight());
-        }
+        assertEquals("Wrong Dataset size after Undo of " + msg, 1,
+                alignment.getDataset().getHeight());
 
         /*
          * redo and verify
@@ -958,20 +958,14 @@ public class EditCommandTest
 
         /*
          * verify copy alignment dataset sequence unaffected
+         * and any new dataset sequence readded to alignment dataset
          */
         assertEquals("Original dataset sequence was modified",
                 copySequenceFeatures,
                 copySeq0.getSequenceFeatures().toString());
-
-        if (checkDsSize)
-        {
-          /*
-           * verify a new dataset sequence has appeared again
-           */
-          assertEquals("Wrong Dataset size after Redo of " + msg,
-                  newDatasetSequence ? 2 : 1, alignment.getDataset()
-                          .getHeight());
-        }
+        assertEquals("Wrong Dataset size after Redo of " + msg,
+                newDatasetSequence ? 2 : 1,
+                alignment.getDataset().getHeight());
 
         /*
          * undo ready for next cut
@@ -980,18 +974,13 @@ public class EditCommandTest
 
         /*
          * final verify that copy alignment dataset sequence is still unaffected
+         * and that alignment dataset has shrunk
          */
         assertEquals("Original dataset sequence was modified",
                 copySequenceFeatures,
                 copySeq0.getSequenceFeatures().toString());
-        if (checkDsSize)
-        {
-          /*
-           * and that dataset sequence has shrunk
-           */
-          assertEquals("Wrong Dataset size after final Undo of " + msg, 1,
-                  alignment.getDataset().getHeight());
-        }
+        assertEquals("Wrong Dataset size after final Undo of " + msg, 1,
+                alignment.getDataset().getHeight());
       }
     }
   }