aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm')
-rw-r--r--Firestore/Example/Tests/Integration/API/FIRFieldsTests.mm25
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