dotnet-installer/test/binding-redirects.Tests/TestSetupFixture.cs

68 lines
2.5 KiB
C#
Raw Normal View History

// 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.IO;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.DotNet.TestFramework;
using Microsoft.DotNet.Tools.Test.Utilities;
using NuGet.Frameworks;
namespace Microsoft.DotNet.BindingRedirects.Tests
{
public class TestSetupFixture : TestBase
{
private readonly NuGetFramework Framework = NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net46;
private const string Config = "Debug";
private const string AppWithConfig = "AppWithRedirectsAndConfig";
private const string AppWithoutConfig = "AppWithRedirectsNoConfig";
private string _Runtime = RuntimeEnvironmentRidExtensions.GetLegacyRestoreRuntimeIdentifier();
private string _appWithConfigProjectRoot;
private string _appWithoutConfigProjectRoot;
private TestAssetInstance _testInstance;
public string AppWithConfigProjectRoot { get { return _appWithConfigProjectRoot; } }
public string AppWithoutConfigProjectRoot { get { return _appWithoutConfigProjectRoot; } }
public TestSetupFixture()
{
_testInstance = TestAssets.Get("DesktopTestProjects", "BindingRedirectSample")
.CreateInstance()
.WithSourceFiles()
.WithNuGetConfig(new RepoDirectoriesProvider().TestPackages);
_appWithConfigProjectRoot = Setup(AppWithConfig);
_appWithoutConfigProjectRoot = Setup(AppWithoutConfig);
}
private string Setup(string project)
{
string projectDir = Path.Combine(_testInstance.Root.FullName, project);
string publishDir = Path.Combine(projectDir, "publish");
new RestoreCommand()
.WithWorkingDirectory(projectDir)
.WithRuntime(_Runtime)
.ExecuteWithCapturedOutput()
.Should().Pass();
new BuildCommand()
.WithWorkingDirectory(projectDir)
.WithFramework(Framework)
.WithRuntime(_Runtime)
.Execute()
.Should().Pass();
new PublishCommand()
.WithWorkingDirectory(projectDir)
.WithOutput(publishDir)
.WithFramework(Framework)
.WithRuntime(_Runtime)
.Execute()
.Should().Pass();
return projectDir;
}
}
}