use of com.google.api.gax.grpc.testing.FakeServiceGrpc.FakeServiceImplBase in project gax-java by googleapis.
the class GrpcResponseMetadataTest method setUp.
@Before
public void setUp() throws Exception {
String serverName = "fakeservice";
FakeServiceImplBase serviceImpl = Mockito.mock(FakeServiceImplBase.class);
Mockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) {
Color color = invocation.getArgument(0);
StreamObserver<Money> observer = invocation.getArgument(1);
observer.onNext(Money.newBuilder().setCurrencyCode("USD").setUnits((long) (color.getRed() * 255)).build());
observer.onCompleted();
return null;
}
}).when(serviceImpl).recognize(Mockito.<Color>any(), Mockito.<StreamObserver<Money>>any());
requestHeaders = null;
inprocessServer = new InProcessServer<>(serviceImpl, serverName, new ServerInterceptor() {
@Override
public <ReqT, RespT> Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) {
requestHeaders = headers;
return next.startCall(new SimpleForwardingServerCall<ReqT, RespT>(call) {
@Override
public void sendHeaders(Metadata responseHeaders) {
responseHeaders.put(Key.of(HEADER_KEY, Metadata.ASCII_STRING_MARSHALLER), HEADER_VALUE);
super.sendHeaders(responseHeaders);
}
@Override
public void close(Status status, Metadata trailers) {
trailers.put(Key.of(TRAILER_KEY, Metadata.ASCII_STRING_MARSHALLER), TRAILER_VALUE);
super.close(status, trailers);
}
}, headers);
}
});
inprocessServer.start();
channel = InProcessChannelBuilder.forName(serverName).directExecutor().usePlaintext().intercept(new GrpcMetadataHandlerInterceptor()).build();
clientContext = ClientContext.newBuilder().setTransportChannel(GrpcTransportChannel.create(channel)).setDefaultCallContext(GrpcCallContext.of(channel, CallOptions.DEFAULT)).build();
}
Aggregations