@joebigelow / wix / commits / 95b1be66

Try to get more helpful test failure messages.

Sean Hall committed Dec 31, 2021 at 18:20 UTC 95b1be66d4c16b1b05b761c1771df229ac0e539c
30 files changed +145 -90
src/api/burn/test/WixToolsetTest.Mba.Core/BaseBootstrapperApplicationFactoryFixture.cs
+2 -1
@@ -5,6 +5,7 @@ namespace WixToolsetTest.Mba.Core
5 using System;
6 using System.Collections.Generic;
7 using System.Runtime.InteropServices;
8 + using WixBuildTools.TestSupport;
9 using WixToolset.Mba.Core;
10 using Xunit;
11
@@ -45,7 +46,7 @@ namespace WixToolsetTest.Mba.Core
46 Assert.Equal(baFactory.BA.Command.Display, command.display);
47
48 var mbaCommand = baFactory.BA.Command.ParseCommandLine();
48 - Assert.Equal(mbaCommand.UnknownCommandLineArgs, new string[] { "this", "is a", "test" });
49 + WixAssert.CompareLineByLine(mbaCommand.UnknownCommandLineArgs, new string[] { "this", "is a", "test" });
50 Assert.Equal(mbaCommand.Variables, new KeyValuePair<string, string>[]
51 {
52 new KeyValuePair<string, string>("VariableA", "AVariable"),
src/api/burn/test/WixToolsetTest.Mba.Core/WixToolsetTest.Mba.Core.csproj
+5
@@ -14,6 +14,11 @@
14 <ProjectReference Include="..\..\WixToolset.Mba.Core\WixToolset.Mba.Core.csproj" />
15 </ItemGroup>
16
17 + <ItemGroup>
18 + <!-- <PackageReference Include="WixBuildTools.TestSupport" /> -->
19 + <ProjectReference Include="..\..\..\..\internal\WixBuildTools.TestSupport\WixBuildTools.TestSupport.csproj" />
20 + </ItemGroup>
21 +
22 <ItemGroup>
23 <PackageReference Include="Microsoft.NET.Test.Sdk" />
24 <PackageReference Include="xunit" />
src/api/wix/test/WixToolsetTest.Data/SerializeFixture.cs
+2 -1
@@ -5,6 +5,7 @@ namespace WixToolsetTest.Data
5 using System;
6 using System.IO;
7 using System.Linq;
8 + using WixBuildTools.TestSupport;
9 using WixToolset.Data;
10 using WixToolset.Data.Bind;
11 using WixToolset.Data.Symbols;
@@ -375,7 +376,7 @@ namespace WixToolsetTest.Data
376 var loc = loaded.Localizations.Single();
377 Assert.Equal(65001, loc.Codepage);
378 Assert.Empty(loc.Culture);
378 - Assert.Equal(new[]
379 + WixAssert.CompareLineByLine(new[]
380 {
381 "TestVar1/TestValue1/False",
382 "TestVar2/TestValue2/True",
src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj
+5
@@ -12,6 +12,11 @@
12 <ProjectReference Include="..\..\WixToolset.Data\WixToolset.Data.csproj" />
13 </ItemGroup>
14
15 + <ItemGroup>
16 + <!-- <PackageReference Include="WixBuildTools.TestSupport" /> -->
17 + <ProjectReference Include="..\..\..\..\internal\WixBuildTools.TestSupport\WixBuildTools.TestSupport.csproj" />
18 + </ItemGroup>
19 +
20 <ItemGroup>
21 <PackageReference Include="Microsoft.NET.Test.Sdk" />
22 <PackageReference Include="xunit" />
src/ext/DifxApp/test/WixToolsetTest.DifxApp/DifxAppExtensionFixture.cs
+1 -1
@@ -17,7 +17,7 @@ namespace WixToolsetTest.DifxApp
17 var build = new Builder(folder, typeof(DifxAppExtensionFactory), new[] { folder });
18
19 var results = build.BuildAndQuery(Build, "CustomAction");
20 - Assert.Equal(new[]
20 + WixAssert.CompareLineByLine(new[]
21 {
22 "CustomAction:MsiCleanupOnSuccess\t1\tDIFxApp.dll\tCleanupOnSuccess\t",
23 "CustomAction:MsiInstallDrivers\t3073\tDIFxAppA.dll\tInstallDriverPackages\t",
src/ext/DirectX/test/WixToolsetTest.DirectX/DirectXExtensionFixture.cs
+1 -1
@@ -17,7 +17,7 @@ namespace WixToolsetTest.DirectX
17 var build = new Builder(folder, typeof(DirectXExtensionFactory), new[] { folder });
18
19 var results = build.BuildAndQuery(Build, "CustomAction");
20 - Assert.Equal(new[]
20 + WixAssert.CompareLineByLine(new[]
21 {
22 "CustomAction:WixQueryDirectXCaps\t65\tDirectXCA\tWixQueryDirectXCaps\t",
23 }, results);
src/ext/Firewall/test/WixToolsetTest.Firewall/FirewallExtensionFixture.cs
+2 -2
@@ -17,7 +17,7 @@ namespace WixToolsetTest.Firewall
17 var build = new Builder(folder, typeof(FirewallExtensionFactory), new[] { folder });
18
19 var results = build.BuildAndQuery(Build, "Wix4FirewallException", "CustomAction");
20 - Assert.Equal(new[]
20 + WixAssert.CompareLineByLine(new[]
21 {
22 "CustomAction:Wix4ExecFirewallExceptionsInstall_X86\t3073\tWix4FWCA_X86\tExecFirewallExceptions\t",
23 "CustomAction:Wix4ExecFirewallExceptionsUninstall_X86\t3073\tWix4FWCA_X86\tExecFirewallExceptions\t",
@@ -36,7 +36,7 @@ namespace WixToolsetTest.Firewall
36 var build = new Builder(folder, typeof(FirewallExtensionFactory), new[] { folder });
37
38 var results = build.BuildAndQuery(BuildARM64, "Wix4FirewallException", "CustomAction");
39 - Assert.Equal(new[]
39 + WixAssert.CompareLineByLine(new[]
40 {
41 "CustomAction:Wix4ExecFirewallExceptionsInstall_A64\t3073\tWix4FWCA_A64\tExecFirewallExceptions\t",
42 "CustomAction:Wix4ExecFirewallExceptionsUninstall_A64\t3073\tWix4FWCA_A64\tExecFirewallExceptions\t",
src/ext/Iis/test/WixToolsetTest.Iis/IisExtensionFixture.cs
+1 -1
@@ -17,7 +17,7 @@ namespace WixToolsetTest.Iis
17 var build = new Builder(folder, typeof(IisExtensionFactory), new[] { folder });
18
19 var results = build.BuildAndQuery(Build, "Wix4IIsWebSite", "Wix4IIsWebAddress");
20 - Assert.Equal(new[]
20 + WixAssert.CompareLineByLine(new[]
21 {
22 "Wix4IIsWebAddress:TestAddress\tTest\t\t[PORT]\t\t0",
23 "Wix4IIsWebSite:Test\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tTest web server\t\tTestWebSiteProductDirectory\t2\t2\tTestAddress\tReadAndExecute\t\t\t\t",
src/ext/Msmq/test/WixToolsetTest.Msmq/MsmqExtensionFixture.cs
+1 -1
@@ -17,7 +17,7 @@ namespace WixToolsetTest.Msmq
17 var build = new Builder(folder, typeof(MsmqExtensionFactory), new[] { folder });
18
19 var results = build.BuildAndQuery(Build, "MessageQueue");
20 - Assert.Equal(new[]
20 + WixAssert.CompareLineByLine(new[]
21 {
22 "MessageQueue:TestMQ\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\t\t\tMQLabel\t\tMQPath\t\t\t\t0",
23 }, results);
src/ext/NetFx/test/WixToolsetTest.Netfx/NetfxExtensionFixture.cs
+3 -3
@@ -68,7 +68,7 @@ namespace WixToolsetTest.Netfx
68 var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder });
69
70 var results = build.BuildAndQuery(Build, "Binary", "CustomAction", "Wix4NetFxNativeImage");
71 - Assert.Equal(new[]
71 + WixAssert.CompareLineByLine(new[]
72 {
73 "Binary:Wix4NetFxCA_X86\t[Binary data]",
74 "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_X86\t3649\tWix4NetFxCA_X86\tExecNetFx\t",
@@ -87,7 +87,7 @@ namespace WixToolsetTest.Netfx
87 var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder });
88
89 var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4NetFxNativeImage");
90 - Assert.Equal(new[]
90 + WixAssert.CompareLineByLine(new[]
91 {
92 "Binary:Wix4NetFxCA_X64\t[Binary data]",
93 "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_X64\t3649\tWix4NetFxCA_X64\tExecNetFx\t",
@@ -106,7 +106,7 @@ namespace WixToolsetTest.Netfx
106 var build = new Builder(folder, typeof(NetfxExtensionFactory), new[] { folder });
107
108 var results = build.BuildAndQuery(BuildARM64, "Binary", "CustomAction", "Wix4NetFxNativeImage");
109 - Assert.Equal(new[]
109 + WixAssert.CompareLineByLine(new[]
110 {
111 "Binary:Wix4NetFxCA_A64\t[Binary data]",
112 "CustomAction:Wix4NetFxExecuteNativeImageCommitInstall_A64\t3649\tWix4NetFxCA_A64\tExecNetFx\t",
src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
+6 -6
@@ -18,7 +18,7 @@ namespace WixToolsetTest.UI
18 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
19
20 var results = build.BuildAndQuery(Build, "Property");
21 - Assert.Equal(new[]
21 + WixAssert.CompareLineByLine(new[]
22 {
23 "Property:WixUI_Mode\tAdvanced",
24 }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray());
@@ -32,7 +32,7 @@ namespace WixToolsetTest.UI
32 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
33
34 var results = build.BuildAndQuery(Build, "Property");
35 - Assert.Equal(new[]
35 + WixAssert.CompareLineByLine(new[]
36 {
37 "Property:WixUI_Mode\tFeatureTree",
38 }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray());
@@ -46,7 +46,7 @@ namespace WixToolsetTest.UI
46 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
47
48 var results = build.BuildAndQuery(Build, "Property");
49 - Assert.Equal(new[]
49 + WixAssert.CompareLineByLine(new[]
50 {
51 "Property:WixUI_Mode\tInstallDir",
52 }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray());
@@ -60,7 +60,7 @@ namespace WixToolsetTest.UI
60 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
61
62 var results = build.BuildAndQuery(Build, "Property");
63 - Assert.Equal(new[]
63 + WixAssert.CompareLineByLine(new[]
64 {
65 "Property:WixUI_Mode\tMinimal",
66 }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray());
@@ -74,7 +74,7 @@ namespace WixToolsetTest.UI
74 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
75
76 var results = build.BuildAndQuery(Build, "Property");
77 - Assert.Equal(new[]
77 + WixAssert.CompareLineByLine(new[]
78 {
79 "Property:WixUI_Mode\tMondo",
80 }, results.Where(s => s.StartsWith("Property:WixUI_Mode")).ToArray());
@@ -88,7 +88,7 @@ namespace WixToolsetTest.UI
88 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
89
90 var results = build.BuildAndQuery(BuildInGerman, "Control");
91 - Assert.Equal(new[]
91 + WixAssert.CompareLineByLine(new[]
92 {
93 "&Ja",
94 }, results.Where(s => s.StartsWith("Control:ErrorDlg\tY")).Select(s => s.Split('\t')[9]).ToArray());
src/ext/VisualStudio/test/WixToolsetTest.VisualStudio/VisualStudioExtensionFixture.cs
+1 -1
@@ -16,7 +16,7 @@ namespace WixToolsetTest.VisualStudio
16 var build = new Builder(folder, typeof(VSExtensionFactory), new[] { folder });
17
18 var results = build.BuildAndQuery(Build, "CustomAction");
19 - Assert.Equal(new[]
19 + WixAssert.CompareLineByLine(new[]
20 {
21 "CustomAction:SetVS2010Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2010_VSIX_INSTALLER_PATH]\t",
22 "CustomAction:SetVS2012Vsix\t51\tVS_VSIX_INSTALLER_PATH\t[VS2012_VSIX_INSTALLER_PATH]\t",
src/internal/WixBuildTools.TestSupport.Native/NativeAssert.h
+2 -4
@@ -29,8 +29,7 @@ namespace TestSupport {
29
30 static void NotStringEqual(LPCWSTR expected, LPCWSTR actual, BOOL ignoreCase)
31 {
32 - IEqualityComparer<String^>^ comparer = ignoreCase ? StringComparer::InvariantCultureIgnoreCase : StringComparer::InvariantCulture;
33 - Assert::NotEqual(NativeAssert::LPWSTRToString(expected), NativeAssert::LPWSTRToString(actual), comparer);
32 + WixAssert::NotStringEqual(NativeAssert::LPWSTRToString(expected), NativeAssert::LPWSTRToString(actual), ignoreCase);
33 }
34
35 // For some reason, naming these StringEqual methods "Equal" breaks Intellisense in files that call any overload of the Equal method.
@@ -41,8 +40,7 @@ namespace TestSupport {
40
41 static void StringEqual(LPCWSTR expected, LPCWSTR actual, BOOL ignoreCase)
42 {
44 - IEqualityComparer<String^>^ comparer = ignoreCase ? StringComparer::InvariantCultureIgnoreCase : StringComparer::InvariantCulture;
45 - Assert::Equal(NativeAssert::LPWSTRToString(expected), NativeAssert::LPWSTRToString(actual), comparer);
43 + WixAssert::StringEqual(NativeAssert::LPWSTRToString(expected), NativeAssert::LPWSTRToString(actual), ignoreCase);
44 }
45
46 static void Succeeded(HRESULT hr, LPCSTR zFormat, LPCSTR zArg, ... array<LPCSTR>^ zArgs)
src/internal/WixBuildTools.TestSupport/WixAssert.cs
+46 -2
@@ -3,6 +3,7 @@
3 namespace WixBuildTools.TestSupport
4 {
5 using System;
6 + using System.Collections.Generic;
7 using System.Linq;
8 using System.Xml.Linq;
9 using Xunit;
@@ -14,10 +15,10 @@ namespace WixBuildTools.TestSupport
15 for (var i = 0; i < expectedLines.Length; ++i)
16 {
17 Assert.True(actualLines.Length > i, $"{i}: expectedLines longer than actualLines");
17 - Assert.Equal($"{i}: {expectedLines[i]}", $"{i}: {actualLines[i]}");
18 + WixAssert.StringEqual($"{i}: {expectedLines[i]}", $"{i}: {actualLines[i]}");
19 }
20
20 - Assert.True(expectedLines.Length == actualLines.Length, "actualLines longer than expectedLines");
21 + Assert.True(expectedLines.Length == actualLines.Length, $"actualLines ({actualLines.Length}) longer than expectedLines ({expectedLines.Length})");
22 }
23
24 public static void CompareXml(XContainer xExpected, XContainer xActual)
@@ -43,5 +44,48 @@ namespace WixBuildTools.TestSupport
44 throw new SucceededException(hr, String.Format(format, formatArgs));
45 }
46 }
47 +
48 + public static void StringCollectionEmpty(IList<string> collection)
49 + {
50 + if (collection.Count > 0)
51 + {
52 + Assert.True(false, $"The collection was expected to be empty, but instead was [{Environment.NewLine}\"{String.Join($"\", {Environment.NewLine}\"", collection)}\"{Environment.NewLine}]");
53 + }
54 + }
55 +
56 + public static void StringEqual(string expected, string actual, bool ignoreCase = false)
57 + {
58 + var comparer = ignoreCase ? StringObjectEqualityComparer.InvariantCultureIgnoreCase : StringObjectEqualityComparer.InvariantCulture;
59 + Assert.Equal<object>(expected, actual, comparer);
60 + }
61 +
62 + public static void NotStringEqual(string expected, string actual, bool ignoreCase = false)
63 + {
64 + var comparer = ignoreCase ? StringObjectEqualityComparer.InvariantCultureIgnoreCase : StringObjectEqualityComparer.InvariantCulture;
65 + Assert.NotEqual<object>(expected, actual, comparer);
66 + }
67 +
68 + private class StringObjectEqualityComparer : IEqualityComparer<object>
69 + {
70 + public static readonly StringObjectEqualityComparer InvariantCultureIgnoreCase = new StringObjectEqualityComparer(true);
71 + public static readonly StringObjectEqualityComparer InvariantCulture = new StringObjectEqualityComparer(false);
72 +
73 + private readonly StringComparer _stringComparer;
74 +
75 + public StringObjectEqualityComparer(bool ignoreCase)
76 + {
77 + this._stringComparer = ignoreCase ? StringComparer.InvariantCultureIgnoreCase : StringComparer.InvariantCulture;
78 + }
79 +
80 + public new bool Equals(object x, object y)
81 + {
82 + return this._stringComparer.Equals((string)x,(string)y);
83 + }
84 +
85 + public int GetHashCode(object obj)
86 + {
87 + return this._stringComparer.GetHashCode((string)obj);
88 + }
89 + }
90 }
91 }
src/test/burn/WixTestTools/BundleVerifier.cs
+2 -1
@@ -7,6 +7,7 @@ namespace WixTestTools
7 using System.Linq;
8 using System.Text;
9 using Microsoft.Win32;
10 + using WixBuildTools.TestSupport;
11 using WixToolset.Data;
12 using WixToolset.Data.Symbols;
13 using Xunit;
@@ -93,7 +94,7 @@ namespace WixTestTools
94 Assert.True(File.Exists(registration.CachePath));
95
96 var expectedCachePath = this.GetExpectedCachedBundlePath();
96 - Assert.Equal(expectedCachePath, registration.CachePath, StringComparer.OrdinalIgnoreCase);
97 + WixAssert.StringEqual(expectedCachePath, registration.CachePath, true);
98
99 return registration.CachePath;
100 }
src/test/burn/WixTestTools/TestTool.cs
+1 -1
@@ -123,7 +123,7 @@ namespace WixTestTools
123 this.PrintErrors();
124 }
125
126 - Assert.Empty(this.Errors);
126 + WixAssert.StringCollectionEmpty(this.Errors);
127 }
128
129 return result;
src/wix/test/WixToolsetTest.CoreIntegration/CabFixture.cs
+2 -2
@@ -42,7 +42,7 @@ namespace WixToolsetTest.CoreIntegration
42 var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList();
43
44 Assert.Equal(new[] { 1, 2 }, fileRows.Select(f => f.Sequence).ToArray());
45 - Assert.Equal(new[] { "Notepad.exe", "test.txt" }, fileRows.Select(f => f.Name).ToArray());
45 + WixAssert.CompareLineByLine(new[] { "Notepad.exe", "test.txt" }, fileRows.Select(f => f.Name).ToArray());
46
47 var files = Query.GetCabinetFiles(cabPath);
48 Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray());
@@ -78,7 +78,7 @@ namespace WixToolsetTest.CoreIntegration
78 var fileRows = fileTable.Select(r => new FileRow(r)).OrderBy(f => f.Sequence).ToList();
79
80 Assert.Equal(new[] { 1 }, fileRows.Select(f => f.Sequence).ToArray());
81 - Assert.Equal(new[] { "test.txt" }, fileRows.Select(f => f.Name).ToArray());
81 + WixAssert.CompareLineByLine(new[] { "test.txt" }, fileRows.Select(f => f.Name).ToArray());
82
83 var files = Query.GetCabinetFiles(cabPath);
84 Assert.Equal(fileRows.Select(f => f.Id).ToArray(), files.Select(f => f.Name).ToArray());
src/wix/test/WixToolsetTest.CoreIntegration/CustomActionFixture.cs
+1 -1
@@ -100,7 +100,7 @@ namespace WixToolsetTest.CoreIntegration
100 "InstallUISequence",
101 "Property",
102 }).Where(x => !x.StartsWith("Property:") || x.StartsWith("Property:MsiHiddenProperties\t")).ToArray();
103 - Assert.Equal(new[]
103 + WixAssert.CompareLineByLine(new[]
104 {
105 "ActionText:CustomAction2\tProgess2Text\t",
106 "AdminExecuteSequence:CostFinalize\t\t1000",
src/wix/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
+5 -5
@@ -36,7 +36,7 @@ namespace WixToolsetTest.CoreIntegration
36
37 Assert.True(File.Exists(msiPath));
38 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable1" });
39 - Assert.Equal(new[]
39 + WixAssert.CompareLineByLine(new[]
40 {
41 "CustomTable1:Row1\ttest.txt",
42 "CustomTable1:Row2\ttest.txt",
@@ -71,7 +71,7 @@ namespace WixToolsetTest.CoreIntegration
71
72 Assert.True(File.Exists(msiPath));
73 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableLocalized" });
74 - Assert.Equal(new[]
74 + WixAssert.CompareLineByLine(new[]
75 {
76 "CustomTableLocalized:Row1\tThis is row one",
77 "CustomTableLocalized:Row2\tThis is row two",
@@ -105,7 +105,7 @@ namespace WixToolsetTest.CoreIntegration
105
106 Assert.True(File.Exists(msiPath));
107 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
108 - Assert.Equal(new[]
108 + WixAssert.CompareLineByLine(new[]
109 {
110 "CustomTableWithFile:Row1\t[Binary data]",
111 "CustomTableWithFile:Row2\t[Binary data]",
@@ -151,7 +151,7 @@ namespace WixToolsetTest.CoreIntegration
151
152 Assert.True(File.Exists(msiPath));
153 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
154 - Assert.Equal(new[]
154 + WixAssert.CompareLineByLine(new[]
155 {
156 "CustomTableWithFile:Row1\t[Binary data]",
157 "CustomTableWithFile:Row2\t[Binary data]",
@@ -185,7 +185,7 @@ namespace WixToolsetTest.CoreIntegration
185
186 Assert.True(File.Exists(msiPath));
187 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable2" });
188 - Assert.Empty(results);
188 + WixAssert.StringCollectionEmpty(results);
189 }
190 }
191
src/wix/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs
+1 -1
@@ -165,7 +165,7 @@ namespace WixToolsetTest.CoreIntegration
165 var build = new Builder(folder, null, new[] { folder });
166
167 var results = build.BuildAndQuery(Build, "Wix4DependencyProvider");
168 - Assert.Equal(new[]
168 + WixAssert.CompareLineByLine(new[]
169 {
170 "Wix4DependencyProvider:dep74OfIcniaqxA7EprRGBw4Oyy3r8\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tUsingProvides\t\t\t",
171 }, results);
src/wix/test/WixToolsetTest.CoreIntegration/DirectoryFixture.cs
+7 -7
@@ -40,7 +40,7 @@ namespace WixToolsetTest.CoreIntegration
40 var section = intermediate.Sections.Single();
41
42 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
43 - Assert.Equal(new[]
43 + WixAssert.CompareLineByLine(new[]
44 {
45 "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage",
46 "ProgramFiles6432Folder:ProgramFilesFolder:.",
@@ -78,7 +78,7 @@ namespace WixToolsetTest.CoreIntegration
78 var section = intermediate.Sections.Single();
79
80 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
81 - Assert.Equal(new[]
81 + WixAssert.CompareLineByLine(new[]
82 {
83 "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage",
84 "ProgramFiles6432Folder:ProgramFiles64Folder:.",
@@ -163,7 +163,7 @@ namespace WixToolsetTest.CoreIntegration
163 var section = intermediate.Sections.Single();
164
165 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
166 - Assert.Equal(new[]
166 + WixAssert.CompareLineByLine(new[]
167 {
168 "dZsSsu81KcG46xXTwc4mTSZO5Zx4:INSTALLFOLDER:dupe",
169 "INSTALLFOLDER:ProgramFiles6432Folder:MsiPackage",
@@ -202,7 +202,7 @@ namespace WixToolsetTest.CoreIntegration
202 var section = intermediate.Sections.Single();
203
204 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
205 - Assert.Equal(new[]
205 + WixAssert.CompareLineByLine(new[]
206 {
207 "BinFolder:ProgramFilesFolder:Example Corporation\\Test Product\\bin",
208 "ProgramFilesFolder:TARGETDIR:PFiles",
@@ -211,7 +211,7 @@ namespace WixToolsetTest.CoreIntegration
211
212 var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
213 var directoryRows = data.Tables["Directory"].Rows;
214 - Assert.Equal(new[]
214 + WixAssert.CompareLineByLine(new[]
215 {
216 "d4EceYatXTyy8HXPt5B6DT9Rj.wE:ProgramFilesFolder:u7-b4gch|Example Corporation",
217 "dSJ1pgiASlW7kJTu0wqsGBklJsS0:d4EceYatXTyy8HXPt5B6DT9Rj.wE:vjj-gxay|Test Product",
@@ -250,7 +250,7 @@ namespace WixToolsetTest.CoreIntegration
250 var section = intermediate.Sections.Single();
251
252 var dirSymbols = section.Symbols.OfType<WixToolset.Data.Symbols.DirectorySymbol>().ToList();
253 - Assert.Equal(new[]
253 + WixAssert.CompareLineByLine(new[]
254 {
255 "BinFolder\tProgramFilesFolder\tbin",
256 "ProgramFilesFolder\tTARGETDIR\tPFiles",
@@ -259,7 +259,7 @@ namespace WixToolsetTest.CoreIntegration
259
260 var data = WindowsInstallerData.Load(Path.Combine(baseFolder, @"bin\test.wixpdb"));
261 var directoryRows = data.Tables["Directory"].Rows;
262 - Assert.Equal(new[]
262 + WixAssert.CompareLineByLine(new[]
263 {
264 "BinFolder\tProgramFilesFolder\tbin",
265 "ProgramFilesFolder\tTARGETDIR\tPFiles",
src/wix/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
+1 -1
@@ -21,7 +21,7 @@ namespace WixToolsetTest.CoreIntegration
21 var build = new Builder(folder, typeof(ExampleExtensionFactory), new[] { Path.Combine(folder, "data") });
22
23 var results = build.BuildAndQuery(Build, "Wix4Example");
24 - Assert.Equal(new[]
24 + WixAssert.CompareLineByLine(new[]
25 {
26 "Wix4Example:Foo\tBar"
27 }, results);
src/wix/test/WixToolsetTest.CoreIntegration/MediaFixture.cs
+1 -1
@@ -42,7 +42,7 @@ namespace WixToolsetTest.CoreIntegration
42 Assert.Equal(2, mediaSymbols[0].LastSequence);
43 Assert.Equal(2, mediaSymbols[1].DiskId);
44 Assert.Equal(4, mediaSymbols[1].LastSequence);
45 - Assert.Equal(new[]
45 + WixAssert.CompareLineByLine(new[]
46 {
47 "a1.txt",
48 "a2.txt",
src/wix/test/WixToolsetTest.CoreIntegration/ModuleFixture.cs
+2 -2
@@ -59,7 +59,7 @@ namespace WixToolsetTest.CoreIntegration
59
60 var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
61 var fileRows = data.Tables["File"].Rows;
62 - Assert.Equal(new[]
62 + WixAssert.CompareLineByLine(new[]
63 {
64 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
65 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
@@ -68,7 +68,7 @@ namespace WixToolsetTest.CoreIntegration
68 var cabPath = Path.Combine(intermediateFolder, "msm-test.cab");
69 Query.ExtractStream(msmPath, "MergeModule.CABinet", cabPath);
70 var files = Query.GetCabinetFiles(cabPath);
71 - Assert.Equal(new[]
71 + WixAssert.CompareLineByLine(new[]
72 {
73 "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
74 "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE",
src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
+12 -12
@@ -206,7 +206,7 @@ namespace WixToolsetTest.CoreIntegration
206 var error = messages.Single(m => m.Level == MessageLevel.Error);
207 var errorMessage = error.ToString();
208 var checkedPaths = errorMessage.Substring(errorMessage.IndexOf(':') + 1).Split(new[] { ',' }).Select(s => s.Trim()).ToArray();
209 - Assert.Equal(new[]
209 + WixAssert.CompareLineByLine(new[]
210 {
211 "test.txt",
212 Path.Combine(folder, "does-not-exist", "test.txt"),
@@ -397,7 +397,7 @@ namespace WixToolsetTest.CoreIntegration
397
398 var builtFiles = Directory.GetFiles(Path.Combine(baseFolder, @"bin"));
399
400 - Assert.Equal(new[]{
400 + WixAssert.CompareLineByLine(new[]{
401 "test.wixipl"
402 }, builtFiles.Select(Path.GetFileName).ToArray());
403 }
@@ -428,7 +428,7 @@ namespace WixToolsetTest.CoreIntegration
428
429 var builtFiles = Directory.GetFiles(Path.Combine(baseFolder, @"bin"));
430
431 - Assert.Equal(new[]{
431 + WixAssert.CompareLineByLine(new[]{
432 "test.wixlib"
433 }, builtFiles.Select(Path.GetFileName).ToArray());
434 }
@@ -573,7 +573,7 @@ namespace WixToolsetTest.CoreIntegration
573 Assert.Equal(@"candle.exe", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
574
575 var msiAssemblyNameSymbols = section.Symbols.OfType<MsiAssemblyNameSymbol>();
576 - Assert.Equal(new[]
576 + WixAssert.CompareLineByLine(new[]
577 {
578 "culture",
579 "fileVersion",
@@ -583,7 +583,7 @@ namespace WixToolsetTest.CoreIntegration
583 "version"
584 }, msiAssemblyNameSymbols.OrderBy(a => a.Name).Select(a => a.Name).ToArray());
585
586 - Assert.Equal(new[]
586 + WixAssert.CompareLineByLine(new[]
587 {
588 "neutral",
589 "3.11.11810.0",
@@ -630,7 +630,7 @@ namespace WixToolsetTest.CoreIntegration
630 Assert.Equal(@"candle.exe", fileSymbol[FileSymbolFields.Source].PreviousValue.AsPath().Path);
631
632 var msiAssemblyNameSymbols = section.Symbols.OfType<MsiAssemblyNameSymbol>();
633 - Assert.Equal(new[]
633 + WixAssert.CompareLineByLine(new[]
634 {
635 "culture",
636 "fileVersion",
@@ -639,7 +639,7 @@ namespace WixToolsetTest.CoreIntegration
639 "version"
640 }, msiAssemblyNameSymbols.OrderBy(a => a.Name).Select(a => a.Name).ToArray());
641
642 - Assert.Equal(new[]
642 + WixAssert.CompareLineByLine(new[]
643 {
644 "neutral",
645 "2.0.5805.0",
@@ -782,13 +782,13 @@ namespace WixToolsetTest.CoreIntegration
782 var section = intermediate.Sections.Single();
783
784 var progids = section.Symbols.OfType<ProgIdSymbol>().OrderBy(symbol => symbol.ProgId).ToList();
785 - Assert.Equal(new[]
785 + WixAssert.CompareLineByLine(new[]
786 {
787 "Foo.File.hol",
788 "Foo.File.hol.15"
789 }, progids.Select(p => p.ProgId).ToArray());
790
791 - Assert.Equal(new[]
791 + WixAssert.CompareLineByLine(new[]
792 {
793 "Foo.File.hol.15",
794 null
@@ -823,20 +823,20 @@ namespace WixToolsetTest.CoreIntegration
823 Assert.Equal("I1", substorage.Name);
824
825 var data = substorage.Data;
826 - Assert.Equal(new[]
826 + WixAssert.CompareLineByLine(new[]
827 {
828 "_SummaryInformation",
829 "Property",
830 "Upgrade"
831 }, data.Tables.Select(t => t.Name).ToArray());
832
833 - Assert.Equal(new[]
833 + WixAssert.CompareLineByLine(new[]
834 {
835 "INSTANCEPROPERTY\tI1",
836 "ProductName\tMsiPackage (Instance 1)",
837 }, JoinRows(data.Tables["Property"]));
838
839 - Assert.Equal(new[]
839 + WixAssert.CompareLineByLine(new[]
840 {
841 "{047730A5-30FE-4A62-A520-DA9381B8226A}\t\t1.0.0.0\t1033\t1\t\tWIX_UPGRADE_DETECTED",
842 "{047730A5-30FE-4A62-A520-DA9381B8226A}\t\t1.0.0.0\t1033\t1\t0\t0",
src/wix/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+1 -1
@@ -488,7 +488,7 @@ namespace WixToolsetTest.CoreIntegration
488
489 Assert.True(File.Exists(msiPath));
490 var results = Query.QueryDatabaseByTable(msiPath, new[] { "Wix4Example" });
491 - Assert.Empty(results["Wix4Example"]);
491 + WixAssert.StringCollectionEmpty(results["Wix4Example"]);
492 }
493 }
494
src/wix/test/WixToolsetTest.CoreIntegration/PatchFixture.cs
+3 -3
@@ -43,14 +43,14 @@ namespace WixToolsetTest.CoreIntegration
43 Assert.Equal("{7D326855-E790-4A94-8611-5351F8321FCA}", doc.Root.Element(PatchNamespace + "TargetProductCode").Value);
44
45 var names = Query.GetSubStorageNames(patchPath);
46 - Assert.Equal(new[] { "#RTM.1", "RTM.1" }, names);
46 + WixAssert.CompareLineByLine(new[] { "#RTM.1", "RTM.1" }, names);
47
48 var cab = Path.Combine(tempFolder, "foo.cab");
49 Query.ExtractStream(patchPath, "foo.cab", cab);
50 Assert.True(File.Exists(cab));
51
52 var files = Query.GetCabinetFiles(cab);
53 - Assert.Equal(new[] { "a.txt", "b.txt" }, files.Select(f => f.Name).ToArray());
53 + WixAssert.CompareLineByLine(new[] { "a.txt", "b.txt" }, files.Select(f => f.Name).ToArray());
54 }
55 }
56
@@ -75,7 +75,7 @@ namespace WixToolsetTest.CoreIntegration
75 Assert.Equal("{7D326855-E790-4A94-8611-5351F8321FCA}", doc.Root.Element(PatchNamespace + "TargetProductCode").Value);
76
77 var names = Query.GetSubStorageNames(patchPath);
78 - Assert.Equal(new[] { "#RTM.1", "RTM.1" }, names);
78 + WixAssert.CompareLineByLine(new[] { "#RTM.1", "RTM.1" }, names);
79
80 var cab = Path.Combine(tempFolder, "foo.cab");
81 Query.ExtractStream(patchPath, "foo.cab", cab);
src/wix/test/WixToolsetTest.CoreIntegration/WixlibFixture.cs
+2 -2
@@ -308,8 +308,8 @@ namespace WixToolsetTest.CoreIntegration
308 Assert.Equal(@"other.txt", fileSymbols[1][FileSymbolFields.Source].PreviousValue.AsPath().Path);
309
310 var examples = section.Symbols.Where(t => t.Definition.Type == SymbolDefinitionType.MustBeFromAnExtension).ToArray();
311 - Assert.Equal(new string[] { "Foo", "Other" }, examples.Select(t => t.Id?.Id).ToArray());
312 - Assert.Equal(new[] { "Bar", "Value" }, examples.Select(t => t[0].AsString()).ToArray());
311 + WixAssert.CompareLineByLine(new string[] { "Foo", "Other" }, examples.Select(t => t.Id?.Id).ToArray());
312 + WixAssert.CompareLineByLine(new[] { "Bar", "Value" }, examples.Select(t => t[0].AsString()).ToArray());
313 }
314 }
315 }
src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs
+11 -11
@@ -29,8 +29,8 @@ namespace WixToolsetTest.Sdk
29 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath);
30 result.AssertSuccess();
31
32 - var warnings = result.Output.Where(line => line.Contains(": warning"));
33 - Assert.Empty(warnings);
32 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
33 + WixAssert.StringCollectionEmpty(warnings);
34
35 var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
36 .Select(s => s.Substring(baseFolder.Length + 1))
@@ -62,8 +62,8 @@ namespace WixToolsetTest.Sdk
62 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath);
63 result.AssertSuccess();
64
65 - var warnings = result.Output.Where(line => line.Contains(": warning"));
66 - Assert.Empty(warnings);
65 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
66 + WixAssert.StringCollectionEmpty(warnings);
67
68 var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
69 .Select(s => s.Substring(baseFolder.Length + 1))
@@ -96,8 +96,8 @@ namespace WixToolsetTest.Sdk
96 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath);
97 result.AssertSuccess();
98
99 - var warnings = result.Output.Where(line => line.Contains(": warning"));
100 - Assert.Empty(warnings);
99 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
100 + WixAssert.StringCollectionEmpty(warnings);
101
102 var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
103 .Select(s => s.Substring(baseFolder.Length + 1))
@@ -166,8 +166,8 @@ namespace WixToolsetTest.Sdk
166 var result = MsbuildUtilities.BuildProject(buildSystem, projectPath);
167 result.AssertSuccess();
168
169 - var warnings = result.Output.Where(line => line.Contains(": warning"));
170 - Assert.Empty(warnings);
169 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
170 + WixAssert.StringCollectionEmpty(warnings);
171
172 var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
173 .Select(s => s.Substring(baseFolder.Length + 1))
@@ -318,8 +318,8 @@ namespace WixToolsetTest.Sdk
318 });
319 result.AssertSuccess();
320
321 - var warnings = result.Output.Where(line => line.Contains(": warning"));
322 - Assert.Empty(warnings);
321 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
322 + WixAssert.StringCollectionEmpty(warnings);
323 }
324 }
325
@@ -409,7 +409,7 @@ namespace WixToolsetTest.Sdk
409 .Where(s => !allowedFiles.Contains(s))
410 .OrderBy(s => s)
411 .ToArray();
412 - Assert.Empty(remainingPaths);
412 + WixAssert.StringCollectionEmpty(remainingPaths);
413 }
414 }
415
src/wix/test/WixToolsetTest.Sdk/MsbuildHeatFixture.cs
+15 -15
@@ -36,15 +36,15 @@ namespace WixToolsetTest.Sdk
36 var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem, true);
37 Assert.Single(heatCommandLines);
38
39 - var warnings = result.Output.Where(line => line.Contains(": warning"));
40 - Assert.Empty(warnings);
39 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
40 + WixAssert.StringCollectionEmpty(warnings);
41
42 var generatedFilePath = Path.Combine(intermediateFolder, "x86", "Release", "_ProductComponents_INSTALLFOLDER_HeatFilePackage.wixproj_file.wxs");
43 Assert.True(File.Exists(generatedFilePath));
44
45 var generatedContents = File.ReadAllText(generatedFilePath);
46 var testXml = generatedContents.GetTestXml();
47 - Assert.Equal(@"<Wix>" +
47 + WixAssert.StringEqual(@"<Wix>" +
48 "<Fragment>" +
49 "<DirectoryRef Id='INSTALLFOLDER'>" +
50 "<Component Id='HeatFilePackage.wixproj' Guid='*'>" +
@@ -92,15 +92,15 @@ namespace WixToolsetTest.Sdk
92 var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem, true);
93 Assert.Equal(2, heatCommandLines.Count());
94
95 - var warnings = result.Output.Where(line => line.Contains(": warning"));
96 - Assert.Empty(warnings);
95 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
96 + WixAssert.StringCollectionEmpty(warnings);
97
98 var generatedFilePath = Path.Combine(intermediateFolder, "x86", "Release", "_TxtProductComponents_INSTALLFOLDER_MyProgram.txt_file.wxs");
99 Assert.True(File.Exists(generatedFilePath));
100
101 var generatedContents = File.ReadAllText(generatedFilePath);
102 var testXml = generatedContents.GetTestXml();
103 - Assert.Equal("<Wix>" +
103 + WixAssert.StringEqual("<Wix>" +
104 "<Fragment>" +
105 "<DirectoryRef Id='INSTALLFOLDER'>" +
106 "<Component Id='MyProgram.txt' Guid='*'>" +
@@ -120,7 +120,7 @@ namespace WixToolsetTest.Sdk
120
121 generatedContents = File.ReadAllText(generatedFilePath);
122 testXml = generatedContents.GetTestXml();
123 - Assert.Equal("<Wix>" +
123 + WixAssert.StringEqual("<Wix>" +
124 "<Fragment>" +
125 "<DirectoryRef Id='INSTALLFOLDER'>" +
126 "<Component Id='MyProgram.json' Guid='*'>" +
@@ -184,15 +184,15 @@ namespace WixToolsetTest.Sdk
184 Assert.DoesNotContain("-usetoolsversion", heatCommandLine);
185 }
186
187 - var warnings = result.Output.Where(line => line.Contains(": warning"));
188 - Assert.Empty(warnings);
187 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
188 + WixAssert.StringCollectionEmpty(warnings);
189
190 var generatedFilePath = Path.Combine(intermediateFolder, "x86", "Release", "_ToolsVersion4Cs.wxs");
191 Assert.True(File.Exists(generatedFilePath));
192
193 var generatedContents = File.ReadAllText(generatedFilePath);
194 var testXml = generatedContents.GetTestXml();
195 - Assert.Equal(@"<Wix>" +
195 + WixAssert.StringEqual(@"<Wix>" +
196 "<Fragment>" +
197 "<DirectoryRef Id='ToolsVersion4Cs.Binaries'>" +
198 "<Component Id='ToolsVersion4Cs.Binaries.ToolsVersion4Cs.dll' Guid='*'>" +
@@ -253,7 +253,7 @@ namespace WixToolsetTest.Sdk
253 var section = intermediate.Sections.Single();
254
255 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
256 - Assert.Equal(Path.Combine(fs.BaseFolder, "ToolsVersion4Cs", "bin", "Release\\\\ToolsVersion4Cs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path);
256 + WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "ToolsVersion4Cs", "bin", "Release\\\\ToolsVersion4Cs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path);
257 }
258 }
259
@@ -301,15 +301,15 @@ namespace WixToolsetTest.Sdk
301 Assert.DoesNotContain("-usetoolsversion", heatCommandLine);
302 }
303
304 - var warnings = result.Output.Where(line => line.Contains(": warning"));
305 - Assert.Empty(warnings);
304 + var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray();
305 + WixAssert.StringCollectionEmpty(warnings);
306
307 var generatedFilePath = Path.Combine(intermediateFolder, "x86", "Release", "_SdkStyleCs.wxs");
308 Assert.True(File.Exists(generatedFilePath));
309
310 var generatedContents = File.ReadAllText(generatedFilePath);
311 var testXml = generatedContents.GetTestXml();
312 - Assert.Equal(@"<Wix>" +
312 + WixAssert.StringEqual(@"<Wix>" +
313 "<Fragment>" +
314 "<DirectoryRef Id='SdkStyleCs.Binaries'>" +
315 "<Component Id='SdkStyleCs.Binaries.SdkStyleCs.dll' Guid='*'>" +
@@ -368,7 +368,7 @@ namespace WixToolsetTest.Sdk
368 var section = intermediate.Sections.Single();
369
370 var fileSymbol = section.Symbols.OfType<FileSymbol>().Single();
371 - Assert.Equal(Path.Combine(fs.BaseFolder, "SdkStyleCs", "bin", "Release", "netstandard2.0\\\\SdkStyleCs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path);
371 + WixAssert.StringEqual(Path.Combine(fs.BaseFolder, "SdkStyleCs", "bin", "Release", "netstandard2.0\\\\SdkStyleCs.dll"), fileSymbol[FileSymbolFields.Source].AsPath()?.Path);
372 }
373 }
374 }