BAEL-382 Add extension function that works on list

This commit is contained in:
Tomasz Lelek 2017-01-02 16:22:27 +01:00
parent 4d415f7f74
commit 17148ca5e9
3 changed files with 34 additions and 1 deletions

View File

@ -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")

View 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()
}
}

View 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))
}
}