Refine PropertyResolver extensions null-safety

See gh-22687
This commit is contained in:
Sebastien Deleuze 2019-03-28 09:01:20 +01:00
parent bf9dea4254
commit 811f315440
2 changed files with 5 additions and 12 deletions

View File

@ -39,8 +39,8 @@ operator fun PropertyResolver.get(key: String) : String? = getProperty(key)
* @author Sebastien Deleuze
* @since 5.1
*/
inline fun <reified T> PropertyResolver.getProperty(key: String) : T =
getProperty(key, T::class.java) as T
inline fun <reified T> PropertyResolver.getProperty(key: String) : T? =
getProperty(key, T::class.java)
/**
* Extension for [PropertyResolver.getRequiredProperty] providing a
@ -49,5 +49,5 @@ inline fun <reified T> PropertyResolver.getProperty(key: String) : T =
* @author Sebastien Deleuze
* @since 5.1
*/
inline fun <reified T> PropertyResolver.getRequiredProperty(key: String) : T =
inline fun <reified T: Any> PropertyResolver.getRequiredProperty(key: String) : T =
getRequiredProperty(key, T::class.java)

View File

@ -40,21 +40,14 @@ class PropertyResolverExtensionsTests {
@Test
fun `getProperty extension`() {
every { propertyResolver.getProperty("name", String::class.java) } returns "foo"
propertyResolver.getProperty<String>("name")
verify { propertyResolver.getProperty("name", String::class.java) }
}
@Test
fun `getProperty extension with nullable type`() {
every { propertyResolver.getProperty("name", String::class.java) } returns null
propertyResolver.getProperty<String?>("name")
val name: String? = propertyResolver.getProperty<String>("name")
verify { propertyResolver.getProperty("name", String::class.java) }
}
@Test
fun `getRequiredProperty extension`() {
every { propertyResolver.getRequiredProperty("name", String::class.java) } returns "foo"
propertyResolver.getRequiredProperty<String>("name")
val name: String = propertyResolver.getRequiredProperty<String>("name")
verify { propertyResolver.getRequiredProperty("name", String::class.java) }
}