aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
new file mode 100644
index 00000000..498b1492
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
@@ -0,0 +1,89 @@
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
3namespace WixToolsetTest.CoreIntegration
4{
5 using System.IO;
6 using System.Linq;
7 using WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage;
9 using WixToolset.Data;
10 using WixToolset.Data.Tuples;
11 using Xunit;
12
13 public class WixiplFixture
14 {
15 [Fact]
16 public void CanBuildSingleFile()
17 {
18 var folder = TestData.Get(@"TestData\SingleFile");
19
20 using (var fs = new DisposableFileSystem())
21 {
22 var baseFolder = fs.GetFolder();
23 var intermediateFolder = Path.Combine(baseFolder, "obj");
24
25 var result = WixRunner.Execute(new[]
26 {
27 "build",
28 Path.Combine(folder, "Package.wxs"),
29 Path.Combine(folder, "PackageComponents.wxs"),
30 "-intermediateFolder", intermediateFolder,
31 "-o", Path.Combine(intermediateFolder, @"test.wixipl")
32 }, out var messagesCompile);
33 Assert.Equal(0, result);
34
35 result = WixRunner.Execute(new[]
36 {
37 "build",
38 Path.Combine(intermediateFolder, @"test.wixipl"),
39 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
40 "-bindpath", Path.Combine(folder, "data"),
41 "-intermediateFolder", intermediateFolder,
42 "-o", Path.Combine(baseFolder, @"bin\test.msi")
43 }, out var messagesBind);
44 Assert.Equal(0, result);
45
46 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"bin\test.wir"));
47 var section = intermediate.Sections.Single();
48
49 var wixFile = section.Tuples.OfType<WixFileTuple>().Single();
50 Assert.Equal(Path.Combine(folder, @"data\test.txt"), wixFile[WixFileTupleFields.Source].AsPath().Path);
51 Assert.Equal(@"test.txt", wixFile[WixFileTupleFields.Source].PreviousValue.AsPath().Path);
52 }
53 }
54
55 [Fact]
56 public void CannotBuildWithSourceFileAndWixipl()
57 {
58 var folder = TestData.Get(@"TestData\SingleFile");
59
60 using (var fs = new DisposableFileSystem())
61 {
62 var baseFolder = fs.GetFolder();
63 var intermediateFolder = Path.Combine(baseFolder, "obj");
64
65 var result = WixRunner.Execute(new[]
66 {
67 "build",
68 Path.Combine(folder, "Package.wxs"),
69 Path.Combine(folder, "PackageComponents.wxs"),
70 "-intermediateFolder", intermediateFolder,
71 "-o", Path.Combine(intermediateFolder, @"test.wixipl")
72 }, out var messagesCompile);
73 Assert.Equal(0, result);
74
75 result = WixRunner.Execute(new[]
76 {
77 "build",
78 Path.Combine(folder, "Package.wxs"),
79 Path.Combine(intermediateFolder, @"test.wixipl"),
80 "-loc", Path.Combine(folder, "Package.en-us.wxl"),
81 "-bindpath", Path.Combine(folder, "data"),
82 "-intermediateFolder", intermediateFolder,
83 "-o", Path.Combine(baseFolder, @"bin\test.msi")
84 }, out var messagesBind);
85 Assert.Equal((int)ErrorMessages.Ids.WixiplSourceFileIsExclusive, result);
86 }
87 }
88 }
89}