|
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