public async Task ExecuteShouldResetLoadingFlagWhenTaskThrowsException()
        {
            // Arrange
            Func <Task> action = () => Task.FromException(new Exception("test"));
            var         sut    = new CommandOption(action, string.Empty, string.Empty);

            // Act
            var ex = await Record.ExceptionAsync(() => sut.Execute());

            // Assert
            Assert.NotNull(ex);
            Assert.False(sut.IsLoading);
        }
        public async Task ExecuteShouldSetLoadingFlag()
        {
            // Arrange
            Func <Task> action = () => Task.Delay(100);
            var         sut    = new CommandOption(action, string.Empty, string.Empty);

            // Act
            var   before = sut.IsLoading;
            var   task   = sut.Execute();
            var   during = sut.IsLoading;
            await task;
            var   after = sut.IsLoading;

            // Assert
            Assert.False(before);
            Assert.True(during);
            Assert.False(after);
        }