DATAMONGO-1387 - Fix BasicQuery getFieldsObject() inconsistency.
We changed BasicQuery to consider its parent getFieldsObject() when not given an explicit fields DBObject. Original Pull Request: #345 CLA: 165520160303021604 (John Willemin)
This commit is contained in:
committed by
Christoph Strobl
parent
e5a29ab1b5
commit
f36baf2e37
@@ -28,6 +28,7 @@ import com.mongodb.util.JSON;
|
|||||||
* @author Oliver Gierke
|
* @author Oliver Gierke
|
||||||
* @author Christoph Strobl
|
* @author Christoph Strobl
|
||||||
* @author Thomas Darimont
|
* @author Thomas Darimont
|
||||||
|
* @author John Willemin
|
||||||
*/
|
*/
|
||||||
public class BasicQuery extends Query {
|
public class BasicQuery extends Query {
|
||||||
|
|
||||||
@@ -70,7 +71,11 @@ public class BasicQuery extends Query {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DBObject getFieldsObject() {
|
public DBObject getFieldsObject() {
|
||||||
return fieldsObject;
|
if(fieldsObject != null) {
|
||||||
|
return fieldsObject;
|
||||||
|
} else {
|
||||||
|
return super.getFieldsObject();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import com.mongodb.DBObject;
|
|||||||
*
|
*
|
||||||
* @author Oliver Gierke
|
* @author Oliver Gierke
|
||||||
* @author Thomas Darimont
|
* @author Thomas Darimont
|
||||||
|
* @author John Willemin
|
||||||
*/
|
*/
|
||||||
public class BasicQueryUnitTests {
|
public class BasicQueryUnitTests {
|
||||||
|
|
||||||
@@ -137,4 +138,21 @@ public class BasicQueryUnitTests {
|
|||||||
assertThat(query1, is(not(equalTo(query2))));
|
assertThat(query1, is(not(equalTo(query2))));
|
||||||
assertThat(query1.hashCode(), is(not(query2.hashCode())));
|
assertThat(query1.hashCode(), is(not(query2.hashCode())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see DATAMONGO-1387
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void handlesFieldsIncludeCorrectly() {
|
||||||
|
|
||||||
|
String qry = "{ \"name\" : \"Thomas\"}";
|
||||||
|
|
||||||
|
BasicQuery query1 = new BasicQuery(qry);
|
||||||
|
query1.fields().include("name");
|
||||||
|
|
||||||
|
DBObject fieldsObject = query1.getFieldsObject();
|
||||||
|
fieldsObject.containsField("name");
|
||||||
|
assertThat(query1.getFieldsObject(), notNullValue());
|
||||||
|
assertThat(query1.getFieldsObject().containsField("name"), is(true));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user