public async Task TryCreateEnumValueAsync_Throws()
        {
            var project = UnconfiguredProjectFactory.Create();

            var provider  = new LaunchTargetEnumProvider(project, GetJoinableTaskContext());
            var generator = await provider.GetProviderAsync(options : null);

            await Assert.ThrowsAsync <NotImplementedException>(() => generator.TryCreateEnumValueAsync("MyTarget"));
        }
        public async Task GetProviderAsync_ReturnsNonNullGenerator()
        {
            var project = UnconfiguredProjectFactory.Create();

            var provider  = new LaunchTargetEnumProvider(project, GetJoinableTaskContext());
            var generator = await provider.GetProviderAsync(options : null);

            Assert.NotNull(generator);
        }
        public async Task GetListValuesAsync_ReturnsCommandsAndFriendlyNames()
        {
            var project = UnconfiguredProjectFactory.Create();

            var provider = new LaunchTargetEnumProvider(project, GetJoinableTaskContext());

            provider.UIProviders.Add(ILaunchSettingsUIProviderFactory.Create(commandName: "alpha", friendlyName: "Command One"));
            provider.UIProviders.Add(ILaunchSettingsUIProviderFactory.Create(commandName: "beta", friendlyName: "Command Two"));
            var generator = await provider.GetProviderAsync(options : null);

            var values = await generator.GetListedValuesAsync();

            Assert.Collection(values, new Action <IEnumValue>[]
            {
                ev => { Assert.Equal(expected: "alpha", actual: ev.Name); Assert.Equal(expected: "Command One", actual: ev.DisplayName); },
                ev => { Assert.Equal(expected: "beta", actual: ev.Name); Assert.Equal(expected: "Command Two", actual: ev.DisplayName); }
            });
        }