@@ -376,6 +376,19 @@ public void createsQueryToFindAllEntitiesByIntegerAttributeWithDescendingOrderin
376
376
assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
377
377
}
378
378
379
+ @ Test
380
+ public void createsQueryToFindAllEntitiesByIntegerAttributeWithAscendingOrderingByStringAttribute ()
381
+ throws Exception {
382
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByAgeOrderByLastNameAsc" , Integer .class );
383
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
384
+ dataAccessStrategy );
385
+ RelationalParametersParameterAccessor accessor = getAccessor (queryMethod , new Object []{"oh" });
386
+ BindableQuery bindableQuery = r2dbcQuery .createQuery (accessor );
387
+ String expectedSql = "SELECT " + ALL_FIELDS + " FROM " + TABLE
388
+ + " WHERE " + TABLE + ".age = ? ORDER BY last_name ASC" ;
389
+ assertThat (bindableQuery .get ()).isEqualTo (expectedSql );
390
+ }
391
+
379
392
@ Test
380
393
public void createsQueryToFindAllEntitiesByStringAttributeNot () throws Exception {
381
394
R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByLastNameNot" , String .class );
@@ -477,6 +490,26 @@ public void throwsExceptionWhenSimplePropertyPredicateHasIterableParameter() thr
477
490
r2dbcQuery .createQuery (getAccessor (queryMethod , new Object []{Collections .singleton (1L )}));
478
491
}
479
492
493
+ @ Test
494
+ public void throwsExceptionWhenConditionKeywordIsUnsupported () throws Exception {
495
+ thrown .expect (IllegalArgumentException .class );
496
+ thrown .expectMessage ("Unsupported keyword IS_EMPTY" );
497
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByIdIsEmpty" );
498
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
499
+ dataAccessStrategy );
500
+ r2dbcQuery .createQuery (getAccessor (queryMethod , new Object [0 ]));
501
+ }
502
+
503
+ @ Test
504
+ public void throwsExceptionWhenInvalidNumberOfParameterIsGiven () throws Exception {
505
+ thrown .expect (IllegalArgumentException .class );
506
+ thrown .expectMessage ("Invalid number of parameters given!" );
507
+ R2dbcQueryMethod queryMethod = getQueryMethod ("findAllByFirstName" , String .class );
508
+ PartTreeR2dbcQuery r2dbcQuery = new PartTreeR2dbcQuery (queryMethod , databaseClient , r2dbcConverter ,
509
+ dataAccessStrategy );
510
+ r2dbcQuery .createQuery (getAccessor (queryMethod , new Object [0 ]));
511
+ }
512
+
480
513
private R2dbcQueryMethod getQueryMethod (String methodName , Class <?>... parameterTypes ) throws Exception {
481
514
Method method = UserRepository .class .getMethod (methodName , parameterTypes );
482
515
return new R2dbcQueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
@@ -526,6 +559,8 @@ private interface UserRepository extends Repository<User, Long> {
526
559
527
560
Flux <User > findAllByFirstNameNotContaining (String notContaining );
528
561
562
+ Flux <User > findAllByAgeOrderByLastNameAsc (Integer age );
563
+
529
564
Flux <User > findAllByAgeOrderByLastNameDesc (Integer age );
530
565
531
566
Flux <User > findAllByLastNameNot (String lastName );
@@ -545,6 +580,8 @@ private interface UserRepository extends Repository<User, Long> {
545
580
Flux <User > findAllByIdIn (Long id );
546
581
547
582
Flux <User > findAllById (Collection <Long > ids );
583
+
584
+ Flux <User > findAllByIdIsEmpty ();
548
585
}
549
586
550
587
@ Table ("users" )
0 commit comments