}
/**
- * 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());
{
// 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());
+ assertEquals("fghjZxYopq",
+ seqs[1].getDatasetSequence().getSequenceAsString());
assertEquals("qrstuvwxyz", seqs[2].getSequenceAsString());
assertEquals("1234567890", seqs[3].getSequenceAsString());
}
* 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());
+ 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());
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("ABxyZ-DEF", seq.getSequenceAsString());
assertEquals(1, seq.getStart());
assertEquals(8, seq.getEnd());
- assertEquals("ABXYZDEF",
+ assertEquals("ABxyZDEF",
seq.getDatasetSequence().getSequenceAsString());
assertEquals(8, seq.getDatasetSequence().getEnd());
* and validate the resulting remaining sequence features!
*/
SequenceI[] sqs = new SequenceI[] { seq0 };
- boolean checkDsSize = true;
for (int from = 0; from < seq0.getLength(); from++)
{
copySequenceFeatures,
copySeq0.getSequenceFeatures().toString());
- if (checkDsSize)
- {
- /*
- * verify a new dataset sequence has appeared
- */
- assertEquals("Wrong Dataset size after cut",
- 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
*/
/*
* 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 cut", 1,
- alignment.getDataset().getHeight());
- }
+ assertEquals("Wrong Dataset size after Undo of " + msg, 1,
+ alignment.getDataset().getHeight());
/*
* redo and verify
/*
* 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 cut",
- 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
/*
* 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 cut", 1,
- alignment.getDataset().getHeight());
- }
+ assertEquals("Wrong Dataset size after final Undo of " + msg, 1,
+ alignment.getDataset().getHeight());
}
}
}