@ -24,7 +24,9 @@ import static org.springframework.data.mongodb.repository.query.StubParameterAcc
@@ -24,7 +24,9 @@ import static org.springframework.data.mongodb.repository.query.StubParameterAcc
import java.lang.reflect.Method ;
import java.util.List ;
import java.util.regex.Pattern ;
import org.bson.Document ;
import org.bson.types.ObjectId ;
import org.junit.Before ;
import org.junit.Rule ;
@ -60,8 +62,6 @@ import org.springframework.data.repository.Repository;
@@ -60,8 +62,6 @@ import org.springframework.data.repository.Repository;
import org.springframework.data.repository.core.support.DefaultRepositoryMetadata ;
import org.springframework.data.repository.query.parser.PartTree ;
import org.bson.Document ;
/ * *
* Unit test for { @link MongoQueryCreator } .
*
@ -627,6 +627,25 @@ public class MongoQueryCreatorUnitTests {
@@ -627,6 +627,25 @@ public class MongoQueryCreatorUnitTests {
new MongoQueryCreator ( tree , accessor , context ) . createQuery ( ) ;
}
@Test // DATAMONGO-2003
public void createsRegexQueryForPatternCorrectly ( ) throws Exception {
PartTree tree = new PartTree ( "findByFirstNameRegex" , Person . class ) ;
MongoQueryCreator creator = new MongoQueryCreator ( tree , getAccessor ( converter , Pattern . compile ( ".*" ) ) , context ) ;
assertThat ( creator . createQuery ( ) , is ( query ( where ( "firstName" ) . regex ( ".*" ) ) ) ) ;
}
@Test // DATAMONGO-2003
public void createsRegexQueryForPatternWithOptionsCorrectly ( ) throws Exception {
Pattern pattern = Pattern . compile ( ".*" , Pattern . CASE_INSENSITIVE | Pattern . UNICODE_CASE ) ;
PartTree tree = new PartTree ( "findByFirstNameRegex" , Person . class ) ;
MongoQueryCreator creator = new MongoQueryCreator ( tree , getAccessor ( converter , pattern ) , context ) ;
assertThat ( creator . createQuery ( ) , is ( query ( where ( "firstName" ) . regex ( ".*" , "iu" ) ) ) ) ;
}
interface PersonRepository extends Repository < Person , Long > {
List < Person > findByLocationNearAndFirstname ( Point location , Distance maxDistance , String firstname ) ;