public void CanUndoWithHistoryWithoutRollBack() { var history = new Mock <ITimeline>(); { history.Setup(h => h.CanRollBack) .Returns(false); } var project = new Mock <IProject>(); { project.Setup(p => p.History) .Returns(history.Object); } var projectFacade = new ProjectFacade(project.Object); var projectLink = new Mock <ILinkToProjects>(); { projectLink.Setup(p => p.ActiveProject()) .Returns(projectFacade); } Func <string, IDisposable> timerFunc = s => new MockDisposable(); var command = new UndoCommand(projectLink.Object, timerFunc); Assert.IsFalse(command.CanExecute(null)); }
public void CanUndoWithNullFacade() { Func <string, IDisposable> timerFunc = s => new MockDisposable(); var command = new UndoCommand(null, timerFunc); Assert.IsFalse(command.CanExecute(null)); }
public void CanUndoWithoutActiveProject() { var projectLink = new Mock <ILinkToProjects>(); { projectLink.Setup(p => p.HasActiveProject()) .Returns(false); } Func <string, IDisposable> timerFunc = s => new MockDisposable(); var command = new UndoCommand(projectLink.Object, timerFunc); Assert.IsFalse(command.CanExecute(null)); }
public void Undo() { var currentMark = new TimeMarker(10); var markers = new List <TimeMarker> { currentMark, new TimeMarker(1), }; var history = new Mock <ITimeline>(); { history.Setup(h => h.CanRollBack) .Returns(true); history.Setup(h => h.MarkersInThePast()) .Returns(markers); history.Setup(h => h.Current) .Returns(currentMark); history.Setup(h => h.RollBackTo(It.IsAny <TimeMarker>(), It.IsAny <TimelineTraveller>())) .Verifiable(); } var project = new Mock <IProject>(); { project.Setup(p => p.History) .Returns(history.Object); } var projectFacade = new ProjectFacade(project.Object); var projectLink = new Mock <ILinkToProjects>(); { projectLink.Setup(p => p.ActiveProject()) .Returns(projectFacade); projectLink.Setup(p => p.HasActiveProject()) .Returns(true); } Func <string, IDisposable> timerFunc = s => new MockDisposable(); var command = new UndoCommand(projectLink.Object, timerFunc); command.Execute(null); history.Verify(h => h.RollBackTo(It.IsAny <TimeMarker>(), It.IsAny <TimelineTraveller>()), Times.Once()); }
public void CanUndoWithMarkers() { var currentMark = new TimeMarker(10); var markers = new List <TimeMarker> { currentMark, new TimeMarker(1), }; var history = new Mock <ITimeline>(); { history.Setup(h => h.CanRollBack) .Returns(true); history.Setup(h => h.MarkersInThePast()) .Returns(markers); history.Setup(h => h.Current) .Returns(currentMark); } var project = new Mock <IProject>(); { project.Setup(p => p.History) .Returns(history.Object); } var projectFacade = new ProjectFacade(project.Object); var projectLink = new Mock <ILinkToProjects>(); { projectLink.Setup(p => p.ActiveProject()) .Returns(projectFacade); projectLink.Setup(p => p.HasActiveProject()) .Returns(true); } Func <string, IDisposable> timerFunc = s => new MockDisposable(); var command = new UndoCommand(projectLink.Object, timerFunc); Assert.IsTrue(command.CanExecute(null)); }