From 3a19b5e8959baaf73a8b5be704802b40edcdd1d6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Tue, 6 Jun 2023 22:40:37 -0700 Subject: [PATCH] Switched to kotlin.test --- lib/build.gradle.kts | 3 +- lib/detekt-baseline.xml | 1 + .../erik/urlencoder/UrlEncoderUtilTest.kt | 74 +++++++++---------- 3 files changed, 40 insertions(+), 38 deletions(-) diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index aeb5eb3..eee938b 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -30,7 +30,8 @@ val deployDir = project.layout.projectDirectory.dir("deploy") dependencies { // testImplementation("com.willowtreeapps.assertk:assertk-jvm:0.25") - testImplementation("org.junit.jupiter:junit-jupiter:5.9.1") +// testImplementation("org.junit.jupiter:junit-jupiter:5.9.1") + testImplementation(kotlin("test")) } base { diff --git a/lib/detekt-baseline.xml b/lib/detekt-baseline.xml index 2562c74..d38e8d9 100644 --- a/lib/detekt-baseline.xml +++ b/lib/detekt-baseline.xml @@ -10,5 +10,6 @@ MaxLineLength:UrlEncoderUtil.kt$UrlEncoderUtil$* NestedBlockDepth:UrlEncoderUtil.kt$UrlEncoderUtil$@JvmStatic @JvmOverloads fun decode(source: String, plusToSpace: Boolean = false): String NestedBlockDepth:UrlEncoderUtil.kt$UrlEncoderUtil$@JvmStatic @JvmOverloads fun encode(source: String, allow: String = "", spaceToPlus: Boolean = false): String + WildcardImport:UrlEncoderUtilTest.kt$import kotlin.test.* diff --git a/lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt b/lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt index 20d8e4d..67a220f 100644 --- a/lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt +++ b/lib/src/test/kotlin/net/thauvin/erik/urlencoder/UrlEncoderUtilTest.kt @@ -19,55 +19,53 @@ package net.thauvin.erik.urlencoder import net.thauvin.erik.urlencoder.UrlEncoderUtil.decode import net.thauvin.erik.urlencoder.UrlEncoderUtil.encode -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertSame -import org.junit.jupiter.api.Assertions.assertThrows -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.Arguments.arguments -import org.junit.jupiter.params.provider.MethodSource -import java.util.stream.Stream +import kotlin.test.* +import kotlin.test.DefaultAsserter.assertEquals +import kotlin.test.DefaultAsserter.assertSame class UrlEncoderUtilTest { private val same = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_." companion object { @JvmStatic - fun invalid() = arrayOf("sdkjfh%", "sdkjfh%6", "sdkjfh%xx", "sdfjfh%-1") + var invalid = arrayOf("sdkjfh%", "sdkjfh%6", "sdkjfh%xx", "sdfjfh%-1") @JvmStatic - fun validMap(): Stream = Stream.of( - arguments("a test &", "a%20test%20%26"), - arguments( + var validMap = arrayOf( + Pair("a test &", "a%20test%20%26"), + Pair( "!abcdefghijklmnopqrstuvwxyz%%ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.~=", "%21abcdefghijklmnopqrstuvwxyz%25%25ABCDEFGHIJKLMNOPQRSTUVQXYZ0123456789-_.%7E%3D" ), - arguments("%#okékÉȢ smile!😁", "%25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81"), - arguments( + Pair("%#okékÉȢ smile!😁", "%25%23ok%C3%A9k%C3%89%C8%A2%20smile%21%F0%9F%98%81"), + Pair( "\uD808\uDC00\uD809\uDD00\uD808\uDF00\uD808\uDD00", "%F0%92%80%80%F0%92%94%80%F0%92%8C%80%F0%92%84%80" ) ) } - @ParameterizedTest(name = "decode({0}) should be {1}") - @MethodSource("validMap") - fun `Decode URL`(expected: String, source: String) { - assertEquals(expected, decode(source)) + @Test + fun `Decode URL`() { + for (m in validMap) { + assertEquals(m.first, decode(m.second)) + } } - @ParameterizedTest(name = "decode({0})") - @MethodSource("invalid") - fun `Decode with Exception`(source: String) { - assertThrows(IllegalArgumentException::class.java, { decode(source) }, "decode($source)") + @Test + fun `Decode with Exception`() { + for (source in invalid) { + assertFailsWith( + message = "decode($source)", + block = { decode(source) } + ) + } } @Test fun `Decode when None needed`() { assertSame(same, decode(same)) - assertEquals("", decode(""), "decode('')") - assertEquals(" ", decode(" "), "decode(' ')") + assertEquals("decode('')", decode(""), "") + assertEquals("decode(' ')", decode(" "), " ") } @Test @@ -79,30 +77,32 @@ class UrlEncoderUtilTest { assertEquals("foo+bar", decode("foo%2Bbar", plusToSpace = true)) } - @ParameterizedTest(name = "encode({0}) should be {1}") - @MethodSource("validMap") - fun `Encode URL`(source: String, expected: String) { - assertEquals(expected, encode(source)) + + @Test + fun `Encode URL`() { + for (m in validMap) { + assertEquals(m.second, encode(m.first)) + } } @Test fun `Encode Empty or Blank`() { assertTrue(encode("", allow = "").isEmpty(), "encode('','')") - assertEquals("", encode(""), "encode('')") - assertEquals("%20", encode(" "), "encode(' ')") + assertEquals("encode('')", encode(""), "") + assertEquals("encode(' ')", encode(" "), "%20") } @Test fun `Encode when None needed`() { - assertSame(same, encode(same)) - assertSame(same, encode(same, allow = ""), "with empty allow") + assertSame(encode(same), same) + assertSame("with empty allow", encode(same, allow = ""), same) } @Test fun `Encode with Allow Arg`() { - assertEquals("?test=a%20test", encode("?test=a test", allow = "=?"), "encode(x, =?)") - assertEquals("aaa", encode("aaa", "a"), "encode(aaa, a)") - assertEquals(" ", encode(" ", " "), "encode(' ', ' ')") + assertEquals("encode(x, =?)","?test=a%20test", encode("?test=a test", allow = "=?")) + assertEquals("encode(aaa, a)", "aaa", encode("aaa", "a")) + assertEquals("encode(' ')", " ", encode(" ", " ") ) } @Test