Skip to content

Commit 28510de

Browse files
schauderchristophstrobl
authored andcommitted
DATAMONGO-1677 - Adds a test to confirm a query with more than 10 arguments works just fine.
Original Pull Request: #849
1 parent 4bbf4cd commit 28510de

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import org.junit.Before;
3737
import org.junit.Test;
3838
import org.junit.runner.RunWith;
39-
4039
import org.springframework.beans.factory.annotation.Autowired;
4140
import org.springframework.dao.DuplicateKeyException;
4241
import org.springframework.dao.IncorrectResultSizeDataAccessException;
@@ -1338,4 +1337,23 @@ public void findsWithNativeProjection() {
13381337
assertThat(repository.findDocumentById(dave.getId()).get()).containsEntry("firstname", dave.getFirstname())
13391338
.containsEntry("lastname", dave.getLastname());
13401339
}
1340+
1341+
@Test // DATAMONGO-1677
1342+
public void findWithMoreThan10Arguments() {
1343+
1344+
alicia.setSkills(Arrays.asList("musician", "singer", "composer", "actress", "pianist"));
1345+
alicia.setAddress(new Address("street", "zipCode", "city"));
1346+
alicia.setUniqueId(UUID.randomUUID());
1347+
UsernameAndPassword credentials = new UsernameAndPassword();
1348+
credentials.password = "keys";
1349+
credentials.username = "alicia";
1350+
alicia.credentials = credentials;
1351+
1352+
alicia = repository.save(this.alicia);
1353+
1354+
assertThat(repository.findPersonByManyArguments(this.alicia.getFirstname(), this.alicia.getLastname(), this.alicia.getEmail(),
1355+
this.alicia.getAge(), Sex.FEMALE, this.alicia.createdAt, alicia.getSkills(), "street", "zipCode", "city",
1356+
alicia.getUniqueId(), credentials.username, credentials.password)
1357+
).isNotNull();
1358+
}
13411359
}

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/Address.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ protected Address() {
3232
}
3333

3434
/**
35-
* @param string
36-
* @param string2
37-
* @param string3
35+
* @param street
36+
* @param zipcode
37+
* @param city
3838
*/
3939
public Address(String street, String zipcode, String city) {
4040
this.street = street;

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,4 +394,10 @@ Page<Person> findByCustomQueryLastnameAndAddressStreetInList(String lastname, Li
394394

395395
@Query(value = "{_id:?0}")
396396
Optional<org.bson.Document> findDocumentById(String id);
397+
398+
@Query(
399+
value = "{ 'firstname' : ?0, 'lastname' : ?1, 'email' : ?2 , 'age' : ?3, 'sex' : ?4, 'createdAt' : ?5, 'skills' : ?6, 'address.street' : ?7, 'address.zipCode' : ?8, 'address.city' : ?9, 'uniqueId' : ?10, 'credentials.username' : ?11, 'credentials.password' : ?12 }")
400+
Person findPersonByManyArguments(String firstname, String lastname, String email, Integer age, Sex sex,
401+
Date createdAt, List<String> skills, String street, String zipCode, String city, UUID uniqueId, String username,
402+
String password);
397403
}

0 commit comments

Comments
 (0)