File: CommandTests\Package\List\ListPackageParserTests.cs
Web Access
Project: ..\..\..\test\dotnet.Tests\dotnet.Tests.csproj (dotnet.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Microsoft.DotNet.Cli.Commands.Hidden.List.Package;
using Microsoft.DotNet.Cli.Extensions;
using Parser = Microsoft.DotNet.Cli.Parser;
 
namespace Microsoft.DotNet.Tests.ParserTests
{
    public class ListPackageParserTests
    {
        [Fact]
        public void ListPackageCanForwardInteractiveFlag()
        {
            var result = Parser.Parse(["dotnet", "list", "package", "--interactive"]);
 
            result.OptionValuesToBeForwarded(ListPackageCommandParser.GetCommand()).Should().ContainSingle("--interactive");
            result.Errors.Should().BeEmpty();
        }
 
        [Theory]
        [InlineData("--verbosity", "foo")]
        [InlineData("--verbosity", "")]
        [InlineData("-v", "foo")]
        [InlineData("-v", "")]
        public void ListPackageRejectsInvalidVerbosityFlags(string inputOption, string value)
        {
            var result = Parser.Parse(["dotnet", "list", "package", inputOption, value]);
 
            result.Errors.Should().NotBeEmpty();
        }
 
        [Theory]
        [InlineData("--verbosity", "q")]
        [InlineData("--verbosity", "quiet")]
        [InlineData("--verbosity", "m")]
        [InlineData("--verbosity", "minimal")]
        [InlineData("--verbosity", "n")]
        [InlineData("--verbosity", "normal")]
        [InlineData("--verbosity", "d")]
        [InlineData("--verbosity", "detailed")]
        [InlineData("--verbosity", "diag")]
        [InlineData("--verbosity", "diagnostic")]
        [InlineData("--verbosity", "QUIET")]
        [InlineData("-v", "q")]
        [InlineData("-v", "QUIET")]
        public void ListPackageCanForwardVerbosityFlag(string inputOption, string value)
        {
            var result = Parser.Parse(["dotnet", "list", "package", inputOption, value]);
 
            result
                .OptionValuesToBeForwarded(ListPackageCommandParser.GetCommand())
                .Should()
                .Contain($"--verbosity:{value.ToLowerInvariant()}");
            result.Errors.Should().BeEmpty();
        }
 
        [Fact]
        public void ListPackageDoesNotForwardVerbosityByDefault()
        {
            var result = Parser.Parse(["dotnet", "list", "package"]);
 
            result
                .OptionValuesToBeForwarded(ListPackageCommandParser.GetCommand())
                .Should()
                .NotContain(i => i.Contains("--verbosity", StringComparison.OrdinalIgnoreCase))
                .And.NotContain(i => i.Contains("-v", StringComparison.OrdinalIgnoreCase));
            result.Errors.Should().BeEmpty();
        }
    }
}