|
47 | 47 | import org.springframework.data.relational.core.mapping.event.BeforeConvertCallback; |
48 | 48 | import org.springframework.data.relational.core.mapping.event.BeforeDeleteCallback; |
49 | 49 | import org.springframework.data.relational.core.mapping.event.BeforeSaveCallback; |
| 50 | +import org.springframework.data.relational.core.query.Criteria; |
| 51 | +import org.springframework.data.relational.core.query.Query; |
50 | 52 |
|
51 | 53 | import java.util.List; |
| 54 | +import java.util.Optional; |
52 | 55 |
|
53 | 56 | /** |
54 | 57 | * Unit tests for {@link JdbcAggregateTemplate}. |
@@ -299,19 +302,63 @@ void callbackOnLoadPaged() { |
299 | 302 | SampleEntity neumann1 = new SampleEntity(42L, "Neumann"); |
300 | 303 | SampleEntity neumann2 = new SampleEntity(42L, "Alfred E. Neumann"); |
301 | 304 |
|
302 | | - when(dataAccessStrategy.findAll(SampleEntity.class, PageRequest.of(0, 20))).thenReturn(asList(alfred1, neumann1)); |
| 305 | + PageRequest pageRequest = PageRequest.of(0, 20); |
| 306 | + when(dataAccessStrategy.findAll(SampleEntity.class, pageRequest)).thenReturn(asList(alfred1, neumann1)); |
303 | 307 |
|
304 | 308 | when(callbacks.callback(any(Class.class), eq(alfred1), any(Object[].class))).thenReturn(alfred2); |
305 | 309 | when(callbacks.callback(any(Class.class), eq(neumann1), any(Object[].class))).thenReturn(neumann2); |
306 | 310 |
|
307 | | - Iterable<SampleEntity> all = template.findAll(SampleEntity.class, PageRequest.of(0, 20)); |
| 311 | + Iterable<SampleEntity> all = template.findAll(SampleEntity.class, pageRequest); |
308 | 312 |
|
309 | 313 | verify(callbacks).callback(AfterConvertCallback.class, alfred1); |
310 | 314 | verify(callbacks).callback(AfterConvertCallback.class, neumann1); |
311 | 315 |
|
312 | 316 | assertThat(all).containsExactly(alfred2, neumann2); |
313 | 317 | } |
314 | 318 |
|
| 319 | + @Test // GH-1979 |
| 320 | + void callbackOnFindAllByQuery() { |
| 321 | + |
| 322 | + SampleEntity alfred1 = new SampleEntity(23L, "Alfred"); |
| 323 | + SampleEntity alfred2 = new SampleEntity(23L, "Alfred E."); |
| 324 | + |
| 325 | + SampleEntity neumann1 = new SampleEntity(42L, "Neumann"); |
| 326 | + SampleEntity neumann2 = new SampleEntity(42L, "Alfred E. Neumann"); |
| 327 | + |
| 328 | + Query query = Query.query(Criteria.where("not relevant").is("for test")); |
| 329 | + |
| 330 | + when(dataAccessStrategy.findAll(query, SampleEntity.class)).thenReturn(asList(alfred1, neumann1)); |
| 331 | + |
| 332 | + when(callbacks.callback(any(Class.class), eq(alfred1), any(Object[].class))).thenReturn(alfred2); |
| 333 | + when(callbacks.callback(any(Class.class), eq(neumann1), any(Object[].class))).thenReturn(neumann2); |
| 334 | + |
| 335 | + Iterable<SampleEntity> all = template.findAll(query, SampleEntity.class); |
| 336 | + |
| 337 | + verify(callbacks).callback(AfterConvertCallback.class, alfred1); |
| 338 | + verify(callbacks).callback(AfterConvertCallback.class, neumann1); |
| 339 | + |
| 340 | + assertThat(all).containsExactly(alfred2, neumann2); |
| 341 | + } |
| 342 | + |
| 343 | + @Test // GH-1979 |
| 344 | + void callbackOnFindOneByQuery() { |
| 345 | + |
| 346 | + SampleEntity alfred1 = new SampleEntity(23L, "Alfred"); |
| 347 | + SampleEntity alfred2 = new SampleEntity(23L, "Alfred E."); |
| 348 | + |
| 349 | + Query query = Query.query(Criteria.where("not relevant").is("for test")); |
| 350 | + |
| 351 | + when(dataAccessStrategy.findOne(query, SampleEntity.class)).thenReturn(Optional.of(alfred1)); |
| 352 | + |
| 353 | + when(callbacks.callback(any(Class.class), eq(alfred1), any(Object[].class))).thenReturn(alfred2); |
| 354 | + |
| 355 | + Optional<SampleEntity> all = template.findOne(query, SampleEntity.class); |
| 356 | + |
| 357 | + verify(callbacks).callback(AfterConvertCallback.class, alfred1); |
| 358 | + |
| 359 | + assertThat(all).contains(alfred2); |
| 360 | + } |
| 361 | + |
315 | 362 | @Test // GH-1401 |
316 | 363 | void saveAllWithEmptyListDoesNothing() { |
317 | 364 | assertThat(template.saveAll(emptyList())).isEmpty(); |
|
0 commit comments