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
}