FramedGrpcService extends AbstractHttpService implements GrpcService { @Override public Set<Route> routes() { return routes; } FramedGrpcService(HandlerRegistry registry,
                      Set<Route> routes,
                      DecompressorRegistry decompressorRegistry,
                      CompressorRegistry compressorRegistry,
                      Set<SerializationFormat> supportedSerializationFormats,
                      Function<? super ServiceDescriptor, ? extends GrpcJsonMarshaller> jsonMarshallerFactory,
                      @Nullable ProtoReflectionServiceInterceptor protoReflectionServiceInterceptor,
                      int maxOutboundMessageSizeBytes,
                      boolean useBlockingTaskExecutor,
                      boolean unsafeWrapRequestBuffers,
                      boolean useClientTimeoutHeader,
                      int maxInboundMessageSizeBytes); @Override void serviceAdded(ServiceConfig cfg); @Override boolean isFramed(); @Override List<ServerServiceDefinition> services(); @Override Set<SerializationFormat> supportedSerializationFormats(); @Override Set<Route> routes();  }
@Test public void routes() throws Exception { assertThat(grpcService.routes()) .containsExactlyInAnyOrder( Route.builder().exact("/armeria.grpc.testing.TestService/EmptyCall").build(), Route.builder().exact("/armeria.grpc.testing.TestService/UnaryCall").build(), Route.builder().exact("/armeria.grpc.testing.TestService/UnaryCall2").build(), Route.builder().exact("/armeria.grpc.testing.TestService/StreamingOutputCall").build(), Route.builder().exact("/armeria.grpc.testing.TestService/StreamingInputCall").build(), Route.builder().exact("/armeria.grpc.testing.TestService/FullDuplexCall").build(), Route.builder().exact("/armeria.grpc.testing.TestService/HalfDuplexCall").build(), Route.builder().exact("/armeria.grpc.testing.TestService/UnimplementedCall").build()); }