From e53c658973fa0ece0b64e7be7ca9ebcb7e05044a Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 29 Jun 2023 21:16:35 -0400 Subject: Extract object fields with modularization GUIDs. --- .../XunitExtensions/WixAssert.cs | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/internal/WixInternal.TestSupport') diff --git a/src/internal/WixInternal.TestSupport/XunitExtensions/WixAssert.cs b/src/internal/WixInternal.TestSupport/XunitExtensions/WixAssert.cs index 66f831a1..083e34f5 100644 --- a/src/internal/WixInternal.TestSupport/XunitExtensions/WixAssert.cs +++ b/src/internal/WixInternal.TestSupport/XunitExtensions/WixAssert.cs @@ -4,6 +4,7 @@ namespace WixInternal.TestSupport { using System; using System.Collections.Generic; + using System.IO; using System.Linq; using System.Text; using System.Xml.Linq; @@ -30,8 +31,8 @@ namespace WixInternal.TestSupport public static void CompareXml(XContainer xExpected, XContainer xActual) { - var expecteds = xExpected.Descendants().Select(x => $"{x.Name.LocalName}:{String.Join(",", x.Attributes().OrderBy(a => a.Name.LocalName).Select(a => $"{a.Name.LocalName}={a.Value}"))}"); - var actuals = xActual.Descendants().Select(x => $"{x.Name.LocalName}:{String.Join(",", x.Attributes().OrderBy(a => a.Name.LocalName).Select(a => $"{a.Name.LocalName}={a.Value}"))}"); + var expecteds = ComparableElements(xExpected); + var actuals = ComparableElements(xActual); CompareLineByLine(expecteds.OrderBy(s => s).ToArray(), actuals.OrderBy(s => s).ToArray()); } @@ -44,6 +45,22 @@ namespace WixInternal.TestSupport CompareXml(expectedDoc, actualDoc); } + private static IEnumerable ComparableElements(XContainer container) + { + return container.Descendants().Select(x => $"{x.Name.LocalName}:{String.Join(",", x.Attributes().OrderBy(a => a.Name.LocalName).Select(a => $"{a.Name.LocalName}={ComparableAttribute(a)}"))}"); + } + + private static string ComparableAttribute(XAttribute attribute) + { + switch (attribute.Name.LocalName) + { + case "SourceFile": + return ""; + default: + return attribute.Value; + } + } + /// /// Dynamically skips the test. /// Requires that the test was marked with a fact attribute derived from -- cgit v1.2.3-55-g6feb