Add extension for PropertyResolver#getProperty(String, Class<T>, T)

Allows Kotlin caller to get a non-nullable property,
using a default value when the property is not set.
A method already exists on PropertyResolver which does this,
but takes a Class parameter.
The extension method can eliminate the parameter via reified type,
similar to the other extension methods which exist already.

Closes gh-31523
This commit is contained in:
wakingrufus
2023-10-30 10:04:00 -05:00
committed by Sébastien Deleuze
parent 34e5512ff6
commit 8c77e398b6
2 changed files with 19 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ package org.springframework.core.env
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
/**
@@ -44,6 +45,13 @@ class PropertyResolverExtensionsKotlinTests {
verify { propertyResolver.getProperty("name", String::class.java) }
}
@Test
fun `getProperty with default extension`() {
every { propertyResolver.getProperty("name", String::class.java, "default") } returns "default"
assertThat(propertyResolver.getProperty<String>("name", "default")).isEqualTo("default")
verify { propertyResolver.getProperty("name", String::class.java, "default") }
}
@Test
fun `getRequiredProperty extension`() {
every { propertyResolver.getRequiredProperty("name", String::class.java) } returns "foo"