fix NullReferenceError on remove package and incorrect help text
This commit is contained in:
parent
c9e0989152
commit
74af357f07
6 changed files with 177 additions and 6 deletions
73
test/dotnet-remove-package.Tests/GivenDotnetRemovePackage.cs
Normal file
73
test/dotnet-remove-package.Tests/GivenDotnetRemovePackage.cs
Normal file
|
@ -0,0 +1,73 @@
|
|||
// 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;
|
||||
using System.IO;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Remove.Package.Tests
|
||||
{
|
||||
public class GivenDotnetRemovePackage : TestBase
|
||||
{
|
||||
private const string HelpText = @".NET Remove Package reference Command.
|
||||
|
||||
Usage: dotnet remove <PROJECT> package [options] <PACKAGE_NAME>
|
||||
|
||||
Arguments:
|
||||
<PROJECT> The project file to operate on. If a file is not specified, the command will search the current directory for one.
|
||||
<PACKAGE_NAME> Package reference to remove.
|
||||
|
||||
Options:
|
||||
-h, --help Show help information
|
||||
";
|
||||
|
||||
[Theory]
|
||||
[InlineData("--help")]
|
||||
[InlineData("-h")]
|
||||
public void WhenHelpOptionIsPassedItPrintsUsage(string helpArg)
|
||||
{
|
||||
var cmd = new DotnetCommand().ExecuteWithCapturedOutput($"remove package {helpArg}");
|
||||
cmd.Should().Pass();
|
||||
cmd.StdOut.Should().BeVisuallyEquivalentTo(HelpText);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("")]
|
||||
[InlineData("unknownCommandName")]
|
||||
public void WhenNoCommandIsPassedItPrintsError(string commandName)
|
||||
{
|
||||
var cmd = new DotnetCommand()
|
||||
.ExecuteWithCapturedOutput($"remove {commandName}");
|
||||
cmd.Should().Fail();
|
||||
cmd.StdErr.Should().Be("Required command was not provided.");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WhenReferencedPackageIsPassedItGetsRemoved()
|
||||
{
|
||||
var projectDirectory = TestAssets
|
||||
.Get("TestAppSimple")
|
||||
.CreateInstance()
|
||||
.WithSourceFiles()
|
||||
.Root
|
||||
.FullName;
|
||||
|
||||
var packageName = "Newtonsoft.Json";
|
||||
var add = new DotnetCommand()
|
||||
.WithWorkingDirectory(projectDirectory)
|
||||
.ExecuteWithCapturedOutput($"add package {packageName}");
|
||||
add.Should().Pass();
|
||||
|
||||
|
||||
var remove = new DotnetCommand()
|
||||
.WithWorkingDirectory(projectDirectory)
|
||||
.ExecuteWithCapturedOutput($"remove package {packageName}");
|
||||
|
||||
remove.Should().Pass();
|
||||
remove.StdOut.Should().Contain($"Removing PackageReference for package '{packageName}' from project '{projectDirectory + Path.DirectorySeparatorChar}TestAppSimple.csproj'.");
|
||||
remove.StdErr.Should().BeEmpty();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue