mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27:12 -07:00
Better StringVersion.
This commit is contained in:
parent
71d4cce999
commit
c7714a5286
11 changed files with 119 additions and 189 deletions
|
@ -39,8 +39,8 @@ class UpdateKobalt @Inject constructor(val github: GithubApi2, val wrapperProper
|
|||
|
||||
try {
|
||||
val latestVersionString = latestVersionFuture.get()
|
||||
val latestVersion = Versions.toLongVersion(latestVersionString)
|
||||
val current = Versions.toLongVersion(Kobalt.version)
|
||||
val latestVersion = StringVersion(latestVersionString)
|
||||
val current = StringVersion(Kobalt.version)
|
||||
val distFile = File(KFiles.distributionsDir)
|
||||
if (latestVersion > current) {
|
||||
if (distFile.exists()) {
|
||||
|
|
|
@ -12,7 +12,7 @@ import com.beust.kobalt.internal.build.BuildFile
|
|||
import com.beust.kobalt.maven.DependencyManager
|
||||
import com.beust.kobalt.misc.KFiles
|
||||
import com.beust.kobalt.misc.KobaltExecutors
|
||||
import com.beust.kobalt.misc.Versions
|
||||
import com.beust.kobalt.misc.StringVersion
|
||||
import com.beust.kobalt.misc.log
|
||||
import com.google.inject.Inject
|
||||
import java.io.File
|
||||
|
@ -90,7 +90,7 @@ class RemoteDependencyData @Inject constructor(val executors: KobaltExecutors, v
|
|||
val currentLatest = latestVersions[shortId]
|
||||
if (currentLatest == null) latestVersions[shortId] = mid.version!!
|
||||
else mid.version?.let { v ->
|
||||
if (Versions.toLongVersion(currentLatest) < Versions.toLongVersion(v)) {
|
||||
if (StringVersion(currentLatest) < StringVersion(v)) {
|
||||
latestVersions[shortId] = v
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
package com.beust.kobalt.internal
|
||||
|
||||
import com.beust.kobalt.misc.StringVersion
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.testng.annotations.DataProvider
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
||||
/**
|
||||
* Make sure we parse version numbers correctly.
|
||||
*/
|
||||
class StringVersionTest {
|
||||
|
||||
@DataProvider
|
||||
fun versionsEqual() : Array<Array<String>>
|
||||
= arrayOf(
|
||||
arrayOf("1.0", "1"),
|
||||
arrayOf("1", "1"),
|
||||
arrayOf("1.0.0", "1"),
|
||||
arrayOf("1.0", "1.0.0")
|
||||
)
|
||||
|
||||
@Test(dataProvider = "versionsEqual")
|
||||
fun versionComparisonsEqual(v1: String, v2: String) {
|
||||
val sv1 = StringVersion(v1)
|
||||
val sv2 = StringVersion(v2)
|
||||
assertThat(sv1).isEqualTo(sv2)
|
||||
assertThat(sv2).isEqualTo(sv1)
|
||||
}
|
||||
|
||||
@DataProvider
|
||||
fun versionsNotEqual() : Array<Array<String>>
|
||||
= arrayOf(
|
||||
arrayOf("0.9", "1"),
|
||||
arrayOf("0.9.2", "1"),
|
||||
arrayOf("1", "1.2.3"),
|
||||
arrayOf("1.2", "1.2.3"),
|
||||
arrayOf("1.2.2", "1.2.3"),
|
||||
arrayOf("1.2.3", "1.2.4"),
|
||||
arrayOf("1", "1.2.3.4"),
|
||||
arrayOf("1.2", "1.2.3.4"),
|
||||
arrayOf("1.2.3", "1.2.3.4"),
|
||||
arrayOf("1.2.3.3", "1.2.3.4"),
|
||||
arrayOf("1.2.3.4", "1.2.3.5"),
|
||||
arrayOf("4.5.0.201609210915-r", "4.5.0.201609210916-r")
|
||||
)
|
||||
|
||||
@Test(dataProvider = "versionsNotEqual")
|
||||
fun versionComparisonsNotEqual(v1: String, v2: String) {
|
||||
val sv1 = StringVersion(v1)
|
||||
val sv2 = StringVersion(v2)
|
||||
assertThat(sv1).isLessThan(sv2)
|
||||
assertThat(sv2).isGreaterThan(sv1)
|
||||
assertThat(sv1).isNotEqualTo(sv2)
|
||||
}
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
package com.beust.kobalt.internal
|
||||
|
||||
import com.beust.kobalt.misc.StringVersion
|
||||
import com.beust.kobalt.misc.Versions
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.testng.annotations.DataProvider
|
||||
import org.testng.annotations.Test
|
||||
|
||||
|
||||
/**
|
||||
* Make sure we parse version numbers correctly.
|
||||
*/
|
||||
class VersionTest {
|
||||
|
||||
@DataProvider
|
||||
fun dp() : Array<Array<Any>>
|
||||
= arrayOf(
|
||||
arrayOf("0.938", 9380000),
|
||||
arrayOf("1.2", 100020000L),
|
||||
arrayOf("1.2.3", 100020003L)
|
||||
)
|
||||
|
||||
@Test(dataProvider = "dp")
|
||||
fun versionConversionShouldWork(version: String, expected: Long) {
|
||||
assertThat(Versions.toLongVersion(version)).isEqualTo(expected)
|
||||
}
|
||||
|
||||
@DataProvider
|
||||
fun versionsEqual() : Array<Array<String>>
|
||||
= arrayOf(
|
||||
arrayOf("1", "1"),
|
||||
arrayOf("1.0", "1"),
|
||||
arrayOf("1.0.0", "1"),
|
||||
arrayOf("1.0", "1.0.0")
|
||||
)
|
||||
|
||||
@Test(dataProvider = "versionsEqual")
|
||||
fun versionComparisonsEqual(v1: String, v2: String) {
|
||||
assertThat(StringVersion(v1).compareTo(v2)).isEqualTo(StringVersion.Compare.EQ)
|
||||
assertThat(StringVersion(v2).compareTo(v1)).isEqualTo(StringVersion.Compare.EQ)
|
||||
}
|
||||
|
||||
@DataProvider
|
||||
fun versionsNotEqual() : Array<Array<Any>>
|
||||
= arrayOf(
|
||||
arrayOf("1", "1.2.3", StringVersion.Compare.LT),
|
||||
arrayOf("1.2", "1.2.3", StringVersion.Compare.LT),
|
||||
arrayOf("1.2.2", "1.2.3", StringVersion.Compare.LT),
|
||||
arrayOf("1.2.4", "1.2.3", StringVersion.Compare.GT),
|
||||
arrayOf("1", "1.2.3.4", StringVersion.Compare.LT),
|
||||
arrayOf("1.2", "1.2.3.4", StringVersion.Compare.LT),
|
||||
arrayOf("1.2.3", "1.2.3.4", StringVersion.Compare.LT),
|
||||
arrayOf("1.2.3.3", "1.2.3.4", StringVersion.Compare.LT),
|
||||
arrayOf("1.2.3.5", "1.2.3.4", StringVersion.Compare.GT)
|
||||
)
|
||||
|
||||
@Test(dataProvider = "versionsNotEqual")
|
||||
fun versionComparisonsNotEqual(v1: String, v2: String, expected: StringVersion.Compare) {
|
||||
assertThat(StringVersion(v1).compareTo(v2)).isEqualTo(expected)
|
||||
assertThat(StringVersion(v2).compareTo(v1)).isEqualTo(
|
||||
if (expected == StringVersion.Compare.LT) StringVersion.Compare.GT else StringVersion.Compare.LT)
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@ package com.beust.kobalt.maven
|
|||
|
||||
import com.beust.kobalt.TestModule
|
||||
import com.beust.kobalt.misc.KobaltExecutors
|
||||
import com.beust.kobalt.misc.Versions
|
||||
import com.beust.kobalt.misc.StringVersion
|
||||
import org.testng.Assert
|
||||
import org.testng.annotations.*
|
||||
import java.util.concurrent.ExecutorService
|
||||
|
@ -40,10 +40,10 @@ class DependencyTest @Inject constructor(val executors: KobaltExecutors) {
|
|||
|
||||
@Test(dataProvider = "dpVersions")
|
||||
fun versionSorting(k: String, v: String) {
|
||||
val dep1 = Versions.toLongVersion(k)
|
||||
val dep2 = Versions.toLongVersion(v)
|
||||
Assert.assertTrue(dep1.compareTo(dep2) < 0)
|
||||
Assert.assertTrue(dep2.compareTo(dep1) > 0)
|
||||
val dep1 = StringVersion(k)
|
||||
val dep2 = StringVersion(v)
|
||||
Assert.assertTrue(dep1 < dep2)
|
||||
Assert.assertTrue(dep2 > dep1)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue