Add failing test for AsString on a number field with 0.
Sean Hall committed
Oct 15, 2019 at 11:12 UTC
aa5a5e492f9a7060720056c27963cf1d06b4737f
4 files changed
+82
-2
src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+32
@@ -680,6 +680,38 @@ namespace WixToolsetTest.CoreIntegration
680
}
681
}
682
683
+ [Fact]
684
+ public void PopulatesTypeLibTableWhenLanguageIsZero()
685
+ {
686
+ var folder = TestData.Get(@"TestData");
687
+
688
+ using (var fs = new DisposableFileSystem())
689
+ {
690
+ var baseFolder = fs.GetFolder();
691
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
692
+ var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
693
+
694
+ var result = WixRunner.Execute(new[]
695
+ {
696
+ "build",
697
+ Path.Combine(folder, "TypeLib", "Language0.wxs"),
698
+ Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
699
+ "-bindpath", Path.Combine(folder, "SingleFile", "data"),
700
+ "-intermediateFolder", intermediateFolder,
701
+ "-o", msiPath
702
+ });
703
+
704
+ result.AssertSuccess();
705
+
706
+ Assert.True(File.Exists(msiPath));
707
+ var results = Query.QueryDatabase(msiPath, new[] { "TypeLib" });
708
+ Assert.Equal(new[]
709
+ {
710
+ "TypeLib:{765BE8EE-BD7F-491E-90D2-C5A972462B50}\t0\tTypeLibComp\t\t\t\tProductFeature\t",
711
+ }, results);
712
+ }
713
+ }
714
+
715
[Fact]
716
public void PopulatesUpgradeTableFromManualUpgrade()
717
{
src/test/WixToolsetTest.CoreIntegration/TestData/TypeLib/Language0.wxs
new
+11
@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3
+ <Fragment>
4
+ <ComponentGroup Id="ProductComponents">
5
+ <Component Id="TypeLibComp" Directory="INSTALLFOLDER" Guid="E85CB46B-BC22-4943-B678-5E399CBE53A6">
6
+ <File Source="test.txt" Name="TypeLibComp.txt"></File>
7
+ <TypeLib Id="765BE8EE-BD7F-491E-90D2-C5A972462B50" Advertise="yes" Language="0" />
8
+ </Component>
9
+ </ComponentGroup>
10
+ </Fragment>
11
+</Wix>
src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+1
@@ -114,6 +114,7 @@
114
<Content Include="TestData\OverridableActions\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
115
<Content Include="TestData\OverridableActions\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
116
<Content Include="TestData\TextStyle\ColorNull.wxs" CopyToOutputDirectory="PreserveNewest" />
117
+ <Content Include="TestData\TypeLib\Language0.wxs" CopyToOutputDirectory="PreserveNewest" />
118
<Content Include="TestData\Wixipl\data\test.txt" CopyToOutputDirectory="PreserveNewest" />
119
<Content Include="TestData\Wixipl\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
120
<Content Include="TestData\Wixipl\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
src/test/WixToolsetTest.CoreIntegration/WixlibQueryFixture.cs
+38
-2
@@ -21,18 +21,19 @@ namespace WixToolsetTest.CoreIntegration
21
{
22
var baseFolder = fs.GetFolder();
23
var intermediateFolder = Path.Combine(baseFolder, "obj");
24
+ var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
25
26
var result = WixRunner.Execute(new[]
27
{
28
"build",
29
Path.Combine(folder, "DetectOnly.wxs"),
30
"-intermediateFolder", intermediateFolder,
30
- "-o", Path.Combine(intermediateFolder, @"test.wixlib"),
31
+ "-o", wixlibPath,
32
});
33
34
result.AssertSuccess();
35
35
- var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"test.wixlib"));
36
+ var intermediate = Intermediate.Load(wixlibPath);
37
var allTuples = intermediate.Sections.SelectMany(s => s.Tuples);
38
var wixSimpleRefTuples = allTuples.OfType<WixSimpleReferenceTuple>();
39
var repRef = wixSimpleRefTuples.Where(t => t.Table == "WixAction" &&
@@ -41,5 +42,40 @@ namespace WixToolsetTest.CoreIntegration
42
Assert.NotNull(repRef);
43
}
44
}
45
+
46
+ [Fact(Skip = "Test demonstrates failure")]
47
+ public void TypeLibLanguageAsStringReturnsZero()
48
+ {
49
+ var folder = TestData.Get(@"TestData\TypeLib");
50
+
51
+ using (var fs = new DisposableFileSystem())
52
+ {
53
+ var baseFolder = fs.GetFolder();
54
+ var intermediateFolder = Path.Combine(baseFolder, "obj");
55
+ var wixlibPath = Path.Combine(intermediateFolder, @"test.wixlib");
56
+
57
+ var result = WixRunner.Execute(new[]
58
+ {
59
+ "build",
60
+ Path.Combine(folder, "Language0.wxs"),
61
+ "-intermediateFolder", intermediateFolder,
62
+ "-o", wixlibPath
63
+ });
64
+
65
+ result.AssertSuccess();
66
+
67
+ var intermediate = Intermediate.Load(wixlibPath);
68
+ var allTuples = intermediate.Sections.SelectMany(s => s.Tuples);
69
+ var typeLibTuple = allTuples.OfType<TypeLibTuple>()
70
+ .SingleOrDefault();
71
+ Assert.NotNull(typeLibTuple);
72
+
73
+ var fields = typeLibTuple.Fields.Select(field => field?.Type == IntermediateFieldType.Bool
74
+ ? field.AsNullableNumber()?.ToString()
75
+ : field?.AsString())
76
+ .ToList();
77
+ Assert.Equal("0", fields[1]);
78
+ }
79
+ }
80
}
81
}