Class FakeResponseObserver<ResponseT>

    • Field Detail

      • outputBufferSize

        public volatile int outputBufferSize
        Response observer becomes unready after each outputBufferSize messages are submitted to it. Default is 0 which means always ready.
      • unreadyDurationMillis

        public volatile long unreadyDurationMillis
        Duration for which observer will be unready. By default 1ms.
      • failOnMultipleFinalizations

        public boolean failOnMultipleFinalizations
        Should an AssertionError be thrown immediately upon second finalization. By default false.
    • Constructor Detail

      • FakeResponseObserver

        public FakeResponseObserver​(FakeResponseObserver.FailureTrackingThreadPoolExecutor grpcInternalExecutor)
        Parameters:
        grpcInternalExecutor - executor for gRPC internal tasks, such as marking response observer as ready, delivering requested messages etc. Its pool size should be not smaller than the number of requests concurrently processed by the code under test (usually determined by the argument of the initial call to ServerCallStreamObserver.request(int).
    • Method Detail

      • callWithinListenerLock

        public void callWithinListenerLock​(Consumer<io.grpc.stub.StreamObserver<ResponseT>> unaryClientMethod)
        Calls unaryClientMethod within listener's lock.
      • callWithinListenerLock

        public <RequestT> void callWithinListenerLock​(Function<io.grpc.stub.StreamObserver<ResponseT>,​io.grpc.stub.StreamObserver<RequestT>> streamingClientMethod,
                                                      Consumer<io.grpc.stub.StreamObserver<RequestT>> requestProducer)
        Calls streamingClientMethod within listener's lock and delivers request messages to returned request observer from requestProducer.
        Parameters:
        requestProducer - dispatched to grpcInternalExecutor whenever request(int) method is called. It should usually call its argument's StreamObserver.onNext(Object) possibly followed by StreamObserver.onCompleted() or StreamObserver.onError(Throwable) to simulate client's behavior. It may sleep arbitrarily long to simulate before the above calls to simulate client's or network delay.
      • runWithinListenerLock

        public void runWithinListenerLock​(Runnable handler)
        For low level testing of onReady and onCancel handlers.
      • onNext

        public void onNext​(ResponseT message)
      • isReady

        public boolean isReady()
        Specified by:
        isReady in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • setOnReadyHandler

        public void setOnReadyHandler​(Runnable onReadyHandler)
        Specified by:
        setOnReadyHandler in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • getFinalizedCount

        public int getFinalizedCount()
        Count of calls to onCompleted() and onError(Throwable). Should be 1 at the end of positive test methods.
      • onCompleted

        public void onCompleted()
      • onError

        public void onError​(Throwable t)
      • disableAutoRequest

        public void disableAutoRequest()
        Overrides:
        disableAutoRequest in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • disableAutoInboundFlowControl

        public void disableAutoInboundFlowControl()
        Specified by:
        disableAutoInboundFlowControl in class io.grpc.stub.CallStreamObserver<ResponseT>
      • request

        public void request​(int count)
        Specified by:
        request in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • cancel

        public void cancel()
        Simulates client canceling a call by a client.
      • isCancelled

        public boolean isCancelled()
        Specified by:
        isCancelled in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • setOnCancelHandler

        public void setOnCancelHandler​(Runnable onCancelHandler)
        Specified by:
        setOnCancelHandler in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • setCompression

        public void setCompression​(String compression)
        Specified by:
        setCompression in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • setMessageCompression

        public void setMessageCompression​(boolean enable)
        Specified by:
        setMessageCompression in class io.grpc.stub.ServerCallStreamObserver<ResponseT>
      • getLogger

        public static Logger getLogger()