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
1919import io.mockk.every
2020import io.mockk.mockk
2121import io.mockk.verify
22+ import org.assertj.core.api.Assertions.assertThat
2223import org.junit.jupiter.api.Test
2324import 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 */
3032class 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