@Test public void setStream_flush() { stream.start(listener); stream.flush(); stream.setStream(realStream); verify(realStream).flush(); }
@Test public void setStream_halfClose() { stream.start(listener); stream.halfClose(); stream.setStream(realStream); verify(realStream).halfClose(); }
@Test public void setStream_flowControl() { stream.start(listener); stream.request(1); stream.request(2); stream.setStream(realStream); verify(realStream).request(3); }
@Test public void setStream_cantCreateTwice() { stream.start(listener); // The first call will be a success stream.setStream(realStream); thrown.expect(IllegalStateException.class); thrown.expectMessage("Stream already created"); stream.setStream(realStream); }
@Test public void setStream_sendsAllMessages() { stream.start(listener); stream.setCompressor(Codec.Identity.NONE); stream.setDecompressor(Codec.Identity.NONE); stream.setMessageCompression(true); InputStream message = new ByteArrayInputStream(new byte[] {'a'}); stream.writeMessage(message); stream.setMessageCompression(false); stream.writeMessage(message); stream.setStream(realStream); verify(realStream).setCompressor(Codec.Identity.NONE); verify(realStream).setDecompressor(Codec.Identity.NONE); // Verify that the order was correct, even though they should be interleaved with the // writeMessage calls verify(realStream).setMessageCompression(true); verify(realStream, times(2)).setMessageCompression(false); verify(realStream, times(2)).writeMessage(message); verify(realStream).start(listener); }
@Test public void streamCancelled() { stream.start(listener); stream.cancel(Status.CANCELLED); verify(listener).closed(eq(Status.CANCELLED), isA(Metadata.class)); }