Add test cases per PR feedback

This commit is contained in:
Nick Guerrera 2018-04-05 17:58:38 -07:00
parent 42e0afff1d
commit 60e798598d

View file

@ -242,20 +242,65 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
var rootPath = TestAssets.CreateTestDirectory().FullName; var rootPath = TestAssets.CreateTestDirectory().FullName;
string newArgs = $"console -o \"{rootPath}\""; string newArgs = $"console -o \"{rootPath}\"";
new NewCommandShim() new NewCommandShim() // note implicit restore here
.WithWorkingDirectory(rootPath) .WithWorkingDirectory(rootPath)
.Execute(newArgs) .Execute(newArgs)
.Should().Pass(); .Should()
.Pass();
new PublishCommand() new PublishCommand()
.WithWorkingDirectory(rootPath) .WithWorkingDirectory(rootPath)
.ExecuteWithCapturedOutput("--no-build") .ExecuteWithCapturedOutput("--no-build")
.Should().Fail() .Should()
.And.HaveStdOutContaining("MSB3030"); // "Could not copy ___ because it was not found. .Fail()
.And.HaveStdOutContaining("MSB3030"); // "Could not copy ___ because it was not found."
}
[Theory]
[InlineData(false)]
[InlineData(true)]
public void ItPublishesSuccessfullyWithNoBuildIfPreviouslyBuilt(bool selfContained)
{
var rootPath = TestAssets.CreateTestDirectory(identifier: selfContained ? "_sc" : "").FullName;
var rootDir = new DirectoryInfo(rootPath);
string newArgs = $"console -o \"{rootPath}\" --no-restore";
new NewCommandShim()
.WithWorkingDirectory(rootPath)
.Execute(newArgs)
.Should()
.Pass();
var rid = selfContained ? DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier() : "";
var ridArg = selfContained ? $"-r {rid}" : "";
new BuildCommand()
.WithWorkingDirectory(rootPath)
.ExecuteWithCapturedOutput(ridArg)
.Should()
.Pass();
new PublishCommand()
.WithWorkingDirectory(rootPath)
.ExecuteWithCapturedOutput($"{ridArg} --no-build")
.Should()
.Pass();
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
var outputProgram = rootDir
.GetDirectory("bin", configuration, "netcoreapp2.1", rid, "publish", $"{rootDir.Name}.dll")
.FullName;
new TestCommand(outputProgram)
.ExecuteWithCapturedOutput()
.Should()
.Pass()
.And.HaveStdOutContaining("Hello World");
} }
[Fact] [Fact]
public void ItPublishesSuccessfullyWithNoBuildIfPreviouslyBuilt() public void ItFailsToPublishWithNoBuildIfPreviouslyBuiltWithoutRid()
{ {
var rootPath = TestAssets.CreateTestDirectory().FullName; var rootPath = TestAssets.CreateTestDirectory().FullName;
var rootDir = new DirectoryInfo(rootPath); var rootDir = new DirectoryInfo(rootPath);
@ -275,21 +320,9 @@ namespace Microsoft.DotNet.Cli.Publish.Tests
new PublishCommand() new PublishCommand()
.WithWorkingDirectory(rootPath) .WithWorkingDirectory(rootPath)
.ExecuteWithCapturedOutput("--no-build") .ExecuteWithCapturedOutput("-r win-x64 --no-build")
.Should() .Should()
.Pass(); .Fail();
var configuration = Environment.GetEnvironmentVariable("CONFIGURATION") ?? "Debug";
var outputProgram = rootDir
.GetDirectory("bin", configuration, "netcoreapp2.1", "publish", $"{rootDir.Name}.dll")
.FullName;
new TestCommand(outputProgram)
.ExecuteWithCapturedOutput()
.Should()
.Pass()
.And.HaveStdOutContaining("Hello World");
} }
} }
} }