class GrpcMock::RequestStub

Public Class Methods

new(path) click to toggle source

@param path [String] gRPC path like /${service_name}/${method_name}

# File lib/grpc_mock/request_stub.rb, line 11
def initialize(path)
  @request_pattern = RequestPattern.new(path)
  @response_sequence = []
end

Public Instance Methods

match?(path, request) click to toggle source

@param path [String] @param request [Object] @return [Bool]

# File lib/grpc_mock/request_stub.rb, line 51
def match?(path, request)
  @request_pattern.match?(path, request)
end
response() click to toggle source
# File lib/grpc_mock/request_stub.rb, line 34
def response
  if @response_sequence.empty?
    raise GrpcMock::NoResponseError, 'Must be set some values by using #GrpMock::RequestStub#to_run'
  elsif @response_sequence.size == 1
    @response_sequence.first.next
  else
    if @response_sequence.first.end?
      @response_sequence.shift
    end

    @response_sequence.first.next
  end
end
to_raise(*exceptions) click to toggle source
# File lib/grpc_mock/request_stub.rb, line 28
def to_raise(*exceptions)
  responses = [*exceptions].flatten.map { |e| Response::ExceptionValue.new(e) }
  @response_sequence << GrpcMock::ResponsesSequence.new(responses)
  self
end
to_return(*values, &block) click to toggle source
# File lib/grpc_mock/request_stub.rb, line 21
def to_return(*values, &block)
  responses = [*values].flatten.map { |v| Response::Value.new(v) }
  responses << Response::BlockValue.new(block) if block
  @response_sequence << GrpcMock::ResponsesSequence.new(responses)
  self
end
with(request = nil, &block) click to toggle source
# File lib/grpc_mock/request_stub.rb, line 16
def with(request = nil, &block)
  @request_pattern.with(request, &block)
  self
end