public void AsyncCommand_ChangeCanExecute_Test()
        {
            // Arrange
            var canCommandExecute       = false;
            var didCanExecuteChangeFire = false;

            var command = new AsyncCommand(NoParameterTask, commandCanExecute);

            command.CanExecuteChanged += handleCanExecuteChanged;

            bool commandCanExecute(object parameter) => canCommandExecute;

            Assert.False(command.CanExecute(null));

            // Act
            canCommandExecute = true;

            // Assert
            Assert.True(command.CanExecute(null));
            Assert.False(didCanExecuteChangeFire);

            // Act
#pragma warning disable CS0618 // Type or member is obsolete
            command.ChangeCanExecute();
#pragma warning restore CS0618 // Type or member is obsolete

            // Assert
            Assert.True(didCanExecuteChangeFire);
            Assert.True(command.CanExecute(null));

            void handleCanExecuteChanged(object sender, EventArgs e) => didCanExecuteChangeFire = true;
        }