aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Michael Lumish <mlumish@google.com>2015-05-18 15:11:06 -0700
committerGravatar Michael Lumish <mlumish@google.com>2015-05-18 15:11:06 -0700
commit2a7906cf4008c3ef6a7dde8a2dcb227b35c72819 (patch)
tree13dfdefbd95bc8b3d8c8a19bcbc8413244ac8f6d /src
parentad654aca5e8b121594929f962f1937a37fe4b6e5 (diff)
parente454f4afe36eb1f47973c3ac714f453b1920d827 (diff)
Merge pull request #1643 from jcanizales/fixes-server-streaming-test
Fix false positive in server streaming test.
Diffstat (limited to 'src')
-rw-r--r--src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m b/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m
index f5c444d171..f489229834 100644
--- a/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m
+++ b/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m
@@ -129,6 +129,7 @@
- (void)testServerStreamingRPC {
__weak XCTestExpectation *expectation = [self expectationWithDescription:@"ServerStreaming"];
+
NSArray *expectedSizes = @[@31415, @9, @2653, @58979];
RMTStreamingOutputCallRequest *request = [RMTStreamingOutputCallRequest message];
@@ -144,15 +145,22 @@
RMTStreamingOutputCallResponse *response,
NSError *error){
XCTAssertNil(error, @"Finished with unexpected error: %@", error);
-
- RMTStreamingOutputCallResponse *expectedResponse = [RMTStreamingOutputCallResponse message];
- expectedResponse.payload.type = RMTPayloadType_Compressable;
- int expectedSize = [expectedSizes[index] unsignedIntegerValue];
- expectedResponse.payload.body = [NSMutableData dataWithLength:expectedSize];
- XCTAssertEqualObjects(response, expectedResponse);
-
- [expectation fulfill];
- index += 1;
+ XCTAssertTrue(done || response, @"Event handler called without an event.");
+
+ if (response) {
+ XCTAssertLessThan(index, 4, @"More than 4 responses received.");
+ RMTStreamingOutputCallResponse * expected = [RMTStreamingOutputCallResponse message];
+ expected.payload.type = RMTPayloadType_Compressable;
+ int expectedSize = [expectedSizes[index] unsignedIntegerValue];
+ expected.payload.body = [NSMutableData dataWithLength:expectedSize];
+ XCTAssertEqualObjects(response, expected);
+ index += 1;
+ }
+
+ if (done) {
+ XCTAssertEqual(index, 4, @"Received %i responses instead of 4.", index);
+ [expectation fulfill];
+ }
}];
[self waitForExpectationsWithTimeout:4 handler:nil];