aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Example/Tests/Integration/API/FIRValidationTests.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/Example/Tests/Integration/API/FIRValidationTests.mm')
-rw-r--r--Firestore/Example/Tests/Integration/API/FIRValidationTests.mm22
1 files changed, 21 insertions, 1 deletions
diff --git a/Firestore/Example/Tests/Integration/API/FIRValidationTests.mm b/Firestore/Example/Tests/Integration/API/FIRValidationTests.mm
index ee0f386..6d10aba 100644
--- a/Firestore/Example/Tests/Integration/API/FIRValidationTests.mm
+++ b/Firestore/Example/Tests/Integration/API/FIRValidationTests.mm
@@ -19,6 +19,7 @@
#import <XCTest/XCTest.h>
#import "Firestore/Source/API/FIRFieldValue+Internal.h"
+#import "Firestore/Source/API/FIRQuery+Internal.h"
#import "Firestore/Example/Tests/Util/FSTHelpers.h"
#import "Firestore/Example/Tests/Util/FSTIntegrationTestCase.h"
@@ -419,14 +420,20 @@
@"Invalid Query. Query limit (-1) is invalid. Limit must be positive.");
}
-- (void)testQueryInequalityOnNullOrNaNFails {
+- (void)testNonEqualityQueriesOnNullOrNaNFail {
FSTAssertThrows([[self collectionRef] queryWhereField:@"a" isGreaterThan:nil],
@"Invalid Query. You can only perform equality comparisons on nil / NSNull.");
FSTAssertThrows([[self collectionRef] queryWhereField:@"a" isGreaterThan:[NSNull null]],
@"Invalid Query. You can only perform equality comparisons on nil / NSNull.");
+ FSTAssertThrows([[self collectionRef] queryWhereField:@"a" arrayContains:nil],
+ @"Invalid Query. You can only perform equality comparisons on nil / NSNull.");
+ FSTAssertThrows([[self collectionRef] queryWhereField:@"a" arrayContains:[NSNull null]],
+ @"Invalid Query. You can only perform equality comparisons on nil / NSNull.");
FSTAssertThrows([[self collectionRef] queryWhereField:@"a" isGreaterThan:@(NAN)],
@"Invalid Query. You can only perform equality comparisons on NaN.");
+ FSTAssertThrows([[self collectionRef] queryWhereField:@"a" arrayContains:@(NAN)],
+ @"Invalid Query. You can only perform equality comparisons on NaN.");
}
- (void)testQueryCannotBeCreatedFromDocumentsMissingSortValues {
@@ -498,6 +505,12 @@
@"Invalid query. When querying by document ID you must provide a valid string or "
"DocumentReference, but it was of type: __NSCFNumber";
FSTAssertThrows([collection queryWhereFieldPath:[FIRFieldPath documentID] isEqualTo:@1], reason);
+
+ reason =
+ @"Invalid query. You can't do arrayContains queries on document ID since document IDs are "
+ @"not arrays.";
+ FSTAssertThrows([collection queryWhereFieldPath:[FIRFieldPath documentID] arrayContains:@1],
+ reason);
}
- (void)testQueryInequalityFieldMustMatchFirstOrderByField {
@@ -526,6 +539,8 @@
XCTAssertNoThrow([base queryWhereField:@"y" isEqualTo:@"cat"],
@"Inequality and equality on different fields works");
+ XCTAssertNoThrow([base queryWhereField:@"y" arrayContains:@"cat"],
+ @"Inequality and array_contains on different fields works");
XCTAssertNoThrow([base queryOrderedByField:@"x"], @"inequality same as order by works");
XCTAssertNoThrow([[coll queryOrderedByField:@"x"] queryWhereField:@"x" isGreaterThan:@32],
@@ -535,6 +550,11 @@
XCTAssertNoThrow([[[coll queryOrderedByField:@"x"] queryOrderedByField:@"y"] queryWhereField:@"x"
isGreaterThan:@32],
@"inequality same as first order by works.");
+
+ XCTAssertNoThrow([[coll queryOrderedByField:@"x"] queryWhereField:@"y" isEqualTo:@"cat"],
+ @"equality different than orderBy works.");
+ XCTAssertNoThrow([[coll queryOrderedByField:@"x"] queryWhereField:@"y" arrayContains:@"cat"],
+ @"array_contains different than orderBy works.");
}
#pragma mark - GeoPoint Validation