From 4d4e7acb6255676337b0f4f0ee4d590ba31357b7 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 30 Sep 2019 13:02:53 +1000 Subject: Move Query method in Builder to its own class and make it public. Sort results. Skip tables that don't exist. --- src/WixBuildTools.TestSupport/Builder.cs | 50 ++------------------------ src/WixBuildTools.TestSupport/Query.cs | 62 ++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 48 deletions(-) create mode 100644 src/WixBuildTools.TestSupport/Query.cs diff --git a/src/WixBuildTools.TestSupport/Builder.cs b/src/WixBuildTools.TestSupport/Builder.cs index 62439ff7..aae9681a 100644 --- a/src/WixBuildTools.TestSupport/Builder.cs +++ b/src/WixBuildTools.TestSupport/Builder.cs @@ -1,12 +1,10 @@ -// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. namespace WixBuildTools.TestSupport { using System; using System.Collections.Generic; using System.IO; - using System.Text; - using WixToolset.Dtf.WindowsInstaller; public class Builder { @@ -62,52 +60,8 @@ namespace WixBuildTools.TestSupport buildFunc(args.ToArray()); - return this.Query(outputPath, tables); + return Query.QueryDatabase(outputPath, tables); } } - - private string[] Query(string path, string[] tables) - { - var results = new List(); - - if (tables?.Length > 0) - { - var sb = new StringBuilder(); - using (var db = new Database(path)) - { - foreach (var table in tables) - { - using (var view = db.OpenView($"SELECT * FROM `{table}`")) - { - view.Execute(); - - Record record; - while ((record = view.Fetch()) != null) - { - sb.Clear(); - sb.AppendFormat("{0}:", table); - - using (record) - { - for (var i = 0; i < record.FieldCount; ++i) - { - if (i > 0) - { - sb.Append("\t"); - } - - sb.Append(record[i + 1]?.ToString()); - } - } - - results.Add(sb.ToString()); - } - } - } - } - } - - return results.ToArray(); - } } } diff --git a/src/WixBuildTools.TestSupport/Query.cs b/src/WixBuildTools.TestSupport/Query.cs new file mode 100644 index 00000000..a5883067 --- /dev/null +++ b/src/WixBuildTools.TestSupport/Query.cs @@ -0,0 +1,62 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +namespace WixBuildTools.TestSupport +{ + using System; + using System.Collections.Generic; + using System.Text; + using WixToolset.Dtf.WindowsInstaller; + + public class Query + { + public static string[] QueryDatabase(string path, string[] tables) + { + var results = new List(); + + if (tables?.Length > 0) + { + var sb = new StringBuilder(); + using (var db = new Database(path)) + { + foreach (var table in tables) + { + if (!db.IsTablePersistent(table)) + { + continue; + } + + using (var view = db.OpenView($"SELECT * FROM `{table}`")) + { + view.Execute(); + + Record record; + while ((record = view.Fetch()) != null) + { + sb.Clear(); + sb.AppendFormat("{0}:", table); + + using (record) + { + for (var i = 0; i < record.FieldCount; ++i) + { + if (i > 0) + { + sb.Append("\t"); + } + + sb.Append(record[i + 1]?.ToString()); + } + } + + results.Add(sb.ToString()); + } + } + } + } + } + + results.Sort(); + return results.ToArray(); + } + } +} -- cgit v1.2.3-55-g6feb