use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.StreamObserver in project spring_boot by hryou0922.
the class RouteGuideClientTest method listFeatures_error.
/**
* Example for testing blocking server-streaming.
*/
@Test
public void listFeatures_error() {
final Feature responseFeature1 = Feature.newBuilder().setName("feature 1").build();
final AtomicReference<Rectangle> rectangleDelivered = new AtomicReference<Rectangle>();
final StatusRuntimeException fakeError = new StatusRuntimeException(Status.INVALID_ARGUMENT);
// implement the fake service
RouteGuideImplBase listFeaturesImpl = new RouteGuideImplBase() {
@Override
public void listFeatures(Rectangle rectangle, StreamObserver<Feature> responseObserver) {
rectangleDelivered.set(rectangle);
// send one response message
responseObserver.onNext(responseFeature1);
// let the rpc fail
responseObserver.onError(fakeError);
}
};
serviceRegistry.addService(listFeaturesImpl);
client.listFeatures(1, 2, 3, 4);
assertEquals(Rectangle.newBuilder().setLo(Point.newBuilder().setLatitude(1).setLongitude(2).build()).setHi(Point.newBuilder().setLatitude(3).setLongitude(4).build()).build(), rectangleDelivered.get());
ArgumentCaptor<Throwable> errorCaptor = ArgumentCaptor.forClass(Throwable.class);
verify(testHelper).onMessage(responseFeature1);
verify(testHelper).onRpcError(errorCaptor.capture());
assertEquals(fakeError.getStatus(), Status.fromThrowable(errorCaptor.getValue()));
}
use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.StreamObserver in project spring_boot by hryou0922.
the class RouteGuideClientTest method getFeature_error.
/**
* Example for testing blocking unary call.
*/
@Test
public void getFeature_error() {
Point requestPoint = Point.newBuilder().setLatitude(-1).setLongitude(-1).build();
final AtomicReference<Point> pointDelivered = new AtomicReference<Point>();
final StatusRuntimeException fakeError = new StatusRuntimeException(Status.DATA_LOSS);
// implement the fake service
RouteGuideImplBase getFeatureImpl = new RouteGuideImplBase() {
@Override
public void getFeature(Point point, StreamObserver<Feature> responseObserver) {
pointDelivered.set(point);
responseObserver.onError(fakeError);
}
};
serviceRegistry.addService(getFeatureImpl);
client.getFeature(-1, -1);
assertEquals(requestPoint, pointDelivered.get());
ArgumentCaptor<Throwable> errorCaptor = ArgumentCaptor.forClass(Throwable.class);
verify(testHelper).onRpcError(errorCaptor.capture());
assertEquals(fakeError.getStatus(), Status.fromThrowable(errorCaptor.getValue()));
}
use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.StreamObserver in project spring_boot by hryou0922.
the class RouteGuideClientTest method recordRoute_wrongResponse.
/**
* Example for testing async client-streaming.
*/
@Test
public void recordRoute_wrongResponse() throws Exception {
client.setRandom(noRandomness);
Point point1 = Point.newBuilder().setLatitude(1).setLongitude(1).build();
final Feature requestFeature1 = Feature.newBuilder().setLocation(point1).build();
final List<Feature> features = Arrays.asList(requestFeature1);
// implement the fake service
RouteGuideImplBase recordRouteImpl = new RouteGuideImplBase() {
@Override
public StreamObserver<Point> recordRoute(StreamObserver<RouteSummary> responseObserver) {
RouteSummary response = RouteSummary.getDefaultInstance();
// sending more than one responses is not right for client-streaming call.
responseObserver.onNext(response);
responseObserver.onNext(response);
responseObserver.onCompleted();
return new StreamObserver<Point>() {
@Override
public void onNext(Point value) {
}
@Override
public void onError(Throwable t) {
}
@Override
public void onCompleted() {
}
};
}
};
serviceRegistry.addService(recordRouteImpl);
client.recordRoute(features, 4);
ArgumentCaptor<Throwable> errorCaptor = ArgumentCaptor.forClass(Throwable.class);
verify(testHelper).onRpcError(errorCaptor.capture());
assertEquals(Status.Code.CANCELLED, Status.fromThrowable(errorCaptor.getValue()).getCode());
}
use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.StreamObserver in project spring_boot by hryou0922.
the class RouteGuideServerTest method routeChat.
@Test
public void routeChat() {
Point p1 = Point.newBuilder().setLongitude(1).setLatitude(1).build();
Point p2 = Point.newBuilder().setLongitude(2).setLatitude(2).build();
RouteNote n1 = RouteNote.newBuilder().setLocation(p1).setMessage("m1").build();
RouteNote n2 = RouteNote.newBuilder().setLocation(p2).setMessage("m2").build();
RouteNote n3 = RouteNote.newBuilder().setLocation(p1).setMessage("m3").build();
RouteNote n4 = RouteNote.newBuilder().setLocation(p2).setMessage("m4").build();
RouteNote n5 = RouteNote.newBuilder().setLocation(p1).setMessage("m5").build();
RouteNote n6 = RouteNote.newBuilder().setLocation(p1).setMessage("m6").build();
int timesOnNext = 0;
@SuppressWarnings("unchecked") StreamObserver<RouteNote> responseObserver = (StreamObserver<RouteNote>) mock(StreamObserver.class);
RouteGuideGrpc.RouteGuideStub stub = RouteGuideGrpc.newStub(inProcessChannel);
StreamObserver<RouteNote> requestObserver = stub.routeChat(responseObserver);
verify(responseObserver, never()).onNext(any(RouteNote.class));
requestObserver.onNext(n1);
verify(responseObserver, never()).onNext(any(RouteNote.class));
requestObserver.onNext(n2);
verify(responseObserver, never()).onNext(any(RouteNote.class));
requestObserver.onNext(n3);
ArgumentCaptor<RouteNote> routeNoteCaptor = ArgumentCaptor.forClass(RouteNote.class);
verify(responseObserver, timeout(100).times(++timesOnNext)).onNext(routeNoteCaptor.capture());
RouteNote result = routeNoteCaptor.getValue();
assertEquals(p1, result.getLocation());
assertEquals("m1", result.getMessage());
requestObserver.onNext(n4);
routeNoteCaptor = ArgumentCaptor.forClass(RouteNote.class);
verify(responseObserver, timeout(100).times(++timesOnNext)).onNext(routeNoteCaptor.capture());
result = routeNoteCaptor.getAllValues().get(timesOnNext - 1);
assertEquals(p2, result.getLocation());
assertEquals("m2", result.getMessage());
requestObserver.onNext(n5);
routeNoteCaptor = ArgumentCaptor.forClass(RouteNote.class);
timesOnNext += 2;
verify(responseObserver, timeout(100).times(timesOnNext)).onNext(routeNoteCaptor.capture());
result = routeNoteCaptor.getAllValues().get(timesOnNext - 2);
assertEquals(p1, result.getLocation());
assertEquals("m1", result.getMessage());
result = routeNoteCaptor.getAllValues().get(timesOnNext - 1);
assertEquals(p1, result.getLocation());
assertEquals("m3", result.getMessage());
requestObserver.onNext(n6);
routeNoteCaptor = ArgumentCaptor.forClass(RouteNote.class);
timesOnNext += 3;
verify(responseObserver, timeout(100).times(timesOnNext)).onNext(routeNoteCaptor.capture());
result = routeNoteCaptor.getAllValues().get(timesOnNext - 3);
assertEquals(p1, result.getLocation());
assertEquals("m1", result.getMessage());
result = routeNoteCaptor.getAllValues().get(timesOnNext - 2);
assertEquals(p1, result.getLocation());
assertEquals("m3", result.getMessage());
result = routeNoteCaptor.getAllValues().get(timesOnNext - 1);
assertEquals(p1, result.getLocation());
assertEquals("m5", result.getMessage());
requestObserver.onCompleted();
verify(responseObserver, timeout(100)).onCompleted();
verify(responseObserver, never()).onError(any(Throwable.class));
}
use of org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.StreamObserver in project spring_boot by hryou0922.
the class RouteGuideServerTest method recordRoute.
@Test
public void recordRoute() {
Point p1 = Point.newBuilder().setLongitude(1000).setLatitude(1000).build();
Point p2 = Point.newBuilder().setLongitude(2000).setLatitude(2000).build();
Point p3 = Point.newBuilder().setLongitude(3000).setLatitude(3000).build();
Point p4 = Point.newBuilder().setLongitude(4000).setLatitude(4000).build();
// unamed
Feature f1 = Feature.newBuilder().setLocation(p1).build();
Feature f2 = Feature.newBuilder().setLocation(p2).setName("f2").build();
Feature f3 = Feature.newBuilder().setLocation(p3).setName("f3").build();
// unamed
Feature f4 = Feature.newBuilder().setLocation(p4).build();
features.add(f1);
features.add(f2);
features.add(f3);
features.add(f4);
@SuppressWarnings("unchecked") StreamObserver<RouteSummary> responseObserver = (StreamObserver<RouteSummary>) mock(StreamObserver.class);
RouteGuideGrpc.RouteGuideStub stub = RouteGuideGrpc.newStub(inProcessChannel);
ArgumentCaptor<RouteSummary> routeSummaryCaptor = ArgumentCaptor.forClass(RouteSummary.class);
StreamObserver<Point> requestObserver = stub.recordRoute(responseObserver);
requestObserver.onNext(p1);
requestObserver.onNext(p2);
requestObserver.onNext(p3);
requestObserver.onNext(p4);
verify(responseObserver, never()).onNext(any(RouteSummary.class));
requestObserver.onCompleted();
// allow some ms to let client receive the response. Similar usage later on.
verify(responseObserver, timeout(100)).onNext(routeSummaryCaptor.capture());
RouteSummary summary = routeSummaryCaptor.getValue();
// 45 is the hard coded distance from p1 to p4.
assertEquals(45, summary.getDistance());
assertEquals(2, summary.getFeatureCount());
verify(responseObserver, timeout(100)).onCompleted();
verify(responseObserver, never()).onError(any(Throwable.class));
}
Aggregations