Add trailers to Status for BlockingResponseStream

Fixes #1861
This commit is contained in:
nmittler 2016-05-25 06:54:31 -07:00
parent 6e40edbc21
commit c102dd4e4f
1 changed files with 20 additions and 0 deletions

View File

@ -51,6 +51,7 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.Iterator;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
@ -115,4 +116,23 @@ public class ClientCallsTest {
// Exepcted
}
}
@Test public void blockingResponseStreamFailed() throws Exception {
Integer req = 2;
Iterator<String> iter = ClientCalls.blockingServerStreamingCall(call, req);
ArgumentCaptor<ClientCall.Listener<String>> listenerCaptor = ArgumentCaptor.forClass(null);
verify(call).start(listenerCaptor.capture(), any(Metadata.class));
ClientCall.Listener<String> listener = listenerCaptor.getValue();
Metadata trailers = new Metadata();
listener.onClose(Status.INTERNAL, trailers);
try {
iter.next();
fail("Should fail");
} catch (Throwable e) {
Status status = Status.fromThrowable(e);
assertEquals(Status.INTERNAL, status);
Metadata metadata = Status.trailersFromThrowable(e);
assertSame(trailers, metadata);
}
}
}