// Copyright (c) .NET Foundation and contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Linq; using FluentAssertions; using Microsoft.DotNet.Cli; using Microsoft.DotNet.Cli.CommandLine; using Xunit; using Xunit.Abstractions; using Parser = Microsoft.DotNet.Cli.Parser; namespace Microsoft.DotNet.Tests.ParserTests { public class InstallToolParserTests { private readonly ITestOutputHelper output; public InstallToolParserTests(ITestOutputHelper output) { this.output = output; } [Fact] public void InstallGlobaltoolParserCanGetPackageIdAndPackageVersion() { var command = Parser.Instance; var result = command.Parse("dotnet install tool console.test.app --version 1.0.1"); var parseResult = result["dotnet"]["install"]["tool"]; var packageId = parseResult.Arguments.Single(); var packageVersion = parseResult.ValueOrDefault("version"); packageId.Should().Be("console.test.app"); packageVersion.Should().Be("1.0.1"); } [Fact] public void InstallGlobaltoolParserCanGetFollowingArguments() { var command = Parser.Instance; var result = command.Parse( @"dotnet install tool console.test.app --version 1.0.1 --framework netcoreapp2.0 --configfile C:\TestAssetLocalNugetFeed"); var parseResult = result["dotnet"]["install"]["tool"]; parseResult.ValueOrDefault("configfile").Should().Be(@"C:\TestAssetLocalNugetFeed"); parseResult.ValueOrDefault("framework").Should().Be("netcoreapp2.0"); } } }