Skip to content

Commit

Permalink
Extract object fields with modularization GUIDs.
Browse files Browse the repository at this point in the history
  • Loading branch information
barnson committed Jun 30, 2023
1 parent ddae99c commit e53c658
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 4 deletions.
21 changes: 19 additions & 2 deletions src/internal/WixInternal.TestSupport/XunitExtensions/WixAssert.cs
Expand Up @@ -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;
Expand All @@ -30,8 +31,8 @@ public static void CompareLineByLine(string[] expectedLines, string[] actualLine

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());
}
Expand All @@ -44,6 +45,22 @@ public static void CompareXml(string expectedPath, string actualPath)
CompareXml(expectedDoc, actualDoc);
}

private static IEnumerable<string> 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 "<SourceFile>";
default:
return attribute.Value;
}
}

/// <summary>
/// Dynamically skips the test.
/// Requires that the test was marked with a fact attribute derived from <see cref="WixInternal.TestSupport.XunitExtensions.SkippableFactAttribute" />
Expand Down
Expand Up @@ -146,6 +146,7 @@ private string ProcessTables(WindowsInstallerData output, List<string> exportedF
{
View validationView = null;
string modularizationGuid = null;
string modularizationSuffix = null;

try
{
Expand Down Expand Up @@ -204,6 +205,11 @@ private string ProcessTables(WindowsInstallerData output, List<string> exportedF
{
source = Path.Combine(this.ExportBasePath, tableName, row.GetPrimaryKey('.'));

if (!String.IsNullOrEmpty(modularizationSuffix))
{
source += modularizationSuffix;
}

Directory.CreateDirectory(Path.Combine(this.ExportBasePath, tableName));

using (var fs = this.FileSystem.OpenFile(null, source, FileMode.Create, FileAccess.Write, FileShare.None))
Expand Down Expand Up @@ -238,6 +244,8 @@ private string ProcessTables(WindowsInstallerData output, List<string> exportedF
if (null == modularizationGuid)
{
var match = Modularization.Match(value);
modularizationSuffix = match.Value;

if (match.Success)
{
modularizationGuid = String.Concat('{', match.Value.Substring(1).Replace('_', '-'), '}');
Expand Down
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Module Codepage="65001" Id="MergeModule1" Language="1033" Version="1.0.0.0" InstallerVersion="200" Guid="{F844F0E3-8CB4-4A0F-973E-31C4F9338382}">
<Binary Id="Binary1" SourceFile="Expected.wxs" />
<StandardDirectory Id="ProgramFilesFolder">
<Directory Id="WixTestDir" ShortName="7bhhvaai" Name="WiX Toolset Test Directory">
<Component Id="ModuleComponent1" Guid="{D86EC5A2-9576-4699-BDC3-00586FF72CBE}" Bitness="always32">
Expand All @@ -20,4 +21,4 @@
</Component>
</StandardDirectory>
</Module>
</Wix>
</Wix>
Binary file not shown.

0 comments on commit e53c658

Please sign in to comment.