Skip to content

Commit 24b00be

Browse files
committed
impl: add UTs
1 parent 96feb73 commit 24b00be

File tree

1 file changed

+127
-4
lines changed

1 file changed

+127
-4
lines changed

src/test/groovy/CoderSemVerTest.groovy

Lines changed: 127 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package com.coder.gateway.sdk
22

3+
import spock.lang.Unroll
4+
5+
@Unroll
36
class CoderSemVerTest extends spock.lang.Specification {
47

5-
def 'semver versions are valid'() {
8+
def "#semver is valid"() {
69
expect:
710
CoderSemVer.isValidVersion(semver)
811

@@ -40,7 +43,7 @@ class CoderSemVerTest extends spock.lang.Specification {
4043
'1.0.0-0A.is.legal']
4144
}
4245

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"() {
4447
expect:
4548
CoderSemVer.parse(semver) == expectedCoderSemVer
4649

@@ -79,7 +82,7 @@ class CoderSemVerTest extends spock.lang.Specification {
7982
'1.0.0-0A.is.legal' || new CoderSemVer(1L, 0L, 0L)
8083
}
8184

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`"() {
8386
expect:
8487
CoderSemVer.isValidVersion(semver)
8588

@@ -117,7 +120,7 @@ class CoderSemVerTest extends spock.lang.Specification {
117120
'v1.0.0-0A.is.legal']
118121
}
119122

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`"() {
121124
expect:
122125
CoderSemVer.parse(semver) == expectedCoderSemVer
123126

@@ -155,4 +158,124 @@ class CoderSemVerTest extends spock.lang.Specification {
155158
'v2147483647.2147483647.2147483647' || new CoderSemVer(2147483647L, 2147483647L, 2147483647L)
156159
'v1.0.0-0A.is.legal' || new CoderSemVer(1L, 0L, 0L)
157160
}
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+
}
158281
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy