From ce2191c04c8640a8ba3fd6445d061a53d3b8070e Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Tue, 3 Oct 2017 15:54:47 -0700 Subject: Adding test for merge with server timestamps (#329) --- .../Tests/Integration/API/FIRDatabaseTests.m | 36 +++++++++++++++++++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/Firestore/Example/Tests/Integration/API/FIRDatabaseTests.m b/Firestore/Example/Tests/Integration/API/FIRDatabaseTests.m index d5558cc..ebfd826 100644 --- a/Firestore/Example/Tests/Integration/API/FIRDatabaseTests.m +++ b/Firestore/Example/Tests/Integration/API/FIRDatabaseTests.m @@ -119,7 +119,7 @@ @"desc" : @"Description", @"owner.data" : @{@"name" : @"Jonny", @"email" : @"abc@xyz.com"} }; - NSDictionary *updateData = + NSDictionary *mergeData = @{ @"updated" : @YES, @"owner.data" : @{@"name" : @"Sebastian"} }; NSDictionary *finalData = @{ @@ -133,7 +133,7 @@ XCTestExpectation *completed = [self expectationWithDescription:@"testCanMergeDataWithAnExistingDocumentUsingSet"]; - [doc setData:updateData + [doc setData:mergeData options:[FIRSetOptions merge] completion:^(NSError *error) { XCTAssertNil(error); @@ -146,6 +146,34 @@ XCTAssertEqualObjects(document.data, finalData); } +- (void)testCanMergeServerTimestamps { + FIRDocumentReference *doc = [[self.db collectionWithPath:@"rooms"] documentWithAutoID]; + + NSDictionary *initialData = @{ + @"updated" : @NO, + }; + NSDictionary *mergeData = + @{@"time" : [FIRFieldValue fieldValueForServerTimestamp]}; + + [self writeDocumentRef:doc data:initialData]; + + XCTestExpectation *completed = + [self expectationWithDescription:@"testCanMergeDataWithAnExistingDocumentUsingSet"]; + + [doc setData:mergeData + options:[FIRSetOptions merge] + completion:^(NSError *error) { + XCTAssertNil(error); + [completed fulfill]; + }]; + + [self awaitExpectations]; + + FIRDocumentSnapshot *document = [self readDocumentForRef:doc]; + XCTAssertEqual(@NO, document[@"updated"]); + XCTAssertTrue([document[@"time"] isKindOfClass:[NSDate class]]); +} + - (void)testMergeReplacesArrays { FIRDocumentReference *doc = [[self.db collectionWithPath:@"rooms"] documentWithAutoID]; @@ -155,7 +183,7 @@ @"topLevel" : @[ @"old", @"old" ], @"mapInArray" : @[ @{@"data" : @"old"} ] }; - NSDictionary *updateData = + NSDictionary *mergeData = @{ @"data" : @"new", @"topLevel" : @[ @"new" ], @"mapInArray" : @[ @{@"data" : @"new"} ] }; @@ -171,7 +199,7 @@ XCTestExpectation *completed = [self expectationWithDescription:@"testCanMergeDataWithAnExistingDocumentUsingSet"]; - [doc setData:updateData + [doc setData:mergeData options:[FIRSetOptions merge] completion:^(NSError *error) { XCTAssertNil(error); -- cgit v1.2.3