From 808d65a541dcb2135f9f9c84094b50d0aec85ff8 Mon Sep 17 00:00:00 2001 From: Andrii Kurdiumov Date: Fri, 27 Mar 2026 10:11:46 +0100 Subject: [PATCH] Use Verify for MSBuild tests --- .../Confuser.MSBuild.Tasks.Tests.csproj | 12 +---- .../CreateProjectTests.cs | 44 +++++++++++-------- .../Resources/confuser-empty.expected.crproj | 3 -- .../Resources/confuser.expected.crproj | 5 --- ...ts.BaseDirectoryOverridenTest.verified.txt | 5 +++ ...teNewProjectIfNoSourceProject.verified.txt | 3 ++ 6 files changed, 36 insertions(+), 36 deletions(-) delete mode 100644 Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser-empty.expected.crproj delete mode 100644 Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser.expected.crproj create mode 100644 Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.BaseDirectoryOverridenTest.verified.txt create mode 100644 Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.CreateNewProjectIfNoSourceProject.verified.txt diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj b/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj index 76b198f8..876b501b 100644 --- a/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj +++ b/Tests/Confuser.MSBuild.Tasks.Tests/Confuser.MSBuild.Tasks.Tests.csproj @@ -7,12 +7,6 @@ - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -21,6 +15,8 @@ + + @@ -28,8 +24,4 @@ - - - - diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/CreateProjectTests.cs b/Tests/Confuser.MSBuild.Tasks.Tests/CreateProjectTests.cs index 3feb8594..ec761db0 100644 --- a/Tests/Confuser.MSBuild.Tasks.Tests/CreateProjectTests.cs +++ b/Tests/Confuser.MSBuild.Tasks.Tests/CreateProjectTests.cs @@ -5,32 +5,41 @@ using Confuser.UnitTest; using Microsoft.Build.Framework; using Moq; +using VerifyTests; +using VerifyXunit; using Xunit; namespace Confuser.MSBuild.Tasks.Tests { - public class CreateProjectTests { + public class CreateProjectTests : VerifyBase { private readonly ITestOutputHelper outputHelper; private Mock buildEngine; private List errors; - public CreateProjectTests(ITestOutputHelper outputHelper) { + static CreateProjectTests() { + // To disable Visual Studio popping up on every test execution. + Environment.SetEnvironmentVariable("DiffEngine_Disabled", "true"); + Environment.SetEnvironmentVariable("Verify_DisableClipboard", "true"); + + // To prevent from adding UTF-8 BOM to generated test data: + VerifierSettings.UseUtf8NoBom(); + } + + public CreateProjectTests(ITestOutputHelper outputHelper) : base() { this.outputHelper = outputHelper ?? throw new ArgumentNullException(nameof(outputHelper)); this.buildEngine = new Mock(); this.errors = new List(); this.buildEngine.Setup(x => x.LogErrorEvent(It.IsAny())).Callback(e => errors.Add(e)); } - - [Fact] [Trait("Category", "MSBuildIntegration")] - public void CreateNewProjectIfNoSourceProject() { + public async System.Threading.Tasks.Task CreateNewProjectIfNoSourceProject() { var assembly = new Mock(); assembly.SetupAllProperties(); assembly.Object.ItemSpec = $".\\bin\\debug\\test.dll"; var baseDirectory = new Mock(); baseDirectory.SetupAllProperties(); - baseDirectory.Object.ItemSpec = $"."; + baseDirectory.Object.ItemSpec = $"1."; var resultProject = new Mock(); resultProject.SetupAllProperties(); resultProject.Object.ItemSpec = $"result-empty.crproj"; @@ -48,17 +57,12 @@ public void CreateNewProjectIfNoSourceProject() { Assert.True(success); Assert.Empty(errors); Assert.True(File.Exists(task.ResultProject.ItemSpec)); - Assert.Collection( - File.ReadLines(".\\Resources\\confuser-empty.expected.crproj"), - File.ReadLines(task.ResultProject.ItemSpec) - .Select>((string actual) => (string expected) => Assert.Equal(expected, actual)) - .ToArray() - ); + await Verify(File.ReadAllText(task.ResultProject.ItemSpec), GetSettings()); } [Fact] [Trait("Category", "MSBuildIntegration")] - public void BaseDirectoryOverridenTest() { + public async System.Threading.Tasks.Task BaseDirectoryOverridenTest() { var sourceProject = new Mock(); sourceProject.SetupAllProperties(); sourceProject.Object.ItemSpec = $".\\Resources\\confuser.src.crproj"; @@ -86,11 +90,15 @@ public void BaseDirectoryOverridenTest() { Assert.True(success); Assert.Empty(errors); Assert.True(File.Exists(task.ResultProject.ItemSpec)); - Assert.Collection(File.ReadLines(task.ResultProject.ItemSpec), - File.ReadLines(".\\Resources\\confuser.expected.crproj") - .Select>((string actual) => (string expected) => Assert.Equal(expected, actual)) - .ToArray() - ); + await Verify(File.ReadAllText(task.ResultProject.ItemSpec), GetSettings()); + } + + protected static VerifySettings GetSettings(params object[] parameters) { + var settings = new VerifySettings(); + settings.UseDirectory("verified"); + if (parameters.Length > 0) + settings.UseParameters(parameters); + return settings; } } } diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser-empty.expected.crproj b/Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser-empty.expected.crproj deleted file mode 100644 index 939b32a0..00000000 --- a/Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser-empty.expected.crproj +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser.expected.crproj b/Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser.expected.crproj deleted file mode 100644 index e297af8c..00000000 --- a/Tests/Confuser.MSBuild.Tasks.Tests/Resources/confuser.expected.crproj +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.BaseDirectoryOverridenTest.verified.txt b/Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.BaseDirectoryOverridenTest.verified.txt new file mode 100644 index 00000000..4eb8c2dc --- /dev/null +++ b/Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.BaseDirectoryOverridenTest.verified.txt @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.CreateNewProjectIfNoSourceProject.verified.txt b/Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.CreateNewProjectIfNoSourceProject.verified.txt new file mode 100644 index 00000000..25d4da72 --- /dev/null +++ b/Tests/Confuser.MSBuild.Tasks.Tests/verified/CreateProjectTests.CreateNewProjectIfNoSourceProject.verified.txt @@ -0,0 +1,3 @@ + + +