|
1 | 1 | package com.coder.gateway.sdk
|
2 | 2 |
|
| 3 | +import spock.lang.Unroll |
| 4 | + |
| 5 | +@Unroll |
3 | 6 | class CoderSemVerTest extends spock.lang.Specification {
|
4 | 7 |
|
5 |
| - def 'semver versions are valid'() { |
| 8 | + def "#semver is valid"() { |
6 | 9 | expect:
|
7 | 10 | CoderSemVer.isValidVersion(semver)
|
8 | 11 |
|
@@ -40,7 +43,7 @@ class CoderSemVerTest extends spock.lang.Specification {
|
40 | 43 | '1.0.0-0A.is.legal']
|
41 | 44 | }
|
42 | 45 |
|
43 |
| - def 'semver versions are parsed and correct major and minor values are extracted'() { |
| 46 | + def "#semver version is parsed and correct major, minor and patch values are extracted"() { |
44 | 47 | expect:
|
45 | 48 | CoderSemVer.parse(semver) == expectedCoderSemVer
|
46 | 49 |
|
@@ -79,7 +82,7 @@ class CoderSemVerTest extends spock.lang.Specification {
|
79 | 82 | '1.0.0-0A.is.legal' || new CoderSemVer(1L, 0L, 0L)
|
80 | 83 | }
|
81 | 84 |
|
82 |
| - def 'semver like versions that start with a `v` are considered valid'() { |
| 85 | + def "#semver is considered valid even when it starts with `v`"() { |
83 | 86 | expect:
|
84 | 87 | CoderSemVer.isValidVersion(semver)
|
85 | 88 |
|
@@ -117,7 +120,7 @@ class CoderSemVerTest extends spock.lang.Specification {
|
117 | 120 | 'v1.0.0-0A.is.legal']
|
118 | 121 | }
|
119 | 122 |
|
120 |
| - def 'semver like versions that start with a `v` are parsed and correct major and minor values are extracted'() { |
| 123 | + def "#semver is parsed and correct major, minor and patch values are extracted even though the version starts with a `v`"() { |
121 | 124 | expect:
|
122 | 125 | CoderSemVer.parse(semver) == expectedCoderSemVer
|
123 | 126 |
|
@@ -155,4 +158,124 @@ class CoderSemVerTest extends spock.lang.Specification {
|
155 | 158 | 'v2147483647.2147483647.2147483647' || new CoderSemVer(2147483647L, 2147483647L, 2147483647L)
|
156 | 159 | 'v1.0.0-0A.is.legal' || new CoderSemVer(1L, 0L, 0L)
|
157 | 160 | }
|
| 161 | + |
| 162 | + def "#firstVersion is > than #secondVersion"() { |
| 163 | + expect: |
| 164 | + firstVersion <=> secondVersion == 1 |
| 165 | + |
| 166 | + where: |
| 167 | + firstVersion | secondVersion |
| 168 | + new CoderSemVer(1, 0, 0) | new CoderSemVer(0, 0, 0) |
| 169 | + new CoderSemVer(1, 0, 0) | new CoderSemVer(0, 0, 1) |
| 170 | + new CoderSemVer(1, 0, 0) | new CoderSemVer(0, 1, 0) |
| 171 | + new CoderSemVer(1, 0, 0) | new CoderSemVer(0, 1, 1) |
| 172 | + |
| 173 | + new CoderSemVer(2, 0, 0) | new CoderSemVer(1, 0, 0) |
| 174 | + new CoderSemVer(2, 0, 0) | new CoderSemVer(1, 3, 0) |
| 175 | + new CoderSemVer(2, 0, 0) | new CoderSemVer(1, 0, 3) |
| 176 | + new CoderSemVer(2, 0, 0) | new CoderSemVer(1, 3, 3) |
| 177 | + |
| 178 | + |
| 179 | + new CoderSemVer(0, 1, 0) | new CoderSemVer(0, 0, 1) |
| 180 | + new CoderSemVer(0, 2, 0) | new CoderSemVer(0, 1, 0) |
| 181 | + new CoderSemVer(0, 2, 0) | new CoderSemVer(0, 1, 2) |
| 182 | + |
| 183 | + new CoderSemVer(0, 0, 2) | new CoderSemVer(0, 0, 1) |
| 184 | + } |
| 185 | + |
| 186 | + def "#firstVersion is == #secondVersion"() { |
| 187 | + expect: |
| 188 | + firstVersion <=> secondVersion == 0 |
| 189 | + |
| 190 | + where: |
| 191 | + firstVersion | secondVersion |
| 192 | + new CoderSemVer(0, 0, 0) | new CoderSemVer(0, 0, 0) |
| 193 | + new CoderSemVer(1, 0, 0) | new CoderSemVer(1, 0, 0) |
| 194 | + new CoderSemVer(1, 1, 0) | new CoderSemVer(1, 1, 0) |
| 195 | + new CoderSemVer(1, 1, 1) | new CoderSemVer(1, 1, 1) |
| 196 | + new CoderSemVer(0, 1, 0) | new CoderSemVer(0, 1, 0) |
| 197 | + new CoderSemVer(0, 1, 1) | new CoderSemVer(0, 1, 1) |
| 198 | + new CoderSemVer(0, 0, 1) | new CoderSemVer(0, 0, 1) |
| 199 | + |
| 200 | + } |
| 201 | + |
| 202 | + def "#firstVersion is < than #secondVersion"() { |
| 203 | + expect: |
| 204 | + firstVersion <=> secondVersion == -1 |
| 205 | + |
| 206 | + where: |
| 207 | + firstVersion | secondVersion |
| 208 | + new CoderSemVer(0, 0, 0) | new CoderSemVer(1, 0, 0) |
| 209 | + new CoderSemVer(0, 0, 1) | new CoderSemVer(1, 0, 0) |
| 210 | + new CoderSemVer(0, 1, 0) | new CoderSemVer(1, 0, 0) |
| 211 | + new CoderSemVer(0, 1, 1) | new CoderSemVer(1, 0, 0) |
| 212 | + |
| 213 | + new CoderSemVer(1, 0, 0) | new CoderSemVer(2, 0, 0) |
| 214 | + new CoderSemVer(1, 3, 0) | new CoderSemVer(2, 0, 0) |
| 215 | + new CoderSemVer(1, 0, 3) | new CoderSemVer(2, 0, 0) |
| 216 | + new CoderSemVer(1, 3, 3) | new CoderSemVer(2, 0, 0) |
| 217 | + |
| 218 | + |
| 219 | + new CoderSemVer(0, 0, 1) | new CoderSemVer(0, 1, 0) |
| 220 | + new CoderSemVer(0, 1, 0) | new CoderSemVer(0, 2, 0) |
| 221 | + new CoderSemVer(0, 1, 2) | new CoderSemVer(0, 2, 0) |
| 222 | + |
| 223 | + new CoderSemVer(0, 0, 1) | new CoderSemVer(0, 0, 2) |
| 224 | + } |
| 225 | + |
| 226 | + def 'in closed range comparison returns true when the version is equal to the left side of the range'() { |
| 227 | + expect: |
| 228 | + new CoderSemVer(1, 2, 3).isInClosedRange(new CoderSemVer(1, 2, 3), new CoderSemVer(7, 8, 9)) |
| 229 | + } |
| 230 | + |
| 231 | + def 'in closed range comparison returns true when the version is equal to the right side of the range'() { |
| 232 | + expect: |
| 233 | + new CoderSemVer(7, 8, 9).isInClosedRange(new CoderSemVer(1, 2, 3), new CoderSemVer(7, 8, 9)) |
| 234 | + } |
| 235 | + |
| 236 | + def "in closed range comparison returns false when #buildVersion is lower than the left side of the range"() { |
| 237 | + expect: |
| 238 | + buildVersion.isInClosedRange(new CoderSemVer(1, 2, 3), new CoderSemVer(7, 8, 9)) == false |
| 239 | + |
| 240 | + where: |
| 241 | + buildVersion << [ |
| 242 | + new CoderSemVer(0, 0, 0), |
| 243 | + new CoderSemVer(0, 0, 1), |
| 244 | + new CoderSemVer(0, 1, 0), |
| 245 | + new CoderSemVer(1, 0, 0), |
| 246 | + new CoderSemVer(0, 1, 1), |
| 247 | + new CoderSemVer(1, 1, 1), |
| 248 | + new CoderSemVer(1, 2, 1), |
| 249 | + new CoderSemVer(0, 2, 3), |
| 250 | + ] |
| 251 | + } |
| 252 | + |
| 253 | + def "in closed range comparison returns false when #buildVersion is higher than the right side of the range"() { |
| 254 | + expect: |
| 255 | + buildVersion.isInClosedRange(new CoderSemVer(1, 2, 3), new CoderSemVer(7, 8, 9)) == false |
| 256 | + |
| 257 | + where: |
| 258 | + buildVersion << [ |
| 259 | + new CoderSemVer(7, 8, 10), |
| 260 | + new CoderSemVer(7, 9, 0), |
| 261 | + new CoderSemVer(8, 0, 0), |
| 262 | + new CoderSemVer(8, 8, 9), |
| 263 | + ] |
| 264 | + } |
| 265 | + |
| 266 | + def "in closed range comparison returns true when #buildVersion is higher than the left side of the range but lower then the right side"() { |
| 267 | + expect: |
| 268 | + buildVersion.isInClosedRange(new CoderSemVer(1, 2, 3), new CoderSemVer(7, 8, 9)) == true |
| 269 | + |
| 270 | + where: |
| 271 | + buildVersion << [ |
| 272 | + new CoderSemVer(1, 2, 4), |
| 273 | + new CoderSemVer(1, 3, 0), |
| 274 | + new CoderSemVer(2, 0, 0), |
| 275 | + new CoderSemVer(7, 8, 8), |
| 276 | + new CoderSemVer(7, 7, 10), |
| 277 | + new CoderSemVer(6, 9, 10), |
| 278 | + |
| 279 | + ] |
| 280 | + } |
158 | 281 | }
|
0 commit comments