|
23 | 23 | import java.util.Collections;
|
24 | 24 | import java.util.Date;
|
25 | 25 | import java.util.List;
|
| 26 | +import java.util.Locale; |
| 27 | +import java.util.function.Supplier; |
26 | 28 |
|
27 | 29 | import org.junit.After;
|
28 | 30 | import org.junit.Test;
|
@@ -374,78 +376,59 @@ public void shouldFindByLaunchDateAfter() {
|
374 | 376 | assertThat(results.size()).isEqualTo(0);
|
375 | 377 | }
|
376 | 378 |
|
377 |
| - /** |
378 |
| - * All findByPropertyLike does currently is to require an exact match, ignoring case. |
379 |
| - */ |
380 |
| - @Test // DATAGRAPH-904 |
381 |
| - public void shouldFindByNameNotLike() { |
382 |
| - |
| 379 | + void runTestThatShouldReturnOnlySFO(Supplier<List<Restaurant>> restaurantSupplier) { |
383 | 380 | Restaurant restaurant = new Restaurant("San Francisco International Airport (SFO)", 68.0);
|
384 | 381 | restaurantRepository.save(restaurant);
|
385 | 382 |
|
386 | 383 | Restaurant kuroda = new Restaurant("Kuroda", 72.4);
|
387 | 384 | restaurantRepository.save(kuroda);
|
388 | 385 |
|
389 |
| - List<Restaurant> results = restaurantRepository.findByNameNotLike("kuroda"); |
| 386 | + List<Restaurant> results = restaurantSupplier.get(); |
390 | 387 | assertNotNull(results);
|
391 |
| - assertThat(results.size()).isEqualTo(1); |
392 |
| - assertThat(results.get(0).getName()) |
393 |
| - .isEqualTo("San Francisco International Airport (SFO)"); |
394 |
| - |
| 388 | + assertThat(results).extracting(Restaurant::getName).containsExactly("San Francisco International Airport (SFO)"); |
395 | 389 | }
|
396 | 390 |
|
397 | 391 | /**
|
398 | 392 | * All findByPropertyLike does currently is to require an exact match, ignoring case.
|
399 | 393 | */
|
400 | 394 | @Test // DATAGRAPH-904
|
401 |
| - public void shouldFindByNameLike() { |
402 |
| - |
403 |
| - Restaurant restaurant = new Restaurant("San Francisco International Airport (SFO)", 68.0); |
404 |
| - restaurantRepository.save(restaurant); |
| 395 | + public void shouldFindByNameNotLike() { |
405 | 396 |
|
406 |
| - Restaurant kuroda = new Restaurant("Kuroda", 72.4); |
407 |
| - restaurantRepository.save(kuroda); |
| 397 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameNotLike("kuroda")); |
| 398 | + } |
408 | 399 |
|
409 |
| - List<Restaurant> results = restaurantRepository.findByNameLike("*san francisco international*"); |
410 |
| - assertNotNull(results); |
411 |
| - assertThat(results.size()).isEqualTo(1); |
412 |
| - assertThat(results.get(0).getName()) |
413 |
| - .isEqualTo("San Francisco International Airport (SFO)"); |
| 400 | + /** |
| 401 | + * All findByPropertyLike does currently is to require an exact match, ignoring case. |
| 402 | + */ |
| 403 | + @Test // DATAGRAPH-904 |
| 404 | + public void shouldFindByNameLike() { |
414 | 405 |
|
| 406 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameLike("*san francisco international*")); |
415 | 407 | }
|
416 | 408 |
|
417 | 409 | @Test // DATAGRAPH-904
|
418 | 410 | public void shouldFindByNameStartingWith() {
|
419 | 411 |
|
420 |
| - Restaurant restaurant = new Restaurant("San Francisco International Airport (SFO)", 68.0); |
421 |
| - restaurantRepository.save(restaurant); |
| 412 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameStartingWith("San Francisco")); |
422 | 413 |
|
423 |
| - Restaurant kuroda = new Restaurant("Kuroda", 72.4); |
424 |
| - restaurantRepository.save(kuroda); |
| 414 | + } |
425 | 415 |
|
426 |
| - List<Restaurant> results = restaurantRepository.findByNameStartingWith("San Francisco"); |
427 |
| - assertNotNull(results); |
428 |
| - assertThat(results.size()).isEqualTo(1); |
429 |
| - assertThat(results.get(0).getName()) |
430 |
| - .isEqualTo("San Francisco International Airport (SFO)"); |
| 416 | + @Test // DATAGRAPH-1862 |
| 417 | + public void shouldFindByNameStartingWithIgnoringCase() { |
431 | 418 |
|
| 419 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameStartingWithIgnoreCase("San Francisco".toLowerCase(Locale.ROOT))); |
432 | 420 | }
|
433 | 421 |
|
434 | 422 | @Test // DATAGRAPH-904
|
435 | 423 | public void shouldFindByNameEndingWith() {
|
436 | 424 |
|
437 |
| - Restaurant restaurant = new Restaurant("San Francisco International Airport (SFO)", 68.0); |
438 |
| - restaurantRepository.save(restaurant); |
439 |
| - |
440 |
| - Restaurant kuroda = new Restaurant("Kuroda", 72.4); |
441 |
| - restaurantRepository.save(kuroda); |
| 425 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameEndingWith("Airport (SFO)")); |
| 426 | + } |
442 | 427 |
|
443 |
| - List<Restaurant> results = restaurantRepository.findByNameEndingWith("Airport (SFO)"); |
444 |
| - assertNotNull(results); |
445 |
| - assertThat(results.size()).isEqualTo(1); |
446 |
| - assertThat(results.get(0).getName()) |
447 |
| - .isEqualTo("San Francisco International Airport (SFO)"); |
| 428 | + @Test // DATAGRAPH-1862 |
| 429 | + public void shouldFindByNameEndingWithIgnoringCase() { |
448 | 430 |
|
| 431 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameEndingWithIgnoreCase("Airport (SFO)".toLowerCase(Locale.ROOT))); |
449 | 432 | }
|
450 | 433 |
|
451 | 434 | @Test // DATAGRAPH-904
|
@@ -522,18 +505,7 @@ public void shouldFindByNameIn() {
|
522 | 505 | @Test // DATAGRAPH-904
|
523 | 506 | public void shouldFindByNameMatchesRegEx() {
|
524 | 507 |
|
525 |
| - Restaurant restaurant = new Restaurant("San Francisco International Airport (SFO)", 68.0); |
526 |
| - restaurantRepository.save(restaurant); |
527 |
| - |
528 |
| - Restaurant kuroda = new Restaurant("Kuroda", 72.4); |
529 |
| - restaurantRepository.save(kuroda); |
530 |
| - |
531 |
| - List<Restaurant> results = restaurantRepository.findByNameMatchesRegex("(?i)san francisco.*"); |
532 |
| - assertNotNull(results); |
533 |
| - assertThat(results.size()).isEqualTo(1); |
534 |
| - assertThat(results.get(0).getName()) |
535 |
| - .isEqualTo("San Francisco International Airport (SFO)"); |
536 |
| - |
| 508 | + runTestThatShouldReturnOnlySFO(() -> restaurantRepository.findByNameMatchesRegex("(?i)san francisco.*")); |
537 | 509 | }
|
538 | 510 |
|
539 | 511 | @Test // DATAGRAPH-904
|
|
0 commit comments