Browse Source

Fix Query equality test considering Limit.

Closes #4584
pull/4616/head
Mark Paluch 2 years ago
parent
commit
69e1795f46
No known key found for this signature in database
GPG Key ID: 55BC6374BAA9D973
  1. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java
  2. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java

@ -750,7 +750,7 @@ public class Query implements ReadConcernAware, ReadPreferenceAware {
boolean sortEqual = this.sort.equals(that.sort); boolean sortEqual = this.sort.equals(that.sort);
boolean hintEqual = nullSafeEquals(this.hint, that.hint); boolean hintEqual = nullSafeEquals(this.hint, that.hint);
boolean skipEqual = this.skip == that.skip; boolean skipEqual = this.skip == that.skip;
boolean limitEqual = this.limit == that.limit; boolean limitEqual = nullSafeEquals(this.limit, that.limit);
boolean metaEqual = nullSafeEquals(this.meta, that.meta); boolean metaEqual = nullSafeEquals(this.meta, that.meta);
boolean collationEqual = nullSafeEquals(this.collation.orElse(null), that.collation.orElse(null)); boolean collationEqual = nullSafeEquals(this.collation.orElse(null), that.collation.orElse(null));

5
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java

@ -89,7 +89,7 @@ class QueryTests {
.parse("{ \"$nor\" : [ { \"name\" : \"Sven\"} , { \"age\" : { \"$lt\" : 50}} , { \"name\" : \"Thomas\"}]}")); .parse("{ \"$nor\" : [ { \"name\" : \"Sven\"} , { \"age\" : { \"$lt\" : 50}} , { \"name\" : \"Thomas\"}]}"));
} }
@Test @Test // GH-4584
void testQueryWithLimit() { void testQueryWithLimit() {
Query q = new Query(where("name").gte("M").lte("T").and("age").not().gt(22)); Query q = new Query(where("name").gte("M").lte("T").and("age").not().gt(22));
@ -110,6 +110,9 @@ class QueryTests {
q.limit(Limit.of(-1)); q.limit(Limit.of(-1));
assertThat(q.getLimit()).isZero(); assertThat(q.getLimit()).isZero();
assertThat(q.isLimited()).isFalse(); assertThat(q.isLimited()).isFalse();
Query other = new Query(where("name").gte("M")).limit(Limit.of(10));
assertThat(new Query(where("name").gte("M")).limit(10)).isEqualTo(other).hasSameHashCodeAs(other);
} }
@Test @Test

Loading…
Cancel
Save