ArmeriaServerCall extends ServerCall<I, O> implements ArmeriaMessageDeframer.Listener, TransportStatusListener { @Override public boolean isCancelled() { return cancelled; } ArmeriaServerCall(HttpHeaders clientHeaders,
                      MethodDescriptor<I, O> method,
                      CompressorRegistry compressorRegistry,
                      DecompressorRegistry decompressorRegistry,
                      HttpResponseWriter res,
                      int maxInboundMessageSizeBytes,
                      int maxOutboundMessageSizeBytes,
                      ServiceRequestContext ctx,
                      SerializationFormat serializationFormat,
                      @Nullable GrpcJsonMarshaller jsonMarshaller,
                      boolean unsafeWrapRequestBuffers,
                      boolean useBlockingTaskExecutor,
                      ResponseHeaders defaultHeaders); @Override void request(int numMessages); @Override void sendHeaders(Metadata metadata); @Override void sendMessage(O message); @Override boolean isReady(); @Override void close(Status status, Metadata metadata); @Override boolean isCancelled(); @Override synchronized void setMessageCompression(boolean messageCompression); @Override synchronized void setCompression(String compressorName); @Override MethodDescriptor<I, O> getMethodDescriptor(); @Override void messageRead(DeframedMessage message); @Override void endOfStream(); @Override void transportReportStatus(Status status, Metadata unused);  }
@Test public void closedIfCancelled() { assertThat(call.isCancelled()).isFalse(); completionFuture.completeExceptionally(ClosedSessionException.get()); await().untilAsserted(() -> assertThat(call.isCancelled()).isTrue()); }