diff options
author | 2017-12-19 13:47:04 -0500 | |
---|---|---|
committer | 2017-12-19 13:47:04 -0500 | |
commit | 9ddf3637ac984abfe16d4ebef6ff3947b4e946c1 (patch) | |
tree | 008d6eea9adc10675c79c7152703f4fd05af4cf9 /Firestore/Example/Tests/Model/FSTDocumentTests.m | |
parent | 52cdf0b25a12b5baed8546893634dab9c1a03e56 (diff) |
Firestore `isEqual()` on Public Types (#569)
* add bone code for new isEqual and unit test for old isEqual
* add bone code for `FIRCollectionReference`, `FIRDocumentSnapshot`, `FIRFieldValue`, `FIRQuerySnapshot`, `FIRSnapshotMetadata`;
* change inconsistenciness of `FIRFieldPath.isEqual` implementation;
* add unit test (and file) for `FIRDocumentReferenceTest.m`, `FIRFieldPathTest.m`, `FIRQueryTests.testEquals`; `FIRGeoPoint` already has test and Blob is internal type.
* Implement isEqual for FIRCollectionReference
adding the working code and unit test.
* implement isEqual for FIRSnapshotMetadata
* Implement isEqual for FIRDocumentSnapshot
* Implement isEqual for FIRQuerySnapshot
* (un)implement `isEqual` for `FIRFieldValue`
Since `FIRFieldValue` both types are singleton, we do not need override `isEqual`. Add test to test the default `NSObject` `isEqual` works just fine.
* fix style with `scripts/style.sh`
* Implement hash for those with overridden isEqual without hash yet.
* refactor to use test helper functions -- FSTTestFirestore, FSTTestPath, FSTTestDocKey
* refactor using test helper `FSTTestDocSnapshot`, `FSTTestFieldPath`, `FSTTestQuery`, `FSTTestDoc`
* refactoring to use test helper method `FSTTestQuerySnapshot`,
* remove unneccessary nil-check, check isKindOfClass instead of isEqual
* refactoring: adding `FSTAPIHelpers.{h,m}`, `FSTTest{Collection,Document}Ref`, better naming and style fix
* a file forgot in last commit
* mainly clean up import and some minor refactoring
* fix style via style.sh
* minor style fix
* add pragma ignored -Wnonnull
Diffstat (limited to 'Firestore/Example/Tests/Model/FSTDocumentTests.m')
-rw-r--r-- | Firestore/Example/Tests/Model/FSTDocumentTests.m | 63 |
1 files changed, 28 insertions, 35 deletions
diff --git a/Firestore/Example/Tests/Model/FSTDocumentTests.m b/Firestore/Example/Tests/Model/FSTDocumentTests.m index e56ab34..59f526d 100644 --- a/Firestore/Example/Tests/Model/FSTDocumentTests.m +++ b/Firestore/Example/Tests/Model/FSTDocumentTests.m @@ -33,20 +33,20 @@ NS_ASSUME_NONNULL_BEGIN @implementation FSTDocumentTests - (void)testConstructor { - FSTDocumentKey *key = [FSTDocumentKey keyWithPathString:@"messages/first"]; + FSTDocumentKey *key = FSTTestDocKey(@"messages/first"); FSTSnapshotVersion *version = FSTTestVersion(1); FSTObjectValue *data = FSTTestObjectValue(@{ @"a" : @1 }); FSTDocument *doc = [FSTDocument documentWithData:data key:key version:version hasLocalMutations:NO]; - XCTAssertEqualObjects(doc.key, [FSTDocumentKey keyWithPathString:@"messages/first"]); + XCTAssertEqualObjects(doc.key, FSTTestDocKey(@"messages/first")); XCTAssertEqualObjects(doc.version, version); XCTAssertEqualObjects(doc.data, data); XCTAssertEqual(doc.hasLocalMutations, NO); } - (void)testExtractsFields { - FSTDocumentKey *key = [FSTDocumentKey keyWithPathString:@"rooms/eros"]; + FSTDocumentKey *key = FSTTestDocKey(@"rooms/eros"); FSTSnapshotVersion *version = FSTTestVersion(1); FSTObjectValue *data = FSTTestObjectValue(@{ @"desc" : @"Discuss all the project related stuff", @@ -62,38 +62,31 @@ NS_ASSUME_NONNULL_BEGIN } - (void)testIsEqual { - FSTDocumentKey *key1 = [FSTDocumentKey keyWithPathString:@"messages/first"]; - FSTDocumentKey *key2 = [FSTDocumentKey keyWithPathString:@"messages/second"]; - FSTObjectValue *data1 = FSTTestObjectValue(@{ @"a" : @1 }); - FSTObjectValue *data2 = FSTTestObjectValue(@{ @"b" : @1 }); - FSTSnapshotVersion *version1 = FSTTestVersion(1); - - FSTDocument *doc1 = - [FSTDocument documentWithData:data1 key:key1 version:version1 hasLocalMutations:NO]; - FSTDocument *doc2 = - [FSTDocument documentWithData:data1 key:key1 version:version1 hasLocalMutations:NO]; - - XCTAssertEqualObjects(doc1, doc2); - XCTAssertEqualObjects( - doc1, [FSTDocument documentWithData:FSTTestObjectValue( - @{ @"a" : @1 }) - key:[FSTDocumentKey keyWithPathString:@"messages/first"] - version:version1 - hasLocalMutations:NO]); - - FSTSnapshotVersion *version2 = FSTTestVersion(2); - XCTAssertNotEqualObjects( - doc1, [FSTDocument documentWithData:data2 key:key1 version:version1 hasLocalMutations:NO]); - XCTAssertNotEqualObjects( - doc1, [FSTDocument documentWithData:data1 key:key2 version:version1 hasLocalMutations:NO]); - XCTAssertNotEqualObjects( - doc1, [FSTDocument documentWithData:data1 key:key1 version:version2 hasLocalMutations:NO]); - XCTAssertNotEqualObjects( - doc1, [FSTDocument documentWithData:data1 key:key1 version:version1 hasLocalMutations:YES]); - - XCTAssertEqualObjects( - [FSTDocument documentWithData:data1 key:key1 version:version1 hasLocalMutations:YES], - [FSTDocument documentWithData:data1 key:key1 version:version1 hasLocalMutations:5]); + XCTAssertEqualObjects(FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, NO), + FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, NO)); + XCTAssertNotEqualObjects(FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, NO), + FSTTestDoc(@"messages/first", 1, + @{ @"b" : @1 }, NO)); + XCTAssertNotEqualObjects(FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, NO), + FSTTestDoc(@"messages/second", 1, + @{ @"b" : @1 }, NO)); + XCTAssertNotEqualObjects(FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, NO), + FSTTestDoc(@"messages/first", 2, + @{ @"a" : @1 }, NO)); + XCTAssertNotEqualObjects(FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, NO), + FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, YES)); + + XCTAssertEqualObjects(FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, YES), + FSTTestDoc(@"messages/first", 1, + @{ @"a" : @1 }, 5)); } @end |