dotnet-installer/test/dotnet-migrate.Tests/GivenThatIWantToMigrateAppsUsingGlobalJson.cs
2017-03-02 20:35:20 -08:00

80 lines
2.7 KiB
C#

// 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 FluentAssertions;
using Microsoft.DotNet.TestFramework;
using Microsoft.DotNet.Tools.Test.Utilities;
using System.IO;
using Xunit;
namespace Microsoft.DotNet.Migration.Tests
{
public class GivenThatIWantToMigrateAppsUsingGlobalJson : TestBase
{
[Fact]
public void ItMigratesWhenBeingPassedAFullPathToGlobalJson()
{
var solutionDirectory = TestAssets
.GetProjectJson("AppWithPackageNamedAfterFolder")
.CreateInstance()
.WithSourceFiles()
.Root;
var globalJsonPath = solutionDirectory.GetFile("global.json");
new TestCommand("dotnet")
.WithForwardingToConsole()
.Execute($"migrate {globalJsonPath.FullName}")
.Should()
.Pass();
}
[Fact]
public void WhenUsingGlobalJsonItOnlyMigratesProjectsInTheGlobalJsonNode()
{
var solutionDirectory = TestAssets
.GetProjectJson("AppWithPackageNamedAfterFolder")
.CreateInstance()
.WithSourceFiles()
.Root;
var globalJsonPath = solutionDirectory.GetFile("global.json");
new TestCommand("dotnet")
.WithForwardingToConsole()
.Execute($"migrate {globalJsonPath.FullName}")
.Should()
.Pass();
solutionDirectory
.Should().HaveFiles(new []
{
Path.Combine("src", "App", "App.csproj"),
Path.Combine("test", "App.Tests", "App.Tests.csproj"),
Path.Combine("TestAssets", "TestAsset", "project.json")
});
solutionDirectory
.Should().NotHaveFile(Path.Combine("TestAssets", "TestAsset", "TestAsset.csproj"));
}
[Fact]
public void ItMigratesWhenBeingPassedJustGlobalJson()
{
var solutionDirectory = TestAssets
.GetProjectJson("AppWithPackageNamedAfterFolder")
.CreateInstance()
.WithSourceFiles()
.Root;
var globalJsonPath = solutionDirectory.GetFile("global.json");
new TestCommand("dotnet")
.WithWorkingDirectory(solutionDirectory)
.WithForwardingToConsole()
.Execute($"migrate global.json")
.Should()
.Pass();
}
}
}