@joebigelow / wix / commits / 5e9901d7

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[]