public void Execute()
        {
            var expectedCount = _actualCount;

            _sut.Execute();

            Assert.AreNotEqual(expectedCount, _actualCount);
            Assert.IsTrue(expectedCount < _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);
        }
 public void CanExecute_ThrowsInvalidCastException()
 {
     Assert.ThrowsException <InvalidCastException>(
         () => _sut.Execute(""));
 }