@@ -105,75 +105,95 @@ void transactionRequiredExceptionOnRefresh() {
105
105
void deferredQueryWithUpdate () {
106
106
EntityManagerFactory emf = mock ();
107
107
EntityManager targetEm = mock ();
108
- Query query = mock ();
108
+ Query targetQuery = mock ();
109
109
given (emf .createEntityManager ()).willReturn (targetEm );
110
- given (targetEm .createQuery ("x" )).willReturn (query );
110
+ given (targetEm .createQuery ("x" )).willReturn (targetQuery );
111
111
given (targetEm .isOpen ()).willReturn (true );
112
+ given ((Query ) targetQuery .unwrap (targetQuery .getClass ())).willReturn (targetQuery );
112
113
113
114
EntityManager em = SharedEntityManagerCreator .createSharedEntityManager (emf );
114
- em .createQuery ("x" ).executeUpdate ();
115
+ Query query = em .createQuery ("x" );
116
+ assertThat ((Query ) query .unwrap (null )).isSameAs (targetQuery );
117
+ assertThat ((Query ) query .unwrap (targetQuery .getClass ())).isSameAs (targetQuery );
118
+ assertThat (query .unwrap (Query .class )).isSameAs (query );
119
+ query .executeUpdate ();
115
120
116
- verify (query ).executeUpdate ();
121
+ verify (targetQuery ).executeUpdate ();
117
122
verify (targetEm ).close ();
118
123
}
119
124
120
125
@ Test
121
126
void deferredQueryWithSingleResult () {
122
127
EntityManagerFactory emf = mock ();
123
128
EntityManager targetEm = mock ();
124
- Query query = mock ();
129
+ Query targetQuery = mock ();
125
130
given (emf .createEntityManager ()).willReturn (targetEm );
126
- given (targetEm .createQuery ("x" )).willReturn (query );
131
+ given (targetEm .createQuery ("x" )).willReturn (targetQuery );
127
132
given (targetEm .isOpen ()).willReturn (true );
133
+ given ((Query ) targetQuery .unwrap (targetQuery .getClass ())).willReturn (targetQuery );
128
134
129
135
EntityManager em = SharedEntityManagerCreator .createSharedEntityManager (emf );
130
- em .createQuery ("x" ).getSingleResult ();
136
+ Query query = em .createQuery ("x" );
137
+ assertThat ((Query ) query .unwrap (null )).isSameAs (targetQuery );
138
+ assertThat ((Query ) query .unwrap (targetQuery .getClass ())).isSameAs (targetQuery );
139
+ assertThat (query .unwrap (Query .class )).isSameAs (query );
140
+ query .getSingleResult ();
131
141
132
- verify (query ).getSingleResult ();
142
+ verify (targetQuery ).getSingleResult ();
133
143
verify (targetEm ).close ();
134
144
}
135
145
136
146
@ Test
137
147
void deferredQueryWithResultList () {
138
148
EntityManagerFactory emf = mock ();
139
149
EntityManager targetEm = mock ();
140
- Query query = mock ();
150
+ Query targetQuery = mock ();
141
151
given (emf .createEntityManager ()).willReturn (targetEm );
142
- given (targetEm .createQuery ("x" )).willReturn (query );
152
+ given (targetEm .createQuery ("x" )).willReturn (targetQuery );
143
153
given (targetEm .isOpen ()).willReturn (true );
154
+ given ((Query ) targetQuery .unwrap (targetQuery .getClass ())).willReturn (targetQuery );
144
155
145
156
EntityManager em = SharedEntityManagerCreator .createSharedEntityManager (emf );
146
- em .createQuery ("x" ).getResultList ();
157
+ Query query = em .createQuery ("x" );
158
+ assertThat ((Query ) query .unwrap (null )).isSameAs (targetQuery );
159
+ assertThat ((Query ) query .unwrap (targetQuery .getClass ())).isSameAs (targetQuery );
160
+ assertThat (query .unwrap (Query .class )).isSameAs (query );
161
+ query .getResultList ();
147
162
148
- verify (query ).getResultList ();
163
+ verify (targetQuery ).getResultList ();
149
164
verify (targetEm ).close ();
150
165
}
151
166
152
167
@ Test
153
168
void deferredQueryWithResultStream () {
154
169
EntityManagerFactory emf = mock ();
155
170
EntityManager targetEm = mock ();
156
- Query query = mock ();
171
+ Query targetQuery = mock ();
157
172
given (emf .createEntityManager ()).willReturn (targetEm );
158
- given (targetEm .createQuery ("x" )).willReturn (query );
173
+ given (targetEm .createQuery ("x" )).willReturn (targetQuery );
159
174
given (targetEm .isOpen ()).willReturn (true );
175
+ given ((Query ) targetQuery .unwrap (targetQuery .getClass ())).willReturn (targetQuery );
160
176
161
177
EntityManager em = SharedEntityManagerCreator .createSharedEntityManager (emf );
162
- em .createQuery ("x" ).getResultStream ();
178
+ Query query = em .createQuery ("x" );
179
+ assertThat ((Query ) query .unwrap (null )).isSameAs (targetQuery );
180
+ assertThat ((Query ) query .unwrap (targetQuery .getClass ())).isSameAs (targetQuery );
181
+ assertThat (query .unwrap (Query .class )).isSameAs (query );
182
+ query .getResultStream ();
163
183
164
- verify (query ).getResultStream ();
184
+ verify (targetQuery ).getResultStream ();
165
185
verify (targetEm ).close ();
166
186
}
167
187
168
188
@ Test
169
189
void deferredStoredProcedureQueryWithIndexedParameters () {
170
190
EntityManagerFactory emf = mock ();
171
191
EntityManager targetEm = mock ();
172
- StoredProcedureQuery query = mock ();
192
+ StoredProcedureQuery targetQuery = mock ();
173
193
given (emf .createEntityManager ()).willReturn (targetEm );
174
- given (targetEm .createStoredProcedureQuery ("x" )).willReturn (query );
175
- willReturn ("y" ).given (query ).getOutputParameterValue (0 );
176
- willReturn ("z" ).given (query ).getOutputParameterValue (2 );
194
+ given (targetEm .createStoredProcedureQuery ("x" )).willReturn (targetQuery );
195
+ willReturn ("y" ).given (targetQuery ).getOutputParameterValue (0 );
196
+ willReturn ("z" ).given (targetQuery ).getOutputParameterValue (2 );
177
197
given (targetEm .isOpen ()).willReturn (true );
178
198
179
199
EntityManager em = SharedEntityManagerCreator .createSharedEntityManager (emf );
@@ -187,24 +207,24 @@ void deferredStoredProcedureQueryWithIndexedParameters() {
187
207
spq .getOutputParameterValue (1 ));
188
208
assertThat (spq .getOutputParameterValue (2 )).isEqualTo ("z" );
189
209
190
- verify (query ).registerStoredProcedureParameter (0 , String .class , ParameterMode .OUT );
191
- verify (query ).registerStoredProcedureParameter (1 , Number .class , ParameterMode .IN );
192
- verify (query ).registerStoredProcedureParameter (2 , Object .class , ParameterMode .INOUT );
193
- verify (query ).execute ();
210
+ verify (targetQuery ).registerStoredProcedureParameter (0 , String .class , ParameterMode .OUT );
211
+ verify (targetQuery ).registerStoredProcedureParameter (1 , Number .class , ParameterMode .IN );
212
+ verify (targetQuery ).registerStoredProcedureParameter (2 , Object .class , ParameterMode .INOUT );
213
+ verify (targetQuery ).execute ();
194
214
verify (targetEm ).close ();
195
- verifyNoMoreInteractions (query );
215
+ verifyNoMoreInteractions (targetQuery );
196
216
verifyNoMoreInteractions (targetEm );
197
217
}
198
218
199
219
@ Test
200
220
void deferredStoredProcedureQueryWithNamedParameters () {
201
221
EntityManagerFactory emf = mock ();
202
222
EntityManager targetEm = mock ();
203
- StoredProcedureQuery query = mock ();
223
+ StoredProcedureQuery targetQuery = mock ();
204
224
given (emf .createEntityManager ()).willReturn (targetEm );
205
- given (targetEm .createStoredProcedureQuery ("x" )).willReturn (query );
206
- willReturn ("y" ).given (query ).getOutputParameterValue ("a" );
207
- willReturn ("z" ).given (query ).getOutputParameterValue ("c" );
225
+ given (targetEm .createStoredProcedureQuery ("x" )).willReturn (targetQuery );
226
+ willReturn ("y" ).given (targetQuery ).getOutputParameterValue ("a" );
227
+ willReturn ("z" ).given (targetQuery ).getOutputParameterValue ("c" );
208
228
given (targetEm .isOpen ()).willReturn (true );
209
229
210
230
EntityManager em = SharedEntityManagerCreator .createSharedEntityManager (emf );
@@ -218,12 +238,12 @@ void deferredStoredProcedureQueryWithNamedParameters() {
218
238
spq .getOutputParameterValue ("b" ));
219
239
assertThat (spq .getOutputParameterValue ("c" )).isEqualTo ("z" );
220
240
221
- verify (query ).registerStoredProcedureParameter ("a" , String .class , ParameterMode .OUT );
222
- verify (query ).registerStoredProcedureParameter ("b" , Number .class , ParameterMode .IN );
223
- verify (query ).registerStoredProcedureParameter ("c" , Object .class , ParameterMode .INOUT );
224
- verify (query ).execute ();
241
+ verify (targetQuery ).registerStoredProcedureParameter ("a" , String .class , ParameterMode .OUT );
242
+ verify (targetQuery ).registerStoredProcedureParameter ("b" , Number .class , ParameterMode .IN );
243
+ verify (targetQuery ).registerStoredProcedureParameter ("c" , Object .class , ParameterMode .INOUT );
244
+ verify (targetQuery ).execute ();
225
245
verify (targetEm ).close ();
226
- verifyNoMoreInteractions (query );
246
+ verifyNoMoreInteractions (targetQuery );
227
247
verifyNoMoreInteractions (targetEm );
228
248
}
229
249
0 commit comments