diff options
Diffstat (limited to 'Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm')
-rw-r--r-- | Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm b/Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm index 34bd87e..0e75b8e 100644 --- a/Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm +++ b/Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm @@ -14,6 +14,7 @@ * limitations under the License. */ +#import <FirebaseFirestore/FIRTimestamp.h> #import <FirebaseFirestore/FirebaseFirestore.h> #import <XCTest/XCTest.h> @@ -220,4 +221,28 @@ [self awaitExpectations]; } +- (NSDictionary<NSString *, id> *)testDataWithTimestamp:(FIRTimestamp *)timestamp { + return @{ + @"timestamp" : [timestamp approximateDateValue], + @"metadata" : @{@"nestedTimestamp" : [timestamp approximateDateValue]} + }; +} + +// This test should break once the default for how timestamps are returned changes. +- (void)testThatDataContainsNativeDateType { + NSDate *date = [NSDate date]; + FIRTimestamp *timestamp = [FIRTimestamp timestampWithDate:date]; + FIRDocumentReference *doc = [self documentRef]; + [self writeDocumentRef:doc data:[self testDataWithTimestamp:timestamp]]; + + FIRDocumentSnapshot *result = [self readDocumentForRef:doc]; + NSDate *resultDate = result.data[@"timestamp"]; + XCTAssertEqualWithAccuracy([resultDate timeIntervalSince1970], [date timeIntervalSince1970], + 0.000001); + XCTAssertEqualObjects(result.data[@"timestamp"], resultDate); + NSDate *resultNestedDate = result[@"metadata.nestedTimestamp"]; + XCTAssertEqualWithAccuracy([resultNestedDate timeIntervalSince1970], [date timeIntervalSince1970], + 0.000001); +} + @end |