diff options
Diffstat (limited to 'Firestore/Example/Tests/Integration/API/FIRValidationTests.mm')
-rw-r--r-- | Firestore/Example/Tests/Integration/API/FIRValidationTests.mm | 22 |
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 |