BAEL-382 Add extension function that works on list
This commit is contained in:
parent
4d415f7f74
commit
17148ca5e9
@ -1,4 +1,4 @@
|
||||
package com.baeldung
|
||||
|
||||
|
||||
data class Item(val id: String, val name: String)
|
||||
data class Item(val id: String, val name: String = "unknown_name")
|
15
kotlin/src/main/kotlin/com/baeldung/ListExtension.kt
Normal file
15
kotlin/src/main/kotlin/com/baeldung/ListExtension.kt
Normal file
@ -0,0 +1,15 @@
|
||||
package com.baeldung
|
||||
|
||||
import java.util.concurrent.ThreadLocalRandom
|
||||
|
||||
|
||||
class ListExtension {
|
||||
fun <T> List<T>.random(): T? {
|
||||
if (this.isEmpty()) return null
|
||||
return get(ThreadLocalRandom.current().nextInt(count()))
|
||||
}
|
||||
|
||||
fun <T> getRandomElementOfList(list: List<T>): T? {
|
||||
return list.random()
|
||||
}
|
||||
}
|
18
kotlin/src/test/kotlin/com/baeldung/ListExtensionTest.kt
Normal file
18
kotlin/src/test/kotlin/com/baeldung/ListExtensionTest.kt
Normal file
@ -0,0 +1,18 @@
|
||||
package com.baeldung
|
||||
|
||||
import org.junit.Test
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
class ListExtensionTest {
|
||||
@Test
|
||||
fun givenList_whenExecuteExtensionFunctionOnList_shouldReturnRandomElementOfList(){
|
||||
//given
|
||||
val elements = listOf("a", "b", "c")
|
||||
|
||||
//when
|
||||
val result = ListExtension().getRandomElementOfList(elements)
|
||||
|
||||
//then
|
||||
assertTrue(elements.contains(result))
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user