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
|
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