diff --git a/core-kotlin/pom.xml b/core-kotlin/pom.xml
index 5cdb5f700e..2b559b19e0 100644
--- a/core-kotlin/pom.xml
+++ b/core-kotlin/pom.xml
@@ -18,6 +18,11 @@
commons-math3
${commons-math3.version}
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
org.junit.platform
junit-platform-runner
@@ -70,6 +75,7 @@
3.6.1
+ 3.8.1
1.1.1
5.2.0
3.10.0
diff --git a/core-kotlin/src/test/kotlin/com/baeldung/random/RandomStringTest.kt b/core-kotlin/src/test/kotlin/com/baeldung/random/RandomStringTest.kt
index b8d0bd49cd..b47a6ac455 100644
--- a/core-kotlin/src/test/kotlin/com/baeldung/random/RandomStringTest.kt
+++ b/core-kotlin/src/test/kotlin/com/baeldung/random/RandomStringTest.kt
@@ -1,18 +1,50 @@
-
+import org.apache.commons.lang3.RandomStringUtils
import org.junit.jupiter.api.Test
-import java.util.concurrent.ThreadLocalRandom
-import kotlin.test.assertTrue
+import kotlin.streams.asSequence
+import kotlin.test.assertEquals
-class RandomNumberTest {
+const val STRING_LENGTH = 10;
+const val ALPHANUMERIC_REGEX = "[a-zA-Z0-9]+";
+
+class RandomStringTest {
@Test
- fun whenRandomNumberWithJavaUtilMath_thenResultIsBetween0And1() {
- val source = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- var test = Random().ints(outputStrLength, 0, source.length)
+ fun generateRandomString_useJava_returnString() {
+ val charPool = ArrayList();
+ charPool.addAll('a'..'z');
+ charPool.addAll('A'..'Z');
+ charPool.addAll('0'..'9');
+
+ var randomString = java.util.Random().ints(STRING_LENGTH.toLong(), 0, charPool.size)
.asSequence()
- .map(source::get)
+ .map(charPool::get)
.joinToString("")
- print("message")
+
+ assert(randomString.matches(Regex(ALPHANUMERIC_REGEX)));
+ assertEquals(STRING_LENGTH, randomString.length);
+ }
+
+ @Test
+ fun generateRandomString_useKotlin_returnString() {
+ val charPool = ArrayList();
+ charPool.addAll('a'..'z');
+ charPool.addAll('A'..'Z');
+ charPool.addAll('0'..'9');
+
+ var randomString = (1..STRING_LENGTH).map { i -> kotlin.random.Random.nextInt(0, charPool.size) }
+ .map(charPool::get)
+ .joinToString("");
+
+ assert(randomString.matches(Regex(ALPHANUMERIC_REGEX)));
+ assertEquals(STRING_LENGTH, randomString.length);
+ }
+
+ @Test
+ fun generateRandomString_useApacheCommon_returnString() {
+ var randomString = RandomStringUtils.randomAlphanumeric(STRING_LENGTH);
+
+ assert(randomString.matches(Regex(ALPHANUMERIC_REGEX)));
+ assertEquals(STRING_LENGTH, randomString.length);
}
}
\ No newline at end of file