-
Notifications
You must be signed in to change notification settings - Fork 0
/
VersionTest.kt
79 lines (63 loc) · 2.3 KB
/
VersionTest.kt
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
package org.opal
import org.junit.Test
import java.lang.reflect.Constructor
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue
class VersionTest {
@Test
fun shouldSetMajorPropertyCorrectly() {
val version = newVersion("1")
assertEquals(version.major, 1)
assertEquals(version.minor, 0)
assertEquals(version.patch, 0)
assertFalse { version.snapshot }
}
@Test
fun shouldSetMajorAndSnapshotPropertiesCorrectly() {
val version = newVersion("1-SNAPSHOT")
assertEquals(version.major, 1)
assertEquals(version.minor, 0)
assertEquals(version.patch, 0)
assertTrue { version.snapshot }
}
@Test
fun shouldSetMajorMinorPropertiesCorrectly() {
val version = newVersion("1.2")
assertEquals(version.major, 1)
assertEquals(version.minor, 2)
assertEquals(version.patch, 0)
assertFalse { version.snapshot }
}
@Test
fun shouldSetMajorMinorAndSnapshotPropertiesCorrectly() {
val version = newVersion("1.2-SNAPSHOT")
assertEquals(version.major, 1)
assertEquals(version.minor, 2)
assertEquals(version.patch, 0)
assertTrue { version.snapshot }
}
@Test
fun shouldSetMajorMinorPatchPropertiesCorrectly() {
val version = newVersion("1.2.3")
assertEquals(version.major, 1)
assertEquals(version.minor, 2)
assertEquals(version.patch, 3)
assertFalse { version.snapshot }
}
@Test
fun shouldSetMajorMinorPatchAndSnapshotPropertiesCorrectly() {
val version = newVersion("1.2.3-SNAPSHOT")
assertEquals(version.major, 1)
assertEquals(version.minor, 2)
assertEquals(version.patch, 3)
assertTrue { version.snapshot }
}
@Suppress("UNCHECKED_CAST")
fun newVersion(version: String): AbstractVersion {
val className: String = System.getenv().getOrDefault("VERSION_CLASS", "DefaultVersion")
val classObj: Class<AbstractVersion> = javaClass.classLoader.loadClass("org.opal.$className") as Class<AbstractVersion>
val constructor: Constructor<AbstractVersion> = classObj.getDeclaredConstructor(String::class.java) as Constructor<AbstractVersion>
return constructor.newInstance(version)
}
}