Class: TestTarget

Inherits:
Grpc::Testing::TestService::Service show all
Includes:
Grpc::Testing, Grpc::Testing::PayloadType
Defined in:
src/ruby/pb/test/server.rb

Overview

A runnable implementation of the schema-specified testing service, with each service method implemented as required by the interop testing spec.

Constant Summary

Constants included from Grpc::Testing

Grpc::Testing::BoolValue, Grpc::Testing::EchoStatus, Grpc::Testing::Empty, Grpc::Testing::EmptyMessage, Grpc::Testing::GaugeRequest, Grpc::Testing::GaugeResponse, Grpc::Testing::Payload, Grpc::Testing::PayloadType, Grpc::Testing::ReconnectInfo, Grpc::Testing::ReconnectParams, Grpc::Testing::ResponseParameters, Grpc::Testing::SimpleRequest, Grpc::Testing::SimpleResponse, Grpc::Testing::StreamingInputCallRequest, Grpc::Testing::StreamingInputCallResponse, Grpc::Testing::StreamingOutputCallRequest, Grpc::Testing::StreamingOutputCallResponse

Instance Method Summary collapse

Methods included from GRPC::GenericService

included, underscore

Instance Method Details

#empty_call(_empty, _call) ⇒ Object



190
191
192
# File 'src/ruby/pb/test/server.rb', line 190

def empty_call(_empty, _call)
  Empty.new
end

#full_duplex_call(reqs, _call) ⇒ Object



216
217
218
219
220
# File 'src/ruby/pb/test/server.rb', line 216

def full_duplex_call(reqs, _call)
  (_call)
  # reqs is a lazy Enumerator of the requests sent by the client.
  FullDuplexEnumerator.new(reqs).each_item
end

#half_duplex_call(reqs) ⇒ Object



222
223
224
225
226
# File 'src/ruby/pb/test/server.rb', line 222

def half_duplex_call(reqs)
  # TODO: update with unique behaviour of the half_duplex_call if that's
  # ever required by any of the tests.
  full_duplex_call(reqs)
end

#streaming_input_call(call) ⇒ Object



202
203
204
205
206
# File 'src/ruby/pb/test/server.rb', line 202

def streaming_input_call(call)
  sizes = call.each_remote_read.map { |x| x.payload.body.length }
  sum = sizes.inject(0) { |s, x| s + x }
  StreamingInputCallResponse.new(aggregated_payload_size: sum)
end

#streaming_output_call(req, _call) ⇒ Object



208
209
210
211
212
213
214
# File 'src/ruby/pb/test/server.rb', line 208

def streaming_output_call(req, _call)
  cls = StreamingOutputCallResponse
  req.response_parameters.map do |p|
    cls.new(payload: Payload.new(type: req.response_type,
                                 body: nulls(p.size)))
  end
end

#unary_call(simple_req, _call) ⇒ Object



194
195
196
197
198
199
200
# File 'src/ruby/pb/test/server.rb', line 194

def unary_call(simple_req, _call)
  (_call)
  maybe_echo_status_and_message(simple_req)
  req_size = simple_req.response_size
  SimpleResponse.new(payload: Payload.new(type: :COMPRESSABLE,
                                          body: nulls(req_size)))
end