public async Task Reverse()
        {
            var originalCount = _actualCount;

            await _sut.ExecuteAsync();

            Assert.AreNotEqual(originalCount, _actualCount);

            await _sut.ReverseAsync();

            Assert.AreEqual(originalCount, _actualCount);
        }
        public async Task CannotExecute()
        {
            int expectedCount = _actualCount;
            var sut           = new CommandReversibleAndDisableAbleAsync(
                () => false,
                _actionToExecute,
                _undoAction);

            await sut.ExecuteAsync();

            Assert.AreEqual(expectedCount, _actualCount);

            await sut.ReverseAsync();

            Assert.AreEqual(expectedCount, _actualCount);

            bool actualResult = await sut.CanExecuteAsync();

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