public async Task ShouldSetEnabledToFalseAsynchronous()
        {
            bool[] canExecute = { true };
            var    command    = new AsyncActionCommand <int>(
                o => Task.CompletedTask,
                async o =>
            {
                await Task.Yield();
                return(canExecute[0]);
            });

            await command.RefreshAsync();

            Assert.IsTrue(command.Enabled);

            canExecute[0] = false;

            await command.RefreshAsync();

            Assert.IsFalse(command.Enabled);
        }
        public async Task ShouldRaiseCanExecuteChangedAsynchronous()
        {
            bool canExecuteCalled = false;
            var  command          = new AsyncActionCommand(o => Task.FromResult((object)null),
                                                           o =>
            {
                canExecuteCalled = true;
                return(Task.FromResult(true));
            });

            await command.RefreshAsync();

            Assert.IsTrue(canExecuteCalled);
        }