|
|
|
@ -35,6 +35,14 @@ def load_test_certs |
|
|
|
|
files.map { |f| File.open(File.join(test_root, f)).read } |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def check_md(wanted_md, received_md) |
|
|
|
|
wanted_md.zip(received_md).each do |w, r| |
|
|
|
|
w.each do |key, value| |
|
|
|
|
expect(r[key]).to eq(value) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
# A test message |
|
|
|
|
class EchoMsg |
|
|
|
|
def self.marshal(_o) |
|
|
|
@ -376,7 +384,7 @@ describe GRPC::RpcServer do |
|
|
|
|
stub = EchoStub.new(@host, **client_opts) |
|
|
|
|
expect(stub.an_rpc(req, k1: 'v1', k2: 'v2')).to be_a(EchoMsg) |
|
|
|
|
wanted_md = [{ 'k1' => 'v1', 'k2' => 'v2' }] |
|
|
|
|
expect(service.received_md).to eq(wanted_md) |
|
|
|
|
check_md(wanted_md, service.received_md) |
|
|
|
|
@srv.stop |
|
|
|
|
t.join |
|
|
|
|
end |
|
|
|
@ -391,7 +399,7 @@ describe GRPC::RpcServer do |
|
|
|
|
deadline = service.delay + 1.0 # wait for long enough |
|
|
|
|
expect(stub.an_rpc(req, deadline, k1: 'v1', k2: 'v2')).to be_a(EchoMsg) |
|
|
|
|
wanted_md = [{ 'k1' => 'v1', 'k2' => 'v2' }] |
|
|
|
|
expect(service.received_md).to eq(wanted_md) |
|
|
|
|
check_md(wanted_md, service.received_md) |
|
|
|
|
@srv.stop |
|
|
|
|
t.join |
|
|
|
|
end |
|
|
|
@ -443,7 +451,7 @@ describe GRPC::RpcServer do |
|
|
|
|
expect(stub.an_rpc(req, k1: 'v1', k2: 'v2')).to be_a(EchoMsg) |
|
|
|
|
wanted_md = [{ 'k1' => 'updated-v1', 'k2' => 'v2', |
|
|
|
|
'jwt_aud_uri' => "https://#{@host}/EchoService" }] |
|
|
|
|
expect(service.received_md).to eq(wanted_md) |
|
|
|
|
check_md(wanted_md, service.received_md) |
|
|
|
|
@srv.stop |
|
|
|
|
t.join |
|
|
|
|
end |
|
|
|
@ -535,7 +543,9 @@ describe GRPC::RpcServer do |
|
|
|
|
'method' => '/EchoService/an_rpc', |
|
|
|
|
'connect_k1' => 'connect_v1' |
|
|
|
|
} |
|
|
|
|
expect(op.metadata).to eq(wanted_md) |
|
|
|
|
wanted_md.each do |key, value| |
|
|
|
|
expect(op.metadata[key]).to eq(value) |
|
|
|
|
end |
|
|
|
|
@srv.stop |
|
|
|
|
t.join |
|
|
|
|
end |
|
|
|
|