diff options
author | 2017-10-24 12:57:56 -0700 | |
---|---|---|
committer | 2017-10-24 12:57:56 -0700 | |
commit | 8bdce1dfa4cd8377e7b90b21e973608e7c688642 (patch) | |
tree | 0914dcbd2c15f5cf9383ff29226f1e00141ae58d /Firestore/Example/Tests/Remote | |
parent | 2cdc90eaf62193d2eeb1cb047bc53767c989dc76 (diff) |
Moving the StreamTest to integration tests (#391)
Diffstat (limited to 'Firestore/Example/Tests/Remote')
-rw-r--r-- | Firestore/Example/Tests/Remote/FSTStreamTests.m | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/Firestore/Example/Tests/Remote/FSTStreamTests.m b/Firestore/Example/Tests/Remote/FSTStreamTests.m deleted file mode 100644 index f27b200..0000000 --- a/Firestore/Example/Tests/Remote/FSTStreamTests.m +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "Remote/FSTDatastore.h" - -#import <OCMock/OCMock.h> -#import <XCTest/XCTest.h> - -#import "Auth/FSTEmptyCredentialsProvider.h" -#import "Core/FSTDatabaseInfo.h" -#import "Model/FSTDatabaseID.h" -#import "Protos/objc/google/firestore/v1beta1/Firestore.pbrpc.h" -#import "Util/FSTDispatchQueue.h" - -/** Expose otherwise private methods for testing. */ -@interface FSTStream (Testing) - -- (void)writesFinishedWithError:(NSError *_Nullable)error; - -@end - -@interface FSTStreamTests : XCTestCase -@end - -@implementation FSTStreamTests { - dispatch_queue_t _testQueue; - FSTDatabaseInfo *_databaseInfo; - FSTDispatchQueue *_workerDispatchQueue; - id<FSTCredentialsProvider> _credentials; -} - -- (void)setUp { - [super setUp]; - - FSTDatabaseID *databaseID = - [FSTDatabaseID databaseIDWithProject:@"project" database:kDefaultDatabaseID]; - _databaseInfo = [FSTDatabaseInfo databaseInfoWithDatabaseID:databaseID - persistenceKey:@"test" - host:@"test-host" - sslEnabled:NO]; - - _testQueue = dispatch_queue_create("com.firebase.testing", DISPATCH_QUEUE_SERIAL); - _workerDispatchQueue = [FSTDispatchQueue queueWith:_testQueue]; - _credentials = [[FSTEmptyCredentialsProvider alloc] init]; -} - -- (void)tearDown { - [super tearDown]; -} - -- (void)testWatchStreamStop { - id delegate = OCMStrictProtocolMock(@protocol(FSTWatchStreamDelegate)); - - FSTWatchStream *stream = - OCMPartialMock([[FSTWatchStream alloc] initWithDatabase:_databaseInfo - workerDispatchQueue:_workerDispatchQueue - credentials:_credentials - responseMessageClass:[GCFSWriteResponse class] - delegate:delegate]); - OCMStub([stream createRPCWithRequestsWriter:[OCMArg any]]).andReturn(nil); - - // Start the stream up but that's not really the interesting bit. This is complicated by the fact - // that startup involves redispatching after credentials are returned. - dispatch_semaphore_t openCompleted = dispatch_semaphore_create(0); - OCMStub([delegate watchStreamDidOpen]).andDo(^(NSInvocation *invocation) { - dispatch_semaphore_signal(openCompleted); - }); - dispatch_async(_testQueue, ^{ - [stream start]; - }); - dispatch_semaphore_wait(openCompleted, DISPATCH_TIME_FOREVER); - OCMVerifyAll(delegate); - - // Stop must not call watchStreamDidClose because the full implementation of the delegate could - // attempt to restart the stream in the event it had pending watches. - dispatch_sync(_testQueue, ^{ - [stream stop]; - }); - OCMVerifyAll(delegate); - - // Simulate a final callback from GRPC - [stream writesFinishedWithError:nil]; - // Drain queue - dispatch_sync(_testQueue, ^{ - }); - OCMVerifyAll(delegate); -} - -- (void)testWriteStreamStop { - id delegate = OCMStrictProtocolMock(@protocol(FSTWriteStreamDelegate)); - - FSTWriteStream *stream = - OCMPartialMock([[FSTWriteStream alloc] initWithDatabase:_databaseInfo - workerDispatchQueue:_workerDispatchQueue - credentials:_credentials - responseMessageClass:[GCFSWriteResponse class] - delegate:delegate]); - OCMStub([stream createRPCWithRequestsWriter:[OCMArg any]]).andReturn(nil); - - // Start the stream up but that's not really the interesting bit. - dispatch_semaphore_t openCompleted = dispatch_semaphore_create(0); - OCMStub([delegate writeStreamDidOpen]).andDo(^(NSInvocation *invocation) { - dispatch_semaphore_signal(openCompleted); - }); - dispatch_async(_testQueue, ^{ - [stream start]; - }); - dispatch_semaphore_wait(openCompleted, DISPATCH_TIME_FOREVER); - OCMVerifyAll(delegate); - - // Stop must not call writeStreamDidClose because the full implementation of this delegate could - // attempt to restart the stream in the event it had pending writes. - dispatch_sync(_testQueue, ^{ - [stream stop]; - }); - OCMVerifyAll(delegate); - - // Simulate a final callback from GRPC - [stream writesFinishedWithError:nil]; - // Drain queue - dispatch_sync(_testQueue, ^{ - }); - OCMVerifyAll(delegate); -} - -@end |