|
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