|  | @@ -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];
 |