aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2020-10-18 22:38:21 -0500
committerSean Hall <r.sean.hall@gmail.com>2020-10-24 20:17:06 -0500
commit1b6a4f9b4600079e829d5884f768563ed7dea5e5 (patch)
tree7db199ee381f31e675e6a28c248f037dc5f9018d /src/test
parentc9d14eb51e4b8458fd5e2738fcc7d1c1129ad22e (diff)
downloadwix-1b6a4f9b4600079e829d5884f768563ed7dea5e5.tar.gz
wix-1b6a4f9b4600079e829d5884f768563ed7dea5e5.tar.bz2
wix-1b6a4f9b4600079e829d5884f768563ed7dea5e5.zip
Add CompareVersions engine method and expose verutil in Mba.Core.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.Mba.Core/BaseBootstrapperApplicationFactoryFixture.cs2
-rw-r--r--src/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs93
2 files changed, 94 insertions, 1 deletions
diff --git a/src/test/WixToolsetTest.Mba.Core/BaseBootstrapperApplicationFactoryFixture.cs b/src/test/WixToolsetTest.Mba.Core/BaseBootstrapperApplicationFactoryFixture.cs
index 12483ddf..7fe0a405 100644
--- a/src/test/WixToolsetTest.Mba.Core/BaseBootstrapperApplicationFactoryFixture.cs
+++ b/src/test/WixToolsetTest.Mba.Core/BaseBootstrapperApplicationFactoryFixture.cs
@@ -1,6 +1,6 @@
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. 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 2
3namespace WixToolsetTest.Util 3namespace WixToolsetTest.Mba.Core
4{ 4{
5 using System; 5 using System;
6 using System.Runtime.InteropServices; 6 using System.Runtime.InteropServices;
diff --git a/src/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs b/src/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
new file mode 100644
index 00000000..44142e3d
--- /dev/null
+++ b/src/test/WixToolsetTest.Mba.Core/VerUtilFixture.cs
@@ -0,0 +1,93 @@
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.Mba.Core
4{
5 using System;
6 using WixToolset.Mba.Core;
7 using Xunit;
8
9 public class VerUtilFixture
10 {
11 [Fact]
12 public void CanCompareStringVersions()
13 {
14 var version1 = "1.2.3.4+abcd";
15 var version2 = "1.2.3.4+zyxw";
16
17 Assert.Equal(0, VerUtil.CompareStringVersions(version1, version2, strict: false));
18 }
19
20 [Fact]
21 public void CanCopyVersion()
22 {
23 var version = "1.2.3.4-5.6.7.8.9.0";
24
25 VerUtilVersion copiedVersion = null;
26 try
27 {
28 using (var parsedVersion = VerUtil.ParseVersion(version, strict: true))
29 {
30 copiedVersion = VerUtil.CopyVersion(parsedVersion);
31 }
32
33 using (var secondVersion = VerUtil.ParseVersion(version, strict: true))
34 {
35 Assert.Equal(0, VerUtil.CompareParsedVersions(copiedVersion, secondVersion));
36 }
37 }
38 finally
39 {
40 copiedVersion?.Dispose();
41 }
42 }
43
44 [Fact]
45 public void CanCreateFromQword()
46 {
47 var version = new Version(100, 200, 300, 400);
48 var qwVersion = Engine.VersionToLong(version);
49
50 using var parsedVersion = VerUtil.VersionFromQword(qwVersion);
51 Assert.Equal("100.200.300.400", parsedVersion.Version);
52 Assert.Equal(100u, parsedVersion.Major);
53 Assert.Equal(200u, parsedVersion.Minor);
54 Assert.Equal(300u, parsedVersion.Patch);
55 Assert.Equal(400u, parsedVersion.Revision);
56 Assert.Empty(parsedVersion.ReleaseLabels);
57 Assert.Equal("", parsedVersion.Metadata);
58 Assert.False(parsedVersion.IsInvalid);
59 }
60
61 [Fact]
62 public void CanParseVersion()
63 {
64 var version = "1.2.3.4-a.b.c.d.5.+abc123";
65
66 using var parsedVersion = VerUtil.ParseVersion(version, strict: false);
67 Assert.Equal(version, parsedVersion.Version);
68 Assert.Equal(1u, parsedVersion.Major);
69 Assert.Equal(2u, parsedVersion.Minor);
70 Assert.Equal(3u, parsedVersion.Patch);
71 Assert.Equal(4u, parsedVersion.Revision);
72 Assert.Equal(5, parsedVersion.ReleaseLabels.Length);
73 Assert.Equal("+abc123", parsedVersion.Metadata);
74 Assert.True(parsedVersion.IsInvalid);
75
76 Assert.Equal("a", parsedVersion.ReleaseLabels[0].Label);
77 Assert.False(parsedVersion.ReleaseLabels[0].IsNumeric);
78
79 Assert.Equal("b", parsedVersion.ReleaseLabels[1].Label);
80 Assert.False(parsedVersion.ReleaseLabels[1].IsNumeric);
81
82 Assert.Equal("c", parsedVersion.ReleaseLabels[2].Label);
83 Assert.False(parsedVersion.ReleaseLabels[2].IsNumeric);
84
85 Assert.Equal("d", parsedVersion.ReleaseLabels[3].Label);
86 Assert.False(parsedVersion.ReleaseLabels[3].IsNumeric);
87
88 Assert.Equal("5", parsedVersion.ReleaseLabels[4].Label);
89 Assert.True(parsedVersion.ReleaseLabels[4].IsNumeric);
90 Assert.Equal(5u, parsedVersion.ReleaseLabels[4].Value);
91 }
92 }
93}