Skip to content

Commit 32647a1

Browse files
committed
Improve BeanFactoryExtensionsTests
Comparing to Java's `BeanFactory.getBean(Class<T> requiredType)`, Kotlin's `BeanFactory.getBean<T>()` supports generic type as `T`, this commit add test to cover that and add assertions. Signed-off-by: Yanming Zhou <[email protected]>
1 parent 10e32c9 commit 32647a1

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

spring-beans/src/test/kotlin/org/springframework/beans/factory/BeanFactoryExtensionsTests.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -19,13 +19,15 @@ package org.springframework.beans.factory
1919
import io.mockk.every
2020
import io.mockk.mockk
2121
import io.mockk.verify
22+
import org.assertj.core.api.Assertions.assertThat
2223
import org.junit.jupiter.api.Test
2324
import org.springframework.core.ResolvableType
2425

2526
/**
2627
* Mock object based tests for BeanFactory Kotlin extensions.
2728
*
2829
* @author Sebastien Deleuze
30+
* @author Yanming Zhou
2931
*/
3032
class BeanFactoryExtensionsTests {
3133

@@ -35,10 +37,18 @@ class BeanFactoryExtensionsTests {
3537
fun `getBean with reified type parameters`() {
3638
val foo = Foo()
3739
every { bf.getBeanProvider<Foo>(ofType<ResolvableType>()).getObject() } returns foo
38-
bf.getBean<Foo>()
40+
assertThat(bf.getBean<Foo>()).isSameAs(foo)
3941
verify { bf.getBeanProvider<ObjectProvider<Foo>>(ofType<ResolvableType>()).getObject() }
4042
}
4143

44+
@Test
45+
fun `getBean with reified generic type parameters`() {
46+
val foo = listOf(Foo())
47+
every { bf.getBeanProvider<List<Foo>>(ofType<ResolvableType>()).getObject() } returns foo
48+
assertThat(bf.getBean<List<Foo>>()).isSameAs(foo)
49+
verify { bf.getBeanProvider<ObjectProvider<List<Foo>>>(ofType<ResolvableType>()).getObject() }
50+
}
51+
4252
@Test
4353
fun `getBean with String and reified type parameters`() {
4454
val name = "foo"
@@ -52,7 +62,7 @@ class BeanFactoryExtensionsTests {
5262
val arg2 = "arg2"
5363
val bar = Bar(arg1, arg2)
5464
every { bf.getBeanProvider<Bar>(ofType<ResolvableType>()).getObject(arg1, arg2) } returns bar
55-
bf.getBean<Bar>(arg1, arg2)
65+
assertThat(bf.getBean<Bar>(arg1, arg2)).isSameAs(bar)
5666
verify { bf.getBeanProvider<Bar>(ofType<ResolvableType>()).getObject(arg1, arg2) }
5767
}
5868

0 commit comments

Comments
 (0)