JAL-2541 cutWithFeatures_exhaustive test including dataset maintenance
[jalview.git] / test / jalview / commands / EditCommandTest.java
index c13e729..9c91705 100644 (file)
@@ -153,18 +153,23 @@ public class EditCommandTest
   }
 
   /**
-   * Test a Paste action, where this adds sequences to an alignment.
+   * Test a Paste action, followed by Undo and Redo
    */
-  @Test(groups = { "Functional" }, enabled = true)
-  // TODO fix so it works
-  public void testPaste_addToAlignment()
+  @Test(groups = { "Functional" }, enabled = false)
+  public void testPaste_undo_redo()
   {
+    // TODO code this test properly, bearing in mind that:
+    // Paste action requires something on the clipboard (Cut/Copy)
+    // - EditCommand.paste doesn't add sequences to the alignment
+    // ... that is done in AlignFrame.paste()
+    // ... unless as a Redo
+    // ...
+
     SequenceI[] newSeqs = new SequenceI[2];
     newSeqs[0] = new Sequence("newseq0", "ACEFKL");
     newSeqs[1] = new Sequence("newseq1", "JWMPDH");
 
-    Edit ec = testee.new Edit(Action.PASTE, newSeqs, 0, al.getWidth(), al);
-    EditCommand.paste(ec, new AlignmentI[] { al });
+    new EditCommand("Paste", Action.PASTE, newSeqs, 0, al.getWidth(), al);
     assertEquals(6, al.getSequences().size());
     assertEquals("1234567890", seqs[3].getSequenceAsString());
     assertEquals("ACEFKL", seqs[4].getSequenceAsString());
@@ -308,9 +313,12 @@ public class EditCommandTest
     assertEquals("ABXYZDEF", seq.getDatasetSequence().getSequenceAsString());
     assertEquals(8, seq.getDatasetSequence().getEnd());
 
-    edit.undoCommand(
-            new AlignmentI[]
-            { new Alignment(new SequenceI[] { seq }) });
+    /*
+     * undo the edit
+     */
+    AlignmentI[] views = new AlignmentI[]
+    { new Alignment(new SequenceI[] { seq }) };
+    edit.undoCommand(views);
 
     assertEquals("ABC--DEF", seq.getSequenceAsString());
     assertEquals("ABCDEF", seq.getDatasetSequence().getSequenceAsString());
@@ -318,9 +326,10 @@ public class EditCommandTest
     assertEquals(6, seq.getEnd());
     assertEquals(6, seq.getDatasetSequence().getEnd());
 
-    edit.undoCommand(
-            new AlignmentI[]
-            { new Alignment(new SequenceI[] { seq }) });
+    /*
+     * redo the edit
+     */
+    edit.doCommand(views);
 
     assertEquals("ABXYZ-DEF", seq.getSequenceAsString());
     assertEquals(1, seq.getStart());
@@ -911,10 +920,11 @@ public class EditCommandTest
           /*
            * verify a new dataset sequence has appeared
            */
-          assertEquals("Wrong Dataset size after cut",
+          assertEquals("Wrong Dataset size after " + msg,
                   newDatasetSequence ? 2 : 1, alignment.getDataset()
                           .getHeight());
         }
+
         /*
          * undo and verify all restored
          */
@@ -936,7 +946,7 @@ public class EditCommandTest
           /*
            * verify dataset sequence has shrunk
            */
-          assertEquals("Wrong Dataset size after cut", 1,
+          assertEquals("Wrong Dataset size after Undo of " + msg, 1,
                   alignment.getDataset().getHeight());
         }
 
@@ -958,7 +968,7 @@ public class EditCommandTest
           /*
            * verify a new dataset sequence has appeared again
            */
-          assertEquals("Wrong Dataset size after cut",
+          assertEquals("Wrong Dataset size after Redo of " + msg,
                   newDatasetSequence ? 2 : 1, alignment.getDataset()
                           .getHeight());
         }
@@ -979,7 +989,7 @@ public class EditCommandTest
           /*
            * and that dataset sequence has shrunk
            */
-          assertEquals("Wrong Dataset size after cut", 1,
+          assertEquals("Wrong Dataset size after final Undo of " + msg, 1,
                   alignment.getDataset().getHeight());
         }
       }