public void Reverse()
        {
            var originalCount = _actualCount;

            _sut.Execute(1);
            Assert.AreNotEqual(originalCount, _actualCount);

            _sut.Reverse(1);
            Assert.AreEqual(originalCount, _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);
        }