From 8185b8482fe9576281a3a89947e54182e213a24b Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 3 Apr 2020 14:06:49 +1000 Subject: Add QueryDatabaseByTable. --- src/WixBuildTools.TestSupport/Query.cs | 31 +++++++++++++++++++++++++++---- 1 file 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 public static string[] QueryDatabase(string path, string[] tables) { var results = new List(); + var resultsByTable = QueryDatabaseByTable(path, tables); + var sortedTables = tables.ToList(); + sortedTables.Sort(); + foreach (var tableName in sortedTables) + { + var rows = resultsByTable[tableName]; + rows?.ForEach(r => results.Add($"{tableName}:{r}")); + } + return results.ToArray(); + } + + /// + /// Returns rows from requested tables formatted to facilitate testing. + /// If the table did not exist in the database, its list will be null. + /// + /// + /// + /// + public static Dictionary> QueryDatabaseByTable(string path, string[] tables) + { + var results = new Dictionary>(); if (tables?.Length > 0) { @@ -25,9 +46,12 @@ namespace WixBuildTools.TestSupport { if (!db.IsTablePersistent(table)) { + results.Add(table, null); continue; } + var rows = new List(); + results.Add(table, rows); using (var view = db.OpenView("SELECT * FROM `{0}`", table)) { view.Execute(); @@ -36,7 +60,6 @@ namespace WixBuildTools.TestSupport while ((record = view.Fetch()) != null) { sb.Clear(); - sb.AppendFormat("{0}:", table); using (record) { @@ -51,15 +74,15 @@ namespace WixBuildTools.TestSupport } } - results.Add(sb.ToString()); + rows.Add(sb.ToString()); } } + rows.Sort(); } } } - results.Sort(); - return results.ToArray(); + return results; } public static CabFileInfo[] GetCabinetFiles(string path) -- cgit v1.2.3-55-g6feb