aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-04-03 14:06:49 +1000
committerSean Hall <r.sean.hall@gmail.com>2020-04-03 20:42:53 +1000
commit8185b8482fe9576281a3a89947e54182e213a24b (patch)
tree0d5067ec322f84712d54afe16d78e32200608a32 /src
parentdfa44dcb277235051654fe4e951d957b5e3f9dc6 (diff)
downloadwix-8185b8482fe9576281a3a89947e54182e213a24b.tar.gz
wix-8185b8482fe9576281a3a89947e54182e213a24b.tar.bz2
wix-8185b8482fe9576281a3a89947e54182e213a24b.zip
Add QueryDatabaseByTable.
Diffstat (limited to 'src')
-rw-r--r--src/WixBuildTools.TestSupport/Query.cs31
1 files changed, 27 insertions, 4 deletions
diff --git a/src/WixBuildTools.TestSupport/Query.cs b/src/WixBuildTools.TestSupport/Query.cs
index bbd9f89a..b4e6b7f9 100644
--- a/src/WixBuildTools.TestSupport/Query.cs
+++ b/src/WixBuildTools.TestSupport/Query.cs
@@ -15,6 +15,27 @@ namespace WixBuildTools.TestSupport
15 public static string[] QueryDatabase(string path, string[] tables) 15 public static string[] QueryDatabase(string path, string[] tables)
16 { 16 {
17 var results = new List<string>(); 17 var results = new List<string>();
18 var resultsByTable = QueryDatabaseByTable(path, tables);
19 var sortedTables = tables.ToList();
20 sortedTables.Sort();
21 foreach (var tableName in sortedTables)
22 {
23 var rows = resultsByTable[tableName];
24 rows?.ForEach(r => results.Add($"{tableName}:{r}"));
25 }
26 return results.ToArray();
27 }
28
29 /// <summary>
30 /// Returns rows from requested tables formatted to facilitate testing.
31 /// If the table did not exist in the database, its list will be null.
32 /// </summary>
33 /// <param name="path"></param>
34 /// <param name="tables"></param>
35 /// <returns></returns>
36 public static Dictionary<string, List<string>> QueryDatabaseByTable(string path, string[] tables)
37 {
38 var results = new Dictionary<string, List<string>>();
18 39
19 if (tables?.Length > 0) 40 if (tables?.Length > 0)
20 { 41 {
@@ -25,9 +46,12 @@ namespace WixBuildTools.TestSupport
25 { 46 {
26 if (!db.IsTablePersistent(table)) 47 if (!db.IsTablePersistent(table))
27 { 48 {
49 results.Add(table, null);
28 continue; 50 continue;
29 } 51 }
30 52
53 var rows = new List<string>();
54 results.Add(table, rows);
31 using (var view = db.OpenView("SELECT * FROM `{0}`", table)) 55 using (var view = db.OpenView("SELECT * FROM `{0}`", table))
32 { 56 {
33 view.Execute(); 57 view.Execute();
@@ -36,7 +60,6 @@ namespace WixBuildTools.TestSupport
36 while ((record = view.Fetch()) != null) 60 while ((record = view.Fetch()) != null)
37 { 61 {
38 sb.Clear(); 62 sb.Clear();
39 sb.AppendFormat("{0}:", table);
40 63
41 using (record) 64 using (record)
42 { 65 {
@@ -51,15 +74,15 @@ namespace WixBuildTools.TestSupport
51 } 74 }
52 } 75 }
53 76
54 results.Add(sb.ToString()); 77 rows.Add(sb.ToString());
55 } 78 }
56 } 79 }
80 rows.Sort();
57 } 81 }
58 } 82 }
59 } 83 }
60 84
61 results.Sort(); 85 return results;
62 return results.ToArray();
63 } 86 }
64 87
65 public static CabFileInfo[] GetCabinetFiles(string path) 88 public static CabFileInfo[] GetCabinetFiles(string path)