Multiple extension support in unit tests
chris_bednarski committed
Jul 22, 2023 at 09:01 UTC
5e9901d7be4953333b0f2c3a25e8eb484d5673d6
4 files changed
+31
-13
src/internal/WixInternal.TestSupport/Builder.cs
+25
-10
@@ -11,14 +11,29 @@ namespace WixInternal.TestSupport
11
public Builder(string sourceFolder, Type extensionType = null, string[] bindPaths = null, string outputFile = null)
12
{
13
this.SourceFolder = sourceFolder;
14
- this.ExtensionType = extensionType;
14
+ if (extensionType != null)
15
+ {
16
+ this.ExtensionTypes = new Type[] { extensionType };
17
+ }
18
+ else
19
+ {
20
+ this.ExtensionTypes = new Type[] { };
21
+ }
22
+ this.BindPaths = bindPaths;
23
+ this.OutputFile = outputFile ?? "test.msi";
24
+ }
25
+
26
+ public Builder(string sourceFolder, Type[] extensionTypes, string[] bindPaths = null, string outputFile = null)
27
+ {
28
+ this.SourceFolder = sourceFolder;
29
+ this.ExtensionTypes = extensionTypes;
30
this.BindPaths = bindPaths;
31
this.OutputFile = outputFile ?? "test.msi";
32
}
33
34
public string[] BindPaths { get; set; }
35
21
- public Type ExtensionType { get; set; }
36
+ public Type[] ExtensionTypes { get; set; }
37
38
public string OutputFile { get; set; }
39
@@ -46,10 +61,10 @@ namespace WixInternal.TestSupport
61
"-intermediateFolder", intermediateFolder,
62
};
63
49
- if (this.ExtensionType != null)
64
+ foreach (var ext in this.ExtensionTypes)
65
{
66
args.Add("-ext");
52
- args.Add(Path.GetFullPath(new Uri(this.ExtensionType.Assembly.CodeBase).LocalPath));
67
+ args.Add(Path.GetFullPath(new Uri(ext.Assembly.CodeBase).LocalPath));
68
}
69
70
args.AddRange(sourceFiles);
@@ -108,10 +123,10 @@ namespace WixInternal.TestSupport
123
"-intermediateFolder", intermediateFolder,
124
};
125
111
- if (this.ExtensionType != null)
126
+ foreach (var ext in this.ExtensionTypes)
127
{
128
firstBuildArgs.Add("-ext");
114
- firstBuildArgs.Add(Path.GetFullPath(new Uri(this.ExtensionType.Assembly.CodeBase).LocalPath));
129
+ firstBuildArgs.Add(Path.GetFullPath(new Uri(ext.Assembly.CodeBase).LocalPath));
130
}
131
132
firstBuildArgs.AddRange(sourceFiles);
@@ -140,10 +155,10 @@ namespace WixInternal.TestSupport
155
"-o", decompilePath
156
};
157
143
- if (this.ExtensionType != null)
158
+ foreach (var ext in this.ExtensionTypes)
159
{
160
decompileArgs.Add("-ext");
146
- decompileArgs.Add(Path.GetFullPath(new Uri(this.ExtensionType.Assembly.CodeBase).LocalPath));
161
+ decompileArgs.Add(Path.GetFullPath(new Uri(ext.Assembly.CodeBase).LocalPath));
162
}
163
164
decompileFunc(decompileArgs.ToArray());
@@ -157,10 +172,10 @@ namespace WixInternal.TestSupport
172
"-intermediateFolder", decompileIntermediateFolder
173
};
174
160
- if (this.ExtensionType != null)
175
+ foreach (var ext in this.ExtensionTypes)
176
{
177
secondBuildArgs.Add("-ext");
163
- secondBuildArgs.Add(Path.GetFullPath(new Uri(this.ExtensionType.Assembly.CodeBase).LocalPath));
178
+ secondBuildArgs.Add(Path.GetFullPath(new Uri(ext.Assembly.CodeBase).LocalPath));
179
}
180
181
secondBuildArgs.Add("-bindpath");
src/wix/test/WixToolsetTest.CoreIntegration/DependencyExtensionFixture.cs
+2
-1
@@ -2,6 +2,7 @@
2
3
namespace WixToolsetTest.CoreIntegration
4
{
5
+ using System;
6
using System.Collections.Generic;
7
using System.IO;
8
using System.Linq;
@@ -152,7 +153,7 @@ namespace WixToolsetTest.CoreIntegration
153
public void CanBuildPackageUsingProvides()
154
{
155
var folder = TestData.Get(@"TestData\UsingProvides");
155
- var build = new Builder(folder, null, new[] { folder });
156
+ var build = new Builder(folder, new Type[] { }, new[] { folder });
157
158
var results = build.BuildAndQuery(Build, "Wix4DependencyProvider");
159
WixAssert.CompareLineByLine(new[]
src/wix/test/WixToolsetTest.CoreIntegration/SoftwareTagFixture.cs
+2
-1
@@ -2,6 +2,7 @@
2
3
namespace WixToolsetTest.CoreIntegration
4
{
5
+ using System;
6
using System.IO;
7
using System.Linq;
8
using System.Xml.Linq;
@@ -19,7 +20,7 @@ namespace WixToolsetTest.CoreIntegration
20
public void CanBuildPackageWithTag()
21
{
22
var folder = TestData.Get(@"TestData\ProductTag");
22
- var build = new Builder(folder, null, new[] { folder });
23
+ var build = new Builder(folder, new Type[] { }, new[] { folder });
24
25
var results = build.BuildAndQuery(Build, "File", "SoftwareIdentificationTag");
26
src/wix/test/WixToolsetTest.CoreIntegration/UpgradeFixture.cs
+2
-1
@@ -2,6 +2,7 @@
2
3
namespace WixToolsetTest.CoreIntegration
4
{
5
+ using System;
6
using System.IO;
7
using System.Linq;
8
using WixInternal.TestSupport;
@@ -45,7 +46,7 @@ namespace WixToolsetTest.CoreIntegration
46
public void MajorUpgradeDowngradeMessagePopulatesRowsAsExpected()
47
{
48
var folder = TestData.Get("TestData", "Upgrade");
48
- var build = new Builder(folder, null, new[] { folder });
49
+ var build = new Builder(folder, new Type[] { }, new[] { folder });
50
51
var results = build.BuildAndQuery(Build, "Upgrade", "LaunchCondition");
52
WixAssert.CompareLineByLine(new[]