public void ConstructHimself()
 {
     _ = new CommandReversibleAndDisableAble <int>(
         _canExecuteAction,
         _actionToExecute,
         _undoAction);
 }
 public void TestInitialize()
 {
     _actualCount      = 0;
     _canExecuteAction = o => true;
     _actionToExecute  = increase => _actualCount += increase.Value;
     _undoAction       = decrease => _actualCount -= decrease.Value;
     _sut = new CommandReversibleAndDisableAble <int?>(
         _canExecuteAction,
         _actionToExecute,
         _undoAction);
     _sut.CanExecuteChanged += (o, e) => _actualCount++;
 }
 public void TestInitialize()
 {
     _actualCount      = 0;
     _canExecuteAction = () => true;
     _actionToExecute  = () => _actualCount++;
     _undoAction       = () => _actualCount--;
     _sut = new CommandReversibleAndDisableAble(
         _canExecuteAction,
         _actionToExecute,
         _undoAction);
     _sut.CanExecuteChanged += (o, e) => _actualCount++;
 }
        public void CannotExecute()
        {
            int expectedCount = _actualCount;
            var sut           = new CommandReversibleAndDisableAble <int?>(
                o => false, _actionToExecute, _undoAction);

            sut.Execute(1);
            Assert.AreEqual(expectedCount, _actualCount);

            sut.Reverse(2);
            Assert.AreEqual(expectedCount, _actualCount);

            bool actualResult = sut.CanExecute(1);

            Assert.AreEqual(expected: false, actualResult);
        }