23
23
24
24
import org .bson .Document ;
25
25
import org .junit .Test ;
26
-
27
26
import org .springframework .data .geo .Point ;
28
27
import org .springframework .data .mongodb .InvalidMongoDbApiUsageException ;
29
28
import org .springframework .data .mongodb .core .geo .GeoJsonLineString ;
30
29
import org .springframework .data .mongodb .core .geo .GeoJsonPoint ;
30
+ import org .springframework .data .mongodb .core .schema .JsonSchemaObject .Type ;
31
31
import org .springframework .data .mongodb .core .schema .MongoJsonSchema ;
32
32
33
33
/**
@@ -90,8 +90,7 @@ public void equalIfCriteriaMatches() {
90
90
@ Test // GH-3286
91
91
public void shouldBuildCorrectAndOperator () {
92
92
93
- Collection <Criteria > operatorCriteria = Arrays .asList (Criteria .where ("x" ).is (true ),
94
- Criteria .where ("y" ).is (42 ),
93
+ Collection <Criteria > operatorCriteria = Arrays .asList (Criteria .where ("x" ).is (true ), Criteria .where ("y" ).is (42 ),
95
94
Criteria .where ("z" ).is ("value" ));
96
95
97
96
Criteria criteria = Criteria .where ("foo" ).is ("bar" ).andOperator (operatorCriteria );
@@ -103,8 +102,7 @@ public void shouldBuildCorrectAndOperator() {
103
102
@ Test // GH-3286
104
103
public void shouldBuildCorrectOrOperator () {
105
104
106
- Collection <Criteria > operatorCriteria = Arrays .asList (Criteria .where ("x" ).is (true ),
107
- Criteria .where ("y" ).is (42 ),
105
+ Collection <Criteria > operatorCriteria = Arrays .asList (Criteria .where ("x" ).is (true ), Criteria .where ("y" ).is (42 ),
108
106
Criteria .where ("z" ).is ("value" ));
109
107
110
108
Criteria criteria = Criteria .where ("foo" ).is ("bar" ).orOperator (operatorCriteria );
@@ -116,8 +114,7 @@ public void shouldBuildCorrectOrOperator() {
116
114
@ Test // GH-3286
117
115
public void shouldBuildCorrectNorOperator () {
118
116
119
- Collection <Criteria > operatorCriteria = Arrays .asList (Criteria .where ("x" ).is (true ),
120
- Criteria .where ("y" ).is (42 ),
117
+ Collection <Criteria > operatorCriteria = Arrays .asList (Criteria .where ("x" ).is (true ), Criteria .where ("y" ).is (42 ),
121
118
Criteria .where ("z" ).is ("value" ));
122
119
123
120
Criteria criteria = Criteria .where ("foo" ).is ("bar" ).norOperator (operatorCriteria );
@@ -205,6 +202,14 @@ public void getCriteriaObjectShouldRespectNotWhenNoKeyPresent() {
205
202
assertThat (document ).isEqualTo (new Document ().append ("$not" , new Document ("$lt" , "foo" )));
206
203
}
207
204
205
+ @ Test // GH-4220
206
+ public void usesCorrectBsonType () {
207
+
208
+ Document document = new Criteria ("foo" ).type (Type .BOOLEAN ).getCriteriaObject ();
209
+
210
+ assertThat (document ).containsEntry ("foo.$type" , Collections .singletonList ("bool" ));
211
+ }
212
+
208
213
@ Test // DATAMONGO-1135
209
214
public void geoJsonTypesShouldBeWrappedInGeometry () {
210
215
@@ -302,8 +307,7 @@ public void shouldAppendBitsAllClearWithIntBitmaskCorrectly() {
302
307
303
308
Criteria numericBitmaskCriteria = new Criteria ("field" ).bits ().allClear (0b101);
304
309
305
- assertThat (numericBitmaskCriteria .getCriteriaObject ())
306
- .isEqualTo ("{ \" field\" : { \" $bitsAllClear\" : 5} }" );
310
+ assertThat (numericBitmaskCriteria .getCriteriaObject ()).isEqualTo ("{ \" field\" : { \" $bitsAllClear\" : 5} }" );
307
311
}
308
312
309
313
@ Test // DATAMONGO-1808
@@ -320,8 +324,7 @@ public void shouldAppendBitsAllSetWithIntBitmaskCorrectly() {
320
324
321
325
Criteria numericBitmaskCriteria = new Criteria ("field" ).bits ().allSet (0b101);
322
326
323
- assertThat (numericBitmaskCriteria .getCriteriaObject ())
324
- .isEqualTo ("{ \" field\" : { \" $bitsAllSet\" : 5} }" );
327
+ assertThat (numericBitmaskCriteria .getCriteriaObject ()).isEqualTo ("{ \" field\" : { \" $bitsAllSet\" : 5} }" );
325
328
}
326
329
327
330
@ Test // DATAMONGO-1808
@@ -338,8 +341,7 @@ public void shouldAppendBitsAnyClearWithIntBitmaskCorrectly() {
338
341
339
342
Criteria numericBitmaskCriteria = new Criteria ("field" ).bits ().anyClear (0b101);
340
343
341
- assertThat (numericBitmaskCriteria .getCriteriaObject ())
342
- .isEqualTo ("{ \" field\" : { \" $bitsAnyClear\" : 5} }" );
344
+ assertThat (numericBitmaskCriteria .getCriteriaObject ()).isEqualTo ("{ \" field\" : { \" $bitsAnyClear\" : 5} }" );
343
345
}
344
346
345
347
@ Test // DATAMONGO-1808
@@ -356,8 +358,7 @@ public void shouldAppendBitsAnySetWithIntBitmaskCorrectly() {
356
358
357
359
Criteria numericBitmaskCriteria = new Criteria ("field" ).bits ().anySet (0b101);
358
360
359
- assertThat (numericBitmaskCriteria .getCriteriaObject ())
360
- .isEqualTo ("{ \" field\" : { \" $bitsAnySet\" : 5} }" );
361
+ assertThat (numericBitmaskCriteria .getCriteriaObject ()).isEqualTo ("{ \" field\" : { \" $bitsAnySet\" : 5} }" );
361
362
}
362
363
363
364
@ Test // DATAMONGO-1808
@@ -429,14 +430,10 @@ public void shouldEqualForSamePatternAndFlags() {
429
430
@ Test // GH-3414
430
431
public void shouldEqualForNestedPattern () {
431
432
432
- Criteria left = new Criteria ("a" ).orOperator (
433
- new Criteria ("foo" ).regex ("value" , "i" ),
434
- new Criteria ("bar" ).regex ("value" )
435
- );
436
- Criteria right = new Criteria ("a" ).orOperator (
437
- new Criteria ("foo" ).regex ("value" , "i" ),
438
- new Criteria ("bar" ).regex ("value" )
439
- );
433
+ Criteria left = new Criteria ("a" ).orOperator (new Criteria ("foo" ).regex ("value" , "i" ),
434
+ new Criteria ("bar" ).regex ("value" ));
435
+ Criteria right = new Criteria ("a" ).orOperator (new Criteria ("foo" ).regex ("value" , "i" ),
436
+ new Criteria ("bar" ).regex ("value" ));
440
437
441
438
assertThat (left ).isEqualTo (right );
442
439
}
0 commit comments