|
1 | 1 | using System;
|
2 | 2 | using System.Collections.Generic;
|
3 | 3 | using System.Linq;
|
4 |
| -using Semver.Test.Builders; |
5 | 4 | using Xunit;
|
6 | 5 |
|
7 | 6 | namespace Semver.Test
|
@@ -89,125 +88,6 @@ public void ConstructWithMajorMinorPatchTest(int major, int minor, int patch)
|
89 | 88 | }
|
90 | 89 | #endregion
|
91 | 90 |
|
92 |
| - #region SemVersion(int major, int minor = 0, int patch = 0, string prerelease = "", string build = "") |
93 |
| - /// <summary> |
94 |
| - /// Verifies the default values of the arguments to the primary constructor. |
95 |
| - /// </summary> |
96 |
| - [Fact] |
97 |
| - public void ConstructDefaultValuesTest() |
98 |
| - { |
99 |
| - var v = new SemVersion(1); |
100 |
| - |
101 |
| - Assert.Equal(1, v.Major); |
102 |
| - Assert.Equal(0, v.Minor); |
103 |
| - Assert.Equal(0, v.Patch); |
104 |
| - Assert.Equal("", v.Prerelease); |
105 |
| - Assert.Empty(v.PrereleaseIdentifiers); |
106 |
| - Assert.Equal("", v.Metadata); |
107 |
| - Assert.Empty(v.MetadataIdentifiers); |
108 |
| - } |
109 |
| - |
110 |
| - [Theory] |
111 |
| - // Basic version |
112 |
| - [InlineData(1, 2, 3, "a", "b")] |
113 |
| - // Letter Limits |
114 |
| - [InlineData(1, 2, 3, "A-Z.a-z.0-9", "A-Z.a-z.0-9")] |
115 |
| - // Hyphen in strange places |
116 |
| - [InlineData(1, 2, 3, "-", "b")] |
117 |
| - [InlineData(1, 2, 3, "--", "b")] |
118 |
| - [InlineData(1, 2, 3, "a", "-")] |
119 |
| - [InlineData(1, 2, 3, "a", "--")] |
120 |
| - [InlineData(1, 2, 3, "-a", "b")] |
121 |
| - [InlineData(1, 2, 3, "--a", "b")] |
122 |
| - [InlineData(1, 2, 3, "a", "-b")] |
123 |
| - [InlineData(1, 2, 3, "a", "--b")] |
124 |
| - [InlineData(1, 2, 3, "a-", "b")] |
125 |
| - [InlineData(1, 2, 3, "a--", "b")] |
126 |
| - [InlineData(1, 2, 3, "a", "b-")] |
127 |
| - [InlineData(1, 2, 3, "a", "b--")] |
128 |
| - [InlineData(1, 2, 3, "-.a", "b")] |
129 |
| - [InlineData(1, 2, 3, "a", "-.b")] |
130 |
| - [InlineData(1, 2, 3, "a.-", "b")] |
131 |
| - [InlineData(1, 2, 3, "a.-.c", "b")] |
132 |
| - [InlineData(1, 2, 3, "a", "b.-")] |
133 |
| - [InlineData(1, 2, 3, "a", "b.-.c")] |
134 |
| - // Leading Zero on prerelease Alphanumeric Identifiers |
135 |
| - [InlineData(1, 2, 3, "0a", "b")] |
136 |
| - [InlineData(1, 2, 3, "00000a", "b")] |
137 |
| - [InlineData(1, 2, 3, "a.0c", "b")] |
138 |
| - [InlineData(1, 2, 3, "a.00000c", "b")] |
139 |
| - // Empty string |
140 |
| - [InlineData(1, 2, 3, "a", "")] |
141 |
| - [InlineData(1, 2, 3, "", "b")] |
142 |
| - [InlineData(1, 2, 3, "", "")] |
143 |
| - // Null handling |
144 |
| - [InlineData(1, 2, 3, "a", null)] |
145 |
| - [InlineData(1, 2, 3, null, "b")] |
146 |
| - [InlineData(1, 2, 3, null, null)] |
147 |
| - // Negative version numbers |
148 |
| - // TODO Negative versions should be invalid and throw argument exceptions (issue#41) |
149 |
| - [InlineData(-1, 0, 0, "", "")] |
150 |
| - [InlineData(0, -1, 0, "", "")] |
151 |
| - [InlineData(0, 0, -1, "", "")] |
152 |
| - [InlineData(-1, -1, -1, "", "")] |
153 |
| - // Illegal characters |
154 |
| - // TODO Illegal characters should be invalid and throw argument exceptions (issue#41) |
155 |
| - [InlineData(1, 2, 3, "😞", "b")] |
156 |
| - [InlineData(1, 2, 3, "a", "😞")] |
157 |
| - // Leading Zeros in Prerelease |
158 |
| - // TODO Leading zeros in prerelease should be invalid and throw argument exceptions (issue#41) |
159 |
| - [InlineData(1, 2, 3, "01", "b")] |
160 |
| - [InlineData(1, 2, 3, "a.01", "b")] |
161 |
| - [InlineData(1, 2, 3, "a.01.c", "b")] |
162 |
| - [InlineData(1, 2, 3, "a.0000001.c", "b")] |
163 |
| - // Leading Zeros in MetaData (valid) |
164 |
| - [InlineData(1, 2, 3, "a", "01")] |
165 |
| - [InlineData(1, 2, 3, "a", "b.01")] |
166 |
| - [InlineData(1, 2, 3, "a", "b.01.c")] |
167 |
| - [InlineData(1, 2, 3, "a", "b.00000001.c")] |
168 |
| - [InlineData(1, 2, 3, "a", "0b")] |
169 |
| - [InlineData(1, 2, 3, "a", "0000000b")] |
170 |
| - [InlineData(1, 2, 3, "a", "b.0c")] |
171 |
| - [InlineData(1, 2, 3, "a", "b.000000c")] |
172 |
| - // Empty Identifiers |
173 |
| - // TODO Empty Identifiers should be invalid and throw argument exceptions (issue#41) |
174 |
| - [InlineData(1, 2, 3, ".", "b")] |
175 |
| - [InlineData(1, 2, 3, "a", ".")] |
176 |
| - [InlineData(1, 2, 3, "a.", "b")] |
177 |
| - [InlineData(1, 2, 3, "a..", "b")] |
178 |
| - [InlineData(1, 2, 3, "a", "b.")] |
179 |
| - [InlineData(1, 2, 3, "a", "b..")] |
180 |
| - [InlineData(1, 2, 3, ".a", "b")] |
181 |
| - [InlineData(1, 2, 3, "..a", "b")] |
182 |
| - [InlineData(1, 2, 3, "a", ".b")] |
183 |
| - [InlineData(1, 2, 3, "a", "..b")] |
184 |
| - [InlineData(1, 2, 3, "a..c", "b")] |
185 |
| - [InlineData(1, 2, 3, "a", "b..c")] |
186 |
| - public void ConstructTest(int major, int minor, int patch, string prerelease, string metadata) |
187 |
| - { |
188 |
| - var v = new SemVersion(major, minor, patch, prerelease, metadata); |
189 |
| - |
190 |
| - Assert.Equal(major, v.Major); |
191 |
| - Assert.Equal(minor, v.Minor); |
192 |
| - Assert.Equal(patch, v.Patch); |
193 |
| - Assert.Equal(prerelease ?? "", v.Prerelease); |
194 |
| - var expectedPrereleaseIdentifiers = |
195 |
| - (prerelease?.SplitExceptEmpty('.') ?? Enumerable.Empty<string>()) |
196 |
| -#pragma warning disable CS0612 // Type or member is obsolete |
197 |
| - .Select(PrereleaseIdentifier.CreateLoose); |
198 |
| -#pragma warning restore CS0612 // Type or member is obsolete |
199 |
| - Assert.Equal(expectedPrereleaseIdentifiers, v.PrereleaseIdentifiers); |
200 |
| - Assert.Equal(metadata ?? "", v.Metadata); |
201 |
| - var expectedMetadataIdentifiers = |
202 |
| - (metadata?.SplitExceptEmpty('.') ?? Enumerable.Empty<string>()) |
203 |
| -#pragma warning disable CS0612 // Type or member is obsolete |
204 |
| - .Select(MetadataIdentifier.CreateLoose); |
205 |
| -#pragma warning restore CS0612 // Type or member is obsolete |
206 |
| - ; |
207 |
| - Assert.Equal(expectedMetadataIdentifiers, v.MetadataIdentifiers); |
208 |
| - } |
209 |
| - #endregion |
210 |
| - |
211 | 91 | #region SemVersion(int major, int minor = 0, int patch = 0, IEnumerable<PrereleaseIdentifier> prerelease = null, IEnumerable<MetadataIdentifier> metadata = null)
|
212 | 92 | [Fact]
|
213 | 93 | public void ConstructWithIdentifiersTest()
|
@@ -299,15 +179,15 @@ public void ConstructWithStringIdentifiersPrereleaseNull()
|
299 | 179 | {
|
300 | 180 | var v = new SemVersion(1, 2, 3, (IEnumerable<string>)null);
|
301 | 181 |
|
302 |
| - Assert.Equal(new SemVersion(1, 2, 3, ""), v); |
| 182 | + Assert.Equal(new SemVersion(1, 2, 3), v); |
303 | 183 | }
|
304 | 184 |
|
305 | 185 | [Fact]
|
306 | 186 | public void ConstructWithStringIdentifiersPrereleaseEmpty()
|
307 | 187 | {
|
308 | 188 | var v = new SemVersion(1, 2, 3, Enumerable.Empty<string>());
|
309 | 189 |
|
310 |
| - Assert.Equal(new SemVersion(1, 2, 3, ""), v); |
| 190 | + Assert.Equal(new SemVersion(1, 2, 3), v); |
311 | 191 | }
|
312 | 192 |
|
313 | 193 | [Fact]
|
@@ -393,15 +273,15 @@ public void ConstructWithStringIdentifiersMetadataLeadingZeros()
|
393 | 273 | {
|
394 | 274 | var v = new SemVersion(1, 2, 3, metadata: new[] { "bar", "0123" });
|
395 | 275 |
|
396 |
| - Assert.Equal(new SemVersion(1, 2, 3, "", "bar.0123"), v); |
| 276 | + Assert.Equal(SemVersion.ParsedFrom(1, 2, 3, "", "bar.0123"), v); |
397 | 277 | }
|
398 | 278 |
|
399 | 279 | [Fact]
|
400 | 280 | public void ConstructWithStringIdentifiersMetadataTooLarge()
|
401 | 281 | {
|
402 | 282 | var v = new SemVersion(1, 2, 3, metadata: new[] { "bar", "99999999999999999" });
|
403 | 283 |
|
404 |
| - Assert.Equal(new SemVersion(1, 2, 3, "", "bar.99999999999999999"), v); |
| 284 | + Assert.Equal(SemVersion.ParsedFrom(1, 2, 3, "", "bar.99999999999999999"), v); |
405 | 285 | }
|
406 | 286 |
|
407 | 287 | [Fact]
|
@@ -497,7 +377,7 @@ public void ParsedFromPrereleaseLeadingZerosAllowed()
|
497 | 377 | {
|
498 | 378 | var v = SemVersion.ParsedFrom(1, 2, 3, "bar.0123", allowLeadingZeros: true);
|
499 | 379 |
|
500 |
| - Assert.Equal(new SemVersion(1, 2, 3, "bar.123"), v); |
| 380 | + Assert.Equal(SemVersion.ParsedFrom(1, 2, 3, "bar.123"), v); |
501 | 381 | }
|
502 | 382 |
|
503 | 383 | [Fact]
|
@@ -539,15 +419,15 @@ public void ParsedFromMetadataLeadingZeros()
|
539 | 419 | {
|
540 | 420 | var v = SemVersion.ParsedFrom(1, metadata: "bar.0123");
|
541 | 421 |
|
542 |
| - Assert.Equal(new SemVersion(1, 0, 0, "", "bar.0123"), v); |
| 422 | + Assert.Equal(SemVersion.ParsedFrom(1, 0, 0, "", "bar.0123"), v); |
543 | 423 | }
|
544 | 424 |
|
545 | 425 | [Fact]
|
546 | 426 | public void ParsedFromMetadataTooLarge()
|
547 | 427 | {
|
548 | 428 | var v = SemVersion.ParsedFrom(1, metadata: "bar.99999999999999999");
|
549 | 429 |
|
550 |
| - Assert.Equal(new SemVersion(1, 0, 0, "", "bar.99999999999999999"), v); |
| 430 | + Assert.Equal(SemVersion.ParsedFrom(1, 0, 0, "", "bar.99999999999999999"), v); |
551 | 431 | }
|
552 | 432 |
|
553 | 433 | [Fact]
|
|
0 commit comments