-
Notifications
You must be signed in to change notification settings - Fork 263
Expand file tree
/
Copy pathProductVersionParserTests.cs
More file actions
107 lines (98 loc) · 4.03 KB
/
ProductVersionParserTests.cs
File metadata and controls
107 lines (98 loc) · 4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using NUnit.Framework;
namespace System.IO.Abstractions.TestingHelpers.Tests
{
[TestFixture]
public class ProductVersionParserTests
{
[Test]
public void ProductVersionParser_Parse_ShouldIgnoreTheSegmentsWhenThereAreMoreThanFiveOfThem()
{
// Arrange
string productVersion = "1.2.3.4.5";
// Act
var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion);
// Assert
Assert.Multiple(() =>
{
Assert.That(versionInfo.ProductMajorPart, Is.Zero);
Assert.That(versionInfo.ProductMinorPart, Is.Zero);
Assert.That(versionInfo.ProductBuildPart, Is.Zero);
Assert.That(versionInfo.ProductPrivatePart, Is.Zero);
});
}
[Test]
[TestCase("test.2.3.4", 0, 0, 0, 0)]
[TestCase("1.test.3.4", 1, 0, 0, 0)]
[TestCase("1.2.test.4", 1, 2, 0, 0)]
[TestCase("1.2.3.test", 1, 2, 3, 0)]
public void ProductVersionParser_Parse_ShouldSkipTheRestOfTheSegmentsWhenOneIsNotValidNumber(
string productVersion,
int expectedMajor,
int expectedMinor,
int expectedBuild,
int expectedRevision)
{
// Act
var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion);
// Assert
Assert.Multiple(() =>
{
Assert.That(versionInfo.ProductMajorPart, Is.EqualTo(expectedMajor));
Assert.That(versionInfo.ProductMinorPart, Is.EqualTo(expectedMinor));
Assert.That(versionInfo.ProductBuildPart, Is.EqualTo(expectedBuild));
Assert.That(versionInfo.ProductPrivatePart, Is.EqualTo(expectedRevision));
});
}
[Test]
[TestCase("1-test.2.3.4", 1, 0, 0, 0)]
[TestCase("1-test5.2.3.4", 1, 0, 0, 0)]
[TestCase("1.2-test.3.4", 1, 2, 0, 0)]
[TestCase("1.2-test5.3.4", 1, 2, 0, 0)]
[TestCase("1.2.3-test.4", 1, 2, 3, 0)]
[TestCase("1.2.3-test5.4", 1, 2, 3, 0)]
[TestCase("1.2.3.4-test", 1, 2, 3, 4)]
[TestCase("1.2.3.4-test5", 1, 2, 3, 4)]
public void ProductVersionParser_Parse_ShouldSkipTheRestOfTheSegmentsWhenOneContainsMoreThanJustOneNumber(
string productVersion,
int expectedMajor,
int expectedMinor,
int expectedBuild,
int expectedRevision)
{
// Act
var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion);
// Assert
Assert.Multiple(() =>
{
Assert.That(versionInfo.ProductMajorPart, Is.EqualTo(expectedMajor));
Assert.That(versionInfo.ProductMinorPart, Is.EqualTo(expectedMinor));
Assert.That(versionInfo.ProductBuildPart, Is.EqualTo(expectedBuild));
Assert.That(versionInfo.ProductPrivatePart, Is.EqualTo(expectedRevision));
});
}
[Test]
[TestCase("", 0, 0, 0, 0)]
[TestCase("1", 1, 0, 0, 0)]
[TestCase("1.2", 1, 2, 0, 0)]
[TestCase("1.2.3", 1, 2, 3, 0)]
[TestCase("1.2.3.4", 1, 2, 3, 4)]
public void ProductVersionParser_Parse_ShouldParseEachProvidedSegment(
string productVersion,
int expectedMajor,
int expectedMinor,
int expectedBuild,
int expectedRevision)
{
// Act
var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion);
// Assert
Assert.Multiple(() =>
{
Assert.That(versionInfo.ProductMajorPart, Is.EqualTo(expectedMajor));
Assert.That(versionInfo.ProductMinorPart, Is.EqualTo(expectedMinor));
Assert.That(versionInfo.ProductBuildPart, Is.EqualTo(expectedBuild));
Assert.That(versionInfo.ProductPrivatePart, Is.EqualTo(expectedRevision));
});
}
}
}