diff --git a/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m b/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m
index 2ef6a6e4ab9aaf33abb0641b68ce767ce01f5af1..322d86d04b5d238c181d700118392158e7642c7d 100644
--- a/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m
+++ b/src/objective-c/examples/Sample/SampleTests/RemoteProtoTests.m
@@ -69,7 +69,7 @@
 }
 
 - (void)testLargeUnaryRPC {
-  __weak XCTestExpectation *expectation = [self expectationWithDescription:@"EmptyUnary"];
+  __weak XCTestExpectation *expectation = [self expectationWithDescription:@"LargeUnary"];
 
   RMTSimpleRequest *request = [[[[[[RMTSimpleRequestBuilder alloc] init]
                                   setResponseType:RMTPayloadTypeCompressable]
@@ -95,7 +95,7 @@
 }
 
 - (void)testClientStreamingRPC {
-  __weak XCTestExpectation *expectation = [self expectationWithDescription:@"EmptyUnary"];
+  __weak XCTestExpectation *expectation = [self expectationWithDescription:@"ClientStreaming"];
 
   id request1 = [[[[RMTStreamingInputCallRequestBuilder alloc] init]
                   setPayloadBuilder:[[[RMTPayloadBuilder alloc] init]
@@ -130,4 +130,34 @@
   [self waitForExpectationsWithTimeout:4. handler:nil];
 }
 
+- (void)testServerStreamingRPC {
+  __weak XCTestExpectation *expectation = [self expectationWithDescription:@"ServerStreaming"];
+  NSArray *expectedSizes = @[@31415, @9, @2653, @58979];
+  int index = 0;
+  id request = [[[[[[[RMTStreamingOutputCallRequestBuilder alloc] init]
+                    addResponseParameters:[[[[RMTResponseParametersBuilder alloc] init]
+                                            setSize:31415] build]]
+                   addResponseParameters:[[[[RMTResponseParametersBuilder alloc] init]
+                                           setSize:9] build]]
+                  addResponseParameters:[[[[RMTResponseParametersBuilder alloc] init]
+                                          setSize:2653] build]]
+                 addResponseParameters:[[[[RMTResponseParametersBuilder alloc] init]
+                                         setSize:58979] build]]
+                build];
+  [_service streamingOutputCallWithRequest:request handler:^(BOOL done, RMTStreamingOutputCallResponse *response, NSError *error){
+    XCTAssertNil(error, @"Finished with unexpected error: %@", error);
+    
+    id expectedResponseBuilder = [[RMTStreamingOutputCallResponseBuilder alloc] init];
+    id expectedPayload = [[[RMTPayloadBuilder alloc] init]
+                          setBody:[NSMutableData dataWithLength:expectedSizes[index]]];
+    expectedResponseBuilder = [expectedResponseBuilder setPayload:expectedPayload];
+    id expectedResponse = [expectedResponseBuilder build];
+    XCTAssertEqualObjects(response, expectedResponse);
+    
+    [expectation fulfill];
+  }];
+  
+  [self waitForExpectationsWithTimeout:4 handler:nil];
+}
+
 @end