// 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 System.Xml.Linq; using FluentAssertions; using Microsoft.DotNet.TestFramework; using Microsoft.DotNet.Tools.Test.Utilities; using Xunit; namespace EndToEnd { public class GivenWindowsApp : TestBase { [WindowsOnlyTheory] [InlineData("10.0.17763.0")] [InlineData("10.0.18362.0")] [InlineData("10.0.19041.0")] [InlineData("10.0.20348.0")] [InlineData("10.0.22000.0")] [InlineData("10.0.22621.0")] public void ItCanBuildAndRun(string targetPlatformVersion) { var testInstance = TestAssets.Get(TestAssetKinds.TestProjects, "UseCswinrt") .CreateInstance("UseCswinrt" + targetPlatformVersion) .WithSourceFiles(); var projectPath = Path.Combine(testInstance.Root.FullName, "consolecswinrt.csproj"); var project = XDocument.Load(projectPath); var ns = project.Root.Name.Namespace; // Update TargetFramework to the right version of .NET Core project.Root.Element(ns + "PropertyGroup") .Add(new XElement(ns + "TargetPlatformVersion", targetPlatformVersion)); project.Root.Element(ns + "PropertyGroup") .Element(ns + "TargetFramework").Value = TestAssetInfo.currentTfm; project.Save(projectPath); new BuildCommand() .WithProjectFile(new FileInfo(testInstance.Root.FullName)) .Execute() .Should().Pass(); new RunCommand().WithWorkingDirectory(testInstance.Root.FullName) .Execute("--no-build") .Should().Pass().And.HaveStdOutContaining("Hello"); } } }