main
cs 56 lines 2.5 KB
Raw
1 // 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.
2
3 namespace WixToolsetTest.Converters
4 {
5 using System;
6 using System.Linq;
7 using System.Xml.Linq;
8 using WixInternal.TestSupport;
9 using WixToolset.Converters;
10 using WixToolsetTest.Converters.Mocks;
11 using Xunit;
12
13 public class ExePackageFixture : BaseConverterFixture
14 {
15 [Fact]
16 public void CanConvertExePackageCommandToArguments()
17 {
18 var parse = String.Join(Environment.NewLine,
19 "<Wix xmlns='http://wixtoolset.org/schemas/v4/wxs'>",
20 " <Fragment>",
21 " <PackageGroup Id='exe'>",
22 " <ExePackage InstallCommand='-install' RepairCommand='-repair' UninstallCommand='-uninstall' SourceFile='test.exe' />",
23 " </PackageGroup>",
24 " </Fragment>",
25 "</Wix>");
26
27 var expected = new[]
28 {
29 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
30 " <Fragment>",
31 " <PackageGroup Id=\"exe\">",
32 " <ExePackage SourceFile=\"test.exe\" InstallArguments=\"-install\" RepairArguments=\"-repair\" UninstallArguments=\"-uninstall\" />",
33 " </PackageGroup>",
34 " </Fragment>",
35 "</Wix>"
36 };
37
38 var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo);
39
40 var messaging = new MockMessaging();
41 var converter = new WixConverter(messaging, 2, null, null);
42
43 var errors = converter.ConvertDocument(document);
44 Assert.Equal(3, errors);
45
46 var actualLines = UnformattedDocumentLines(document);
47 WixAssert.CompareLineByLine(new[]
48 {
49 "[Converted] The ExePackage element InstallCommand attribute has been renamed InstallArguments. (RenameExePackageCommandToArguments)",
50 "[Converted] The ExePackage element RepairCommand attribute has been renamed RepairArguments. (RenameExePackageCommandToArguments)",
51 "[Converted] The ExePackage element UninstallCommand attribute has been renamed UninstallArguments. (RenameExePackageCommandToArguments)",
52 }, messaging.Messages.Select(m => m.ToString()).ToArray());
53 WixAssert.CompareLineByLine(expected, actualLines);
54 }
55 }
56 }