aboutsummaryrefslogtreecommitdiff
path: root/src/WixTestTools/PackageVerifier.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixTestTools/PackageVerifier.cs')
-rw-r--r--src/WixTestTools/PackageVerifier.cs30
1 files changed, 9 insertions, 21 deletions
diff --git a/src/WixTestTools/PackageVerifier.cs b/src/WixTestTools/PackageVerifier.cs
index 073e83b0..2f42dd21 100644
--- a/src/WixTestTools/PackageVerifier.cs
+++ b/src/WixTestTools/PackageVerifier.cs
@@ -5,7 +5,6 @@ namespace WixTestTools
5 using System; 5 using System;
6 using System.IO; 6 using System.IO;
7 using System.Linq; 7 using System.Linq;
8 using WixToolset.Data;
9 using WixToolset.Data.WindowsInstaller; 8 using WixToolset.Data.WindowsInstaller;
10 using WixToolset.Data.WindowsInstaller.Rows; 9 using WixToolset.Data.WindowsInstaller.Rows;
11 using Xunit; 10 using Xunit;
@@ -14,28 +13,18 @@ namespace WixTestTools
14 { 13 {
15 public string PackagePdb { get; } 14 public string PackagePdb { get; }
16 15
17 private WindowsInstallerData WiData { get; set; } 16 private bool IsX64 { get; }
18 17
19 public string GetInstalledFilePath(string filename) 18 private WindowsInstallerData WiData { get; }
20 {
21 return this.TestContext.GetTestInstallFolder(Path.Combine(this.GetInstallFolderName(), filename));
22 }
23 19
24 private WindowsInstallerData GetWindowsInstallerData() 20 public string GetInstalledFilePath(string filename)
25 { 21 {
26 if (this.WiData == null) 22 return this.TestContext.GetTestInstallFolder(this.IsX64, Path.Combine(this.GetInstallFolderName(), filename));
27 {
28 using var wixOutput = WixOutput.Read(this.PackagePdb);
29 this.WiData = WindowsInstallerData.Load(wixOutput);
30 }
31
32 return this.WiData;
33 } 23 }
34 24
35 public string GetInstallFolderName() 25 public string GetInstallFolderName()
36 { 26 {
37 var wiData = this.GetWindowsInstallerData(); 27 var row = this.WiData.Tables["Directory"].Rows.Single(r => r.FieldAsString(0) == "INSTALLFOLDER");
38 var row = wiData.Tables["Directory"].Rows.Single(r => r.FieldAsString(0) == "INSTALLFOLDER");
39 var value = row.FieldAsString(2); 28 var value = row.FieldAsString(2);
40 var longNameIndex = value.IndexOf('|') + 1; 29 var longNameIndex = value.IndexOf('|') + 1;
41 if (longNameIndex > 0) 30 if (longNameIndex > 0)
@@ -47,8 +36,7 @@ namespace WixTestTools
47 36
48 public string GetProperty(string name) 37 public string GetProperty(string name)
49 { 38 {
50 var wiData = this.GetWindowsInstallerData(); 39 var row = this.WiData.Tables["Property"].Rows.Cast<PropertyRow>().Single(r => r.Property == name);
51 var row = wiData.Tables["Property"].Rows.Cast<PropertyRow>().Single(r => r.Property == name);
52 return row.Value; 40 return row.Value;
53 } 41 }
54 42
@@ -67,7 +55,7 @@ namespace WixTestTools
67 55
68 public void DeleteTestRegistryValue(string name) 56 public void DeleteTestRegistryValue(string name)
69 { 57 {
70 using (var root = this.TestContext.GetTestRegistryRoot()) 58 using (var root = this.TestContext.GetTestRegistryRoot(this.IsX64))
71 { 59 {
72 Assert.NotNull(root); 60 Assert.NotNull(root);
73 root.DeleteValue(name); 61 root.DeleteValue(name);
@@ -76,13 +64,13 @@ namespace WixTestTools
76 64
77 public void VerifyTestRegistryRootDeleted() 65 public void VerifyTestRegistryRootDeleted()
78 { 66 {
79 using var testRegistryRoot = this.TestContext.GetTestRegistryRoot(); 67 using var testRegistryRoot = this.TestContext.GetTestRegistryRoot(this.IsX64);
80 Assert.Null(testRegistryRoot); 68 Assert.Null(testRegistryRoot);
81 } 69 }
82 70
83 public void VerifyTestRegistryValue(string name, string expectedValue) 71 public void VerifyTestRegistryValue(string name, string expectedValue)
84 { 72 {
85 using (var root = this.TestContext.GetTestRegistryRoot()) 73 using (var root = this.TestContext.GetTestRegistryRoot(this.IsX64))
86 { 74 {
87 Assert.NotNull(root); 75 Assert.NotNull(root);
88 var actualValue = root.GetValue(name) as string; 76 var actualValue = root.GetValue(name) as string;