@@ -2088,6 +2088,35 @@ public void clientChecksInboundMetadataSize_trailer() throws Exception {
20882088 assertNull (metadata .get (tellTaleKey ));
20892089 }
20902090
2091+ @ Test
2092+ public void serverStream_triggerEvent () throws Exception {
2093+ server .start (serverListener );
2094+ client = newClientTransport (server );
2095+ startTransport (client , mockClientTransportListener );
2096+ MockServerTransportListener serverTransportListener
2097+ = serverListener .takeListenerOrFail (TIMEOUT_MS , TimeUnit .MILLISECONDS );
2098+ serverTransport = serverTransportListener .transport ;
2099+
2100+ ClientStream clientStream = client .newStream (
2101+ methodDescriptor , new Metadata (), callOptions , noopTracers );
2102+ ClientStreamListenerBase clientStreamListener = new ClientStreamListenerBase ();
2103+ clientStream .start (clientStreamListener );
2104+
2105+ StreamCreation serverStreamCreation
2106+ = serverTransportListener .takeStreamOrFail (TIMEOUT_MS , TimeUnit .MILLISECONDS );
2107+ ServerStream serverStream = serverStreamCreation .stream ;
2108+ ServerStreamListenerBase serverStreamListener = serverStreamCreation .listener ;
2109+
2110+ Object event = new Object ();
2111+ serverStream .triggerEvent (event );
2112+
2113+ Object receivedEvent = serverStreamListener .eventQueue .poll (TIMEOUT_MS , TimeUnit .MILLISECONDS );
2114+ assertEquals (event , receivedEvent );
2115+
2116+ // Cleanup
2117+ clientStream .cancel (Status .CANCELLED );
2118+ }
2119+
20912120 /**
20922121 * Helper that simply does an RPC. It can be used similar to a sleep for negative testing: to give
20932122 * time for actions _not_ to happen. Since it is based on doing an actual RPC with actual
0 commit comments