GrpcDocServicePlugin implements DocServicePlugin { @Override public String name() { return "grpc"; }  @Override String name(); @Override Set<Class<? extends Service<?, ?>>> supportedServiceTypes(); @Override ServiceSpecification generateSpecification(Set<ServiceConfig> serviceConfigs,
                                                      DocServiceFilter filter); @Override Map<String, String> loadDocStrings(Set<ServiceConfig> serviceConfigs); @Override Set<Class<?>> supportedExampleRequestTypes(); @Override String serializeExampleRequest(String serviceName, String methodName,
                                          Object exampleRequest);  }
@Test void servicesTest() throws Exception { final Map<String, ServiceInfo> services = services((plugin, service, method) -> true, (plugin, service, method) -> false); assertThat(services).containsOnlyKeys(TestServiceGrpc.SERVICE_NAME, UnitTestServiceGrpc.SERVICE_NAME, ReconnectServiceGrpc.SERVICE_NAME); services.get(TestServiceGrpc.SERVICE_NAME).methods().forEach(m -> { m.endpoints().forEach(e -> { assertThat(e.pathMapping()).isEqualTo("/armeria.grpc.testing.TestService/" + m.name()); }); }); services.get(UnitTestServiceGrpc.SERVICE_NAME).methods().forEach(m -> { m.endpoints().forEach(e -> { assertThat(e.pathMapping()).isEqualTo("/test/armeria.grpc.testing.UnitTestService/" + m.name()); }); }); services.get(ReconnectServiceGrpc.SERVICE_NAME).methods().forEach(m -> { m.endpoints().forEach(e -> { assertThat(e.pathMapping()).isEqualTo("/reconnect/armeria.grpc.testing.ReconnectService/" + m.name()); }); }); }