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)