diff --git a/detekt-baseline.xml b/detekt-baseline.xml
index 43012a1..dffe823 100644
--- a/detekt-baseline.xml
+++ b/detekt-baseline.xml
@@ -2,12 +2,11 @@
- LongMethod:UtilsTest.kt$UtilsTest$@Test fun testSystemProperties()
- MagicNumber:Utils.kt$Utils$3
- MagicNumber:Utils.kt$Utils$4
- MagicNumber:Utils.kt$Utils$5
- NestedBlockDepth:Utils.kt$Utils$fun loadProperties(file: File): Properties
- NestedBlockDepth:Utils.kt$Utils$fun parseSemVer(input: String?, version: Version): Boolean
- NestedBlockDepth:Utils.kt$Utils$fun saveProperties(projectDir: File, config: SemverConfig, version: Version)
+ MagicNumber:Utils.kt$3
+ MagicNumber:Utils.kt$4
+ MagicNumber:Utils.kt$5
+ NestedBlockDepth:Utils.kt$fun File.loadProperties(): Properties
+ NestedBlockDepth:Utils.kt$fun parseSemVer(input: String?, version: Version): Boolean
+ NestedBlockDepth:Utils.kt$fun saveProperties(projectDir: File, config: SemverConfig, version: Version)
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
index 47cf9d8..093eb94 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
@@ -59,7 +59,7 @@ open class SemverIncrementBuildMetaTask @Inject constructor(
version.buildMeta = buildMeta
project.version = version.semver
if (logger.isLifecycleEnabled) logger.lifecycle("Version: ${project.version}")
- Utils.saveProperties(project.projectDir, config, version)
+ saveProperties(project.projectDir, config, version)
}
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
index f41c520..6866ae6 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
@@ -58,6 +58,6 @@ open class SemverIncrementTask @Inject constructor(
)
project.version = version.semver
if (logger.isLifecycleEnabled) logger.lifecycle("Version: ${project.version}")
- Utils.saveProperties(project.projectDir, config, version)
+ saveProperties(project.projectDir, config, version)
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
index 3b4d5cb..d9f358b 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
@@ -59,7 +59,7 @@ class SemverPlugin : Plugin {
}
private fun afterEvaluate(project: Project) {
- val propsFile = Utils.getPropertiesFile(project.projectDir, config.properties)
+ val propsFile = getPropertiesFile(project.projectDir, config.properties)
if (project.version != "unspecified" && project.logger.isWarnEnabled) {
project.logger.warn(
@@ -77,15 +77,15 @@ class SemverPlugin : Plugin {
)
}
- val props = Utils.loadProperties(this)
+ val props = this.loadProperties()
val requiredProps = setOf(
config.semverKey, config.majorKey, config.minorKey, config.patchKey,
config.preReleaseKey, config.buildMetaKey
)
val hasReqProps = !isNew && props.stringPropertyNames().containsAll(requiredProps) &&
- Utils.isNotSystemProperty(requiredProps)
+ requiredProps.isNotSystemProperty()
- Utils.loadVersion(config, version, props)
+ loadVersion(config, version, props)
project.tasks.withType(SemverIncrementBuildMetaTask::class.java) {
buildMeta = version.buildMeta
@@ -100,7 +100,7 @@ class SemverPlugin : Plugin {
if (project.logger.isInfoEnabled) {
project.logger.info("[$simpleName] Saving version properties to `$absoluteFile`.")
}
- Utils.saveProperties(project.projectDir, config, version)
+ saveProperties(project.projectDir, config, version)
}
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt
deleted file mode 100644
index ac39bf1..0000000
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Utils.kt
- *
- * Copyright (c) 2018-2022, Erik C. Thauvin (erik@thauvin.net)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of this project nor the names of its contributors may be
- * used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package net.thauvin.erik.gradle.semver
-
-import org.gradle.api.GradleException
-import java.io.File
-import java.io.FileInputStream
-import java.io.FileOutputStream
-import java.io.IOException
-import java.util.Properties
-
-/**
- * The Utils
class.
- *
- * @author Erik C. Thauvin
- * @created 2019-04-10
- * @since 1.0
- */
-object Utils {
- fun File.canReadFile(): Boolean {
- return canRead() && isFile
- }
-
- private fun Properties.put(key: String, value: String, isValidCondition: Boolean) {
- if (isValidCondition) put(key, value)
- }
-
- fun isNotSystemProperty(keys: Set): Boolean {
- keys.forEach {
- if (System.getProperties().containsKey(it)) return false
- }
- return true
- }
-
- fun getPropertiesFile(projectDir: File, propsFile: String): File {
- return if (File(propsFile).isAbsolute) {
- File(propsFile)
- } else {
- File(projectDir, propsFile)
- }
- }
-
- fun loadProperties(file: File): Properties {
- var isNew = false
- val props = Properties()
- file.apply {
- try {
- if (!exists() && createNewFile()) {
- isNew = true
- }
- } catch (e: IOException) {
- throw GradleException("Unable to create: `$absoluteFile`", e)
- }
- if (canReadFile()) {
- FileInputStream(this).reader().use { reader ->
- props.apply {
- if (!isNew) {
- load(reader)
- }
- }
- }
- } else {
- throw GradleException("Unable to read version from: `$absoluteFile`")
- }
- }
- return props
- }
-
- fun loadIntProperty(props: Properties, key: String, default: Int): Int {
- try {
- return loadProperty(props, key, default.toString()).toInt()
- } catch (e: java.lang.NumberFormatException) {
- throw GradleException("Unable to parse $key property. (${e.message})", e)
- }
- }
-
- fun loadProperty(props: Properties, key: String, default: String): String {
- return System.getProperty(key, if (props.isNotEmpty()) props.getProperty(key, default) else default)
- }
-
- fun loadVersion(config: SemverConfig, version: Version, props: Properties) {
- props.apply {
- if (!parseSemVer(System.getProperty(config.semverKey), version)) {
- version.major = loadIntProperty(this, config.majorKey, Version.DEFAULT_MAJOR)
- version.minor = loadIntProperty(this, config.minorKey, Version.DEFAULT_MINOR)
- version.patch = loadIntProperty(this, config.patchKey, Version.DEFAULT_PATCH)
- version.preRelease = loadProperty(this, config.preReleaseKey, Version.DEFAULT_EMPTY)
- version.buildMeta = loadProperty(this, config.buildMetaKey, Version.DEFAULT_EMPTY)
- }
-
- if (!isEmpty) {
- version.preReleasePrefix =
- getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX)
- version.buildMetaPrefix =
- getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX)
- version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR)
- }
- }
- }
-
- fun parseSemVer(input: String?, version: Version): Boolean {
- if (input.isNullOrBlank()) return false
-
- try {
- val max = 5
- val min = 3
-
- val parts = input.split(
- Regex("[\\Q${version.separator}${version.preReleasePrefix}${version.buildMetaPrefix}\\E]"),
- max
- )
-
- if (parts.size >= min) {
- version.major = parts[0].toInt()
- version.minor = parts[1].toInt()
- version.patch = parts[2].toInt()
- version.preRelease = ""
- version.buildMeta = ""
-
- if (parts.size > min) {
- when (parts.size) {
- max -> {
- version.preRelease = parts[3]
- version.buildMeta = parts[4]
- }
- 4 -> {
- if (input.endsWith(version.buildMetaPrefix + parts[3])) {
- version.buildMeta = parts[3]
- } else {
- version.preRelease = parts[3]
- }
- }
- }
- }
- } else {
- throw NumberFormatException("Not enough parts.")
- }
- } catch (e: NumberFormatException) {
- throw GradleException("Unable to parse version: \"$input\" (${e.message})", e)
- }
-
- return true
- }
-
- fun saveProperties(projectDir: File, config: SemverConfig, version: Version) {
- val propsFile = getPropertiesFile(projectDir, config.properties)
- SortedProperties().apply {
- try {
- propsFile.apply {
- if (canReadFile()) {
- FileInputStream(this).reader().use { load(it) }
- } else {
- createNewFile()
- }
-
- put(config.semverKey, version.semver)
- put(config.majorKey, version.major.toString())
- put(config.minorKey, version.minor.toString())
- put(config.patchKey, version.patch.toString())
- put(config.preReleaseKey, version.preRelease)
- put(config.buildMetaKey, version.buildMeta)
- put(config.semverKey, version.semver)
-
- put(
- config.buildMetaPrefixKey, version.buildMetaPrefix,
- version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX ||
- containsKey(config.buildMetaPrefixKey)
- )
- put(
- config.preReleasePrefixKey, version.preReleasePrefix,
- version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX ||
- containsKey(config.preReleasePrefixKey)
- )
- put(
- config.separatorKey, version.separator,
- version.separator != Version.DEFAULT_SEPARATOR ||
- containsKey(config.separatorKey)
- )
-
- if (canWrite()) {
- FileOutputStream(this).writer().use {
- store(it, "Generated by the Semver Plugin for Gradle")
- }
- } else {
- throw IOException("Can't write.")
- }
- }
- } catch (e: IOException) {
- throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`", e)
- }
- }
- }
-}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/utils.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/utils.kt
new file mode 100644
index 0000000..c2c3725
--- /dev/null
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/utils.kt
@@ -0,0 +1,214 @@
+/*
+ * utils.kt
+ *
+ * Copyright (c) 2018-2022, Erik C. Thauvin (erik@thauvin.net)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * Neither the name of this project nor the names of its contributors may be
+ * used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package net.thauvin.erik.gradle.semver
+
+import org.gradle.api.GradleException
+import java.io.File
+import java.io.FileInputStream
+import java.io.FileOutputStream
+import java.io.IOException
+import java.util.Properties
+
+private fun Properties.put(key: String, value: String, isValidCondition: Boolean) {
+ if (isValidCondition) put(key, value)
+}
+
+fun File.canReadFile(): Boolean {
+ return canRead() && isFile
+}
+
+fun getPropertiesFile(projectDir: File, propsFile: String): File {
+ return if (File(propsFile).isAbsolute) {
+ File(propsFile)
+ } else {
+ File(projectDir, propsFile)
+ }
+}
+
+fun Set.isNotSystemProperty(): Boolean {
+ this.forEach {
+ if (System.getProperties().containsKey(it)) return false
+ }
+ return true
+}
+
+fun File.loadProperties(): Properties {
+ var isNew = false
+ val props = Properties()
+ this.apply {
+ try {
+ if (!exists() && createNewFile()) {
+ isNew = true
+ }
+ } catch (e: IOException) {
+ throw GradleException("Unable to create: `$absoluteFile`", e)
+ }
+ if (canReadFile()) {
+ FileInputStream(this).reader().use { reader ->
+ props.apply {
+ if (!isNew) {
+ load(reader)
+ }
+ }
+ }
+ } else {
+ throw GradleException("Unable to read version from: `$absoluteFile`")
+ }
+ }
+ return props
+}
+
+fun loadIntProperty(props: Properties, key: String, default: Int): Int {
+ try {
+ return loadProperty(props, key, default.toString()).toInt()
+ } catch (e: java.lang.NumberFormatException) {
+ throw GradleException("Unable to parse $key property. (${e.message})", e)
+ }
+}
+
+fun loadProperty(props: Properties, key: String, default: String): String {
+ return System.getProperty(key, if (props.isNotEmpty()) props.getProperty(key, default) else default)
+}
+
+fun loadVersion(config: SemverConfig, version: Version, props: Properties) {
+ props.apply {
+ if (!parseSemVer(System.getProperty(config.semverKey), version)) {
+ version.major = loadIntProperty(this, config.majorKey, Version.DEFAULT_MAJOR)
+ version.minor = loadIntProperty(this, config.minorKey, Version.DEFAULT_MINOR)
+ version.patch = loadIntProperty(this, config.patchKey, Version.DEFAULT_PATCH)
+ version.preRelease = loadProperty(this, config.preReleaseKey, Version.DEFAULT_EMPTY)
+ version.buildMeta = loadProperty(this, config.buildMetaKey, Version.DEFAULT_EMPTY)
+ }
+
+ if (!isEmpty) {
+ version.preReleasePrefix =
+ getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX)
+ version.buildMetaPrefix =
+ getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX)
+ version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR)
+ }
+ }
+}
+
+fun parseSemVer(input: String?, version: Version): Boolean {
+ if (input.isNullOrBlank()) return false
+
+ try {
+ val max = 5
+ val min = 3
+
+ val parts = input.split(
+ Regex("[\\Q${version.separator}${version.preReleasePrefix}${version.buildMetaPrefix}\\E]"),
+ max
+ )
+
+ if (parts.size >= min) {
+ version.major = parts[0].toInt()
+ version.minor = parts[1].toInt()
+ version.patch = parts[2].toInt()
+ version.preRelease = ""
+ version.buildMeta = ""
+
+ if (parts.size > min) {
+ when (parts.size) {
+ max -> {
+ version.preRelease = parts[3]
+ version.buildMeta = parts[4]
+ }
+ 4 -> {
+ if (input.endsWith(version.buildMetaPrefix + parts[3])) {
+ version.buildMeta = parts[3]
+ } else {
+ version.preRelease = parts[3]
+ }
+ }
+ }
+ }
+ } else {
+ throw NumberFormatException("Not enough parts.")
+ }
+ } catch (e: NumberFormatException) {
+ throw GradleException("Unable to parse version: \"$input\" (${e.message})", e)
+ }
+
+ return true
+}
+
+fun saveProperties(projectDir: File, config: SemverConfig, version: Version) {
+ val propsFile = getPropertiesFile(projectDir, config.properties)
+ SortedProperties().apply {
+ try {
+ propsFile.apply {
+ if (canReadFile()) {
+ FileInputStream(this).reader().use { load(it) }
+ } else {
+ createNewFile()
+ }
+
+ put(config.semverKey, version.semver)
+ put(config.majorKey, version.major.toString())
+ put(config.minorKey, version.minor.toString())
+ put(config.patchKey, version.patch.toString())
+ put(config.preReleaseKey, version.preRelease)
+ put(config.buildMetaKey, version.buildMeta)
+ put(config.semverKey, version.semver)
+
+ put(
+ config.buildMetaPrefixKey, version.buildMetaPrefix,
+ version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX ||
+ containsKey(config.buildMetaPrefixKey)
+ )
+ put(
+ config.preReleasePrefixKey, version.preReleasePrefix,
+ version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX ||
+ containsKey(config.preReleasePrefixKey)
+ )
+ put(
+ config.separatorKey, version.separator,
+ version.separator != Version.DEFAULT_SEPARATOR ||
+ containsKey(config.separatorKey)
+ )
+
+ if (canWrite()) {
+ FileOutputStream(this).writer().use {
+ store(it, "Generated by the Semver Plugin for Gradle")
+ }
+ } else {
+ throw IOException("Can't write.")
+ }
+ }
+ } catch (e: IOException) {
+ throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`", e)
+ }
+ }
+}
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsTest.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsTest.kt
index eaa3e8a..14dc021 100644
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsTest.kt
+++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsTest.kt
@@ -1,5 +1,5 @@
/*
- * UtilsTest.kt
+ * est.kt
*
* Copyright (c) 2018-2022, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
@@ -32,7 +32,6 @@
package net.thauvin.erik.gradle.semver
-import net.thauvin.erik.gradle.semver.Utils.canReadFile
import org.gradle.api.GradleException
import java.io.File
import kotlin.test.Test
@@ -42,7 +41,7 @@ import kotlin.test.assertNull
import kotlin.test.assertTrue
/**
- * [Utils] Tests
+ * Tests
*/
class UtilsTest {
private val version = Version()
@@ -53,16 +52,16 @@ class UtilsTest {
@Test
fun testExceptions() {
assertFailsWith("2.1.1a") {
- Utils.parseSemVer("2.1.1a", version)
+ parseSemVer("2.1.1a", version)
}
assertFailsWith("2a.1.1") {
- Utils.parseSemVer("2a.1.1", version)
+ parseSemVer("2a.1.1", version)
}
assertFailsWith("2.1a.1") {
- Utils.parseSemVer("2.1a.1", version)
+ parseSemVer("2.1a.1", version)
}
assertFailsWith("2.1") {
- Utils.parseSemVer("2.1", version)
+ parseSemVer("2.1", version)
}
}
@@ -72,7 +71,7 @@ class UtilsTest {
fooDir.mkdir()
val fooFile = File(fooDir, propsFile.name)
config.properties = fooFile.absolutePath
- Utils.saveProperties(projectDir, config, version)
+ saveProperties(projectDir, config, version)
assertEquals(
fooFile.canReadFile(),
@@ -80,7 +79,7 @@ class UtilsTest {
"foo properties file should exists and be readable"
)
- val fooProps = Utils.loadProperties(fooFile)
+ val fooProps = fooFile.loadProperties()
fooFile.delete()
fooDir.delete()
@@ -94,14 +93,14 @@ class UtilsTest {
@Test
fun testLoadSaveProperties() {
config.properties = propsFile.name
- Utils.saveProperties(projectDir, config, version)
+ saveProperties(projectDir, config, version)
assertEquals(
propsFile.canReadFile(),
propsFile.canRead() && propsFile.isFile,
"properties file should exists and be readable"
)
- val props = Utils.loadProperties(propsFile)
+ val props = propsFile.loadProperties()
assertEquals(props.getProperty(config.majorKey), version.major.toString(), "Major")
assertEquals(props.getProperty(config.minorKey), version.minor.toString(), "Minor")
@@ -121,7 +120,7 @@ class UtilsTest {
var locked = File("locked")
assertFailsWith {
- Utils.loadProperties(File(locked, propsFile.name))
+ File(locked, propsFile.name).loadProperties()
}
locked.delete()
@@ -132,7 +131,7 @@ class UtilsTest {
if (!locked.canWrite()) {
assertFailsWith {
- Utils.saveProperties(locked.parentFile, config, version)
+ saveProperties(locked.parentFile, config, version)
}
}
locked.delete()
@@ -143,9 +142,9 @@ class UtilsTest {
val props = SortedProperties()
props["foo"] = "bar"
- assertFailsWith { Utils.loadIntProperty(props, "foo", 1) }
+ assertFailsWith { loadIntProperty(props, "foo", 1) }
- assertEquals(Utils.loadIntProperty(props, "none", 1), 1, "default int value")
+ assertEquals(loadIntProperty(props, "none", 1), 1, "default int value")
}
@Test
@@ -154,7 +153,7 @@ class UtilsTest {
version.buildMetaPrefix = "."
listOf("2.1.0.beta.1", "2.1.1.1", "3.2.1.beta.1.007").forEach {
- assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it")
+ assertTrue(parseSemVer(it, version), "parsing semver: $it")
assertEquals(it, version.semver, it)
}
@@ -173,37 +172,34 @@ class UtilsTest {
)
assertTrue(
- Utils.isNotSystemProperty(
- setOf(
- config.majorKey,
- config.minorKey,
- config.patchKey,
- config.preReleaseKey,
- config.buildMetaKey
- )
- ),
- "none should already exists"
+ setOf(
+ config.majorKey,
+ config.minorKey,
+ config.patchKey,
+ config.preReleaseKey,
+ config.buildMetaKey
+ ).isNotSystemProperty(), "none should already exists"
)
- val props = Utils.loadProperties(propsFile)
+ val props = propsFile.loadProperties()
sysProps.forEach {
val msg = "${it.first} should match system properties"
System.getProperties().setProperty(it.first, it.second)
if (it.first == config.majorKey || it.first == config.minorKey || it.first == config.patchKey) {
- assertEquals(Utils.loadIntProperty(props, it.first, -1), it.second.toInt(), msg)
+ assertEquals(loadIntProperty(props, it.first, -1), it.second.toInt(), msg)
} else {
- assertEquals(Utils.loadProperty(props, it.first, ""), it.second, msg)
+ assertEquals(loadProperty(props, it.first, ""), it.second, msg)
}
}
- Utils.loadVersion(config, version, props)
+ loadVersion(config, version, props)
assertEquals(version.semver, "2.1.1-beta+007", "version should be identical")
- Utils.saveProperties(projectDir, config, version)
+ saveProperties(projectDir, config, version)
val newPropsFile = File(config.properties)
- val newProps = Utils.loadProperties(newPropsFile)
+ val newProps = newPropsFile.loadProperties()
sysProps.forEach {
assertEquals(newProps.getProperty(it.first), it.second, "new properties should validate")
@@ -213,7 +209,7 @@ class UtilsTest {
System.getProperties().setProperty(config.semverKey, "3.2.2")
props["foo"] = "bar"
- Utils.loadVersion(config, version, props)
+ loadVersion(config, version, props)
assertEquals(version.semver, System.getProperty(config.semverKey), "versions should match")
}
@@ -228,7 +224,7 @@ class UtilsTest {
"111.11.11-beta",
"1111.111.11-beta+001.12"
).forEach {
- assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it")
+ assertTrue(parseSemVer(it, version), "parsing semver: $it")
assertEquals(it, version.semver, it)
}
}