Esempio n. 1
0
        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));
        }
        protected override void OnInitialized(EventArgs e)
        {
            base.OnInitialized(e);


            CommandBindings.Add(new CommandBinding(ApplicationCommands.Undo,
                                                   (sender, ce) =>
            {
                var undo      = UndoStack.Pop();
                _isUndoHandle = true;
                if (!(UndoCommand?.CanExecute(null) ?? true))
                {
                    return;
                }
                else
                {
                    UndoCommand?.Execute(null);
                }
                undo.UndoAction(undo);
            },
                                                   (sender, ce) =>
            {
                ce.CanExecute = UndoStack.Any();
            }));

            CommandBindings.Add(new CommandBinding(ApplicationCommands.Redo,
                                                   (sender, ce) =>
            {
                var redo      = RedoStack.Pop();
                _isUndoHandle = false;
                if (!(RedoCommand?.CanExecute(null) ?? true))
                {
                    return;
                }
                else
                {
                    RedoCommand?.Execute(null);
                }
                redo.RedoAction(redo);
            },
                                                   (sender, ce) =>
            {
                ce.CanExecute = RedoStack.Any();
            }));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        public void CanUndoWithNullFacade()
        {
            Func<string, IDisposable> timerFunc = s => new MockDisposable();

            var command = new UndoCommand(null, timerFunc);
            Assert.IsFalse(command.CanExecute(null));
        }