@@ -46,7 +46,7 @@ class JdbcOperationsExtensionsTests {
4646 @Test
4747 fun `queryForObject with nullable reified type parameters` () {
4848 every { template.queryForObject(sql, any<Class <Int >>()) } returns null
49- assertThat(template.queryForObject<Int ? >(sql)).isNull()
49+ assertThat(template.queryForObject<Int >(sql)).isNull()
5050 verify { template.queryForObject(sql, any<Class <Int >>()) }
5151 }
5252
@@ -65,8 +65,17 @@ class JdbcOperationsExtensionsTests {
6565 }
6666
6767 @Test
68- fun `queryForObject with reified type parameters and argTypes` () {
69- val args = arrayOf(3 )
68+ fun `queryForObject with reified type parameters, non-null args array and argTypes` () {
69+ val args = arrayOf(3 , 4 )
70+ val argTypes = intArrayOf(JDBCType .INTEGER .vendorTypeNumber)
71+ every { template.queryForObject(sql, args, argTypes, any<Class <Int >>()) } returns 2
72+ assertThat(template.queryForObject<Int >(sql, args, argTypes)).isEqualTo(2 )
73+ verify { template.queryForObject(sql, args, argTypes, any<Class <Int >>()) }
74+ }
75+
76+ @Test
77+ fun `queryForObject with reified type parameters, nullable args array and argTypes` () {
78+ val args = arrayOf(3 , null )
7079 val argTypes = intArrayOf(JDBCType .INTEGER .vendorTypeNumber)
7180 every { template.queryForObject(sql, args, argTypes, any<Class <Int >>()) } returns 2
7281 assertThat(template.queryForObject<Int >(sql, args, argTypes)).isEqualTo(2 )
@@ -78,24 +87,22 @@ class JdbcOperationsExtensionsTests {
7887 val args = arrayOf(3 )
7988 val argTypes = intArrayOf(JDBCType .INTEGER .vendorTypeNumber)
8089 every { template.queryForObject(sql, args, argTypes, any<Class <Int >>()) } returns null
81- assertThat(template.queryForObject<Int ? >(sql, args, argTypes)).isNull()
90+ assertThat(template.queryForObject<Int >(sql, args, argTypes)).isNull()
8291 verify { template.queryForObject(sql, args, argTypes, any<Class <Int >>()) }
8392 }
8493
8594 @Test
8695 fun `queryForObject with reified type parameters and args` () {
87- val args = arrayOf(3 , 4 )
88- every { template.queryForObject(sql, any<Class <Int >>(), args) } returns 2
89- assertThat(template.queryForObject<Int >(sql, args)).isEqualTo(2 )
90- verify { template.queryForObject(sql, any<Class <Int >>(), args) }
96+ every { template.queryForObject(sql, any<Class <Int >>(), 3 , null ) } returns 2
97+ assertThat(template.queryForObject<Int >(sql, 3 , null )).isEqualTo(2 )
98+ verify { template.queryForObject(sql, any<Class <Int >>(), 3 , null ) }
9199 }
92100
93101 @Test
94102 fun `queryForObject with nullable reified type parameters and args` () {
95- val args = arrayOf(3 , 4 )
96- every { template.queryForObject(sql, any<Class <Int >>(), args) } returns null
97- assertThat(template.queryForObject<Int ?>(sql, args)).isNull()
98- verify { template.queryForObject(sql, any<Class <Int >>(), args) }
103+ every { template.queryForObject(sql, any<Class <Int >>(), 3 , 4 ) } returns null
104+ assertThat(template.queryForObject<Int >(sql, 3 , 4 )).isNull()
105+ verify { template.queryForObject(sql, any<Class <Int >>(), 3 , 4 ) }
99106 }
100107
101108 @Test
@@ -110,12 +117,12 @@ class JdbcOperationsExtensionsTests {
110117 fun `queryForList with nullable reified type parameters` () {
111118 val list = listOf (1 , null , 3 )
112119 every { template.queryForList(sql, any<Class <Int >>()) } returns list
113- assertThat(template.queryForList<Int ? >(sql)).isEqualTo(list)
120+ assertThat(template.queryForList<Int >(sql)).isEqualTo(list)
114121 verify { template.queryForList(sql, any<Class <Int >>()) }
115122 }
116123
117124 @Test
118- fun `queryForList with reified type parameters and argTypes` () {
125+ fun `queryForList with reified type parameters, non-null args and argTypes` () {
119126 val list = listOf (1 , 2 , 3 )
120127 val args = arrayOf(3 )
121128 val argTypes = intArrayOf(JDBCType .INTEGER .vendorTypeNumber)
@@ -125,31 +132,49 @@ class JdbcOperationsExtensionsTests {
125132 }
126133
127134 @Test
128- fun `queryForList with nullable reified type parameters and argTypes` () {
135+ fun `queryForList with reified type parameters, nullable args and argTypes` () {
136+ val list = listOf (1 , 2 , 3 )
137+ val args = arrayOf(" foo" , null )
138+ val argTypes = intArrayOf(JDBCType .VARCHAR .vendorTypeNumber)
139+ every { template.queryForList(sql, args, argTypes, any<Class <Int >>()) } returns list
140+ assertThat(template.queryForList<Int >(sql, args, argTypes)).isEqualTo(list)
141+ verify { template.queryForList(sql, args, argTypes, any<Class <Int >>()) }
142+ }
143+
144+ @Test
145+ fun `queryForList with nullable reified type parameters, non-null args and argTypes` () {
129146 val list = listOf (1 , null , 3 )
130147 val args = arrayOf(3 )
131148 val argTypes = intArrayOf(JDBCType .INTEGER .vendorTypeNumber)
132149 every { template.queryForList(sql, args, argTypes, any<Class <Int >>()) } returns list
133- assertThat(template.queryForList<Int ?>(sql, args, argTypes)).isEqualTo(list)
150+ assertThat(template.queryForList<Int >(sql, args, argTypes)).isEqualTo(list)
151+ verify { template.queryForList(sql, args, argTypes, any<Class <Int >>()) }
152+ }
153+
154+ @Test
155+ fun `queryForList with nullable reified type parameters, nullable args and argTypes` () {
156+ val list = listOf (1 , null , 3 )
157+ val args = arrayOf(" foo" , null )
158+ val argTypes = intArrayOf(JDBCType .VARCHAR .vendorTypeNumber)
159+ every { template.queryForList(sql, args, argTypes, any<Class <Int >>()) } returns list
160+ assertThat(template.queryForList<Int >(sql, args, argTypes)).isEqualTo(list)
134161 verify { template.queryForList(sql, args, argTypes, any<Class <Int >>()) }
135162 }
136163
137164 @Test
138165 fun `queryForList with reified type parameters and args` () {
139166 val list = listOf (1 , 2 , 3 )
140- val args = arrayOf(3 , 4 )
141- every { template.queryForList(sql, any<Class <Int >>(), args) } returns list
142- template.queryForList<Int >(sql, args)
143- verify { template.queryForList(sql, any<Class <Int >>(), args) }
167+ every { template.queryForList(sql, any<Class <Int >>(), 3 , null ) } returns list
168+ template.queryForList<Int >(sql, 3 , null )
169+ verify { template.queryForList(sql, any<Class <Int >>(), 3 , null ) }
144170 }
145171
146172 @Test
147173 fun `queryForList with nullable reified type parameters and args` () {
148174 val list = listOf (1 , null , 3 )
149- val args = arrayOf(3 , 4 )
150- every { template.queryForList(sql, any<Class <Int >>(), args) } returns list
151- template.queryForList<Int ?>(sql, args)
152- verify { template.queryForList(sql, any<Class <Int >>(), args) }
175+ every { template.queryForList(sql, any<Class <Int >>(), 3 , null ) } returns list
176+ template.queryForList<Int >(sql, 3 , null )
177+ verify { template.queryForList(sql, any<Class <Int >>(), 3 , null ) }
153178 }
154179
155180 @Test
0 commit comments