Add change manager unmarking
All checks were successful
zdm/undo-redo/pipeline/head This commit looks good
All checks were successful
zdm/undo-redo/pipeline/head This commit looks good
This commit is contained in:
@ -55,11 +55,18 @@ public interface ChangeManager<C extends Change> {
|
||||
*/
|
||||
void mark();
|
||||
|
||||
/**
|
||||
* Resets the marked index so that no change is marked.
|
||||
*
|
||||
* @since 0.0.1
|
||||
*/
|
||||
void unmark();
|
||||
|
||||
/**
|
||||
* @return whether the current change is marked
|
||||
* @since 0.0.1
|
||||
*/
|
||||
boolean isAtMarkedIndex();
|
||||
boolean isAtMarkedChange();
|
||||
|
||||
/**
|
||||
* @return whether a change is present that can be undone
|
||||
|
@ -53,7 +53,12 @@ public final class UnlimitedChangeManager<C extends Change> implements ChangeMan
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAtMarkedIndex() {
|
||||
public void unmark() {
|
||||
markedIndex = -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAtMarkedChange() {
|
||||
return markedIndex == index;
|
||||
}
|
||||
|
||||
|
@ -108,12 +108,28 @@ class ChangeManagerTest {
|
||||
@Test
|
||||
@Order(60)
|
||||
void testMark() {
|
||||
assertTrue(manager.isAtMarkedIndex());
|
||||
assertTrue(manager.isAtMarkedChange());
|
||||
manager.addChange(change);
|
||||
assertFalse(manager.isAtMarkedIndex());
|
||||
assertFalse(manager.isAtMarkedChange());
|
||||
manager.mark();
|
||||
assertTrue(manager.isAtMarkedIndex());
|
||||
assertTrue(manager.isAtMarkedChange());
|
||||
manager.undo();
|
||||
assertFalse(manager.isAtMarkedIndex());
|
||||
assertFalse(manager.isAtMarkedChange());
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests unmarking a change.
|
||||
*
|
||||
* @since 0.0.1
|
||||
*/
|
||||
@Test
|
||||
@Order(70)
|
||||
void testUnmark() {
|
||||
manager.addChange(change);
|
||||
manager.mark();
|
||||
manager.unmark();
|
||||
assertFalse(manager.isAtMarkedChange());
|
||||
manager.undo();
|
||||
assertTrue(manager.isAtMarkedChange());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user