private static void invoke0(THttpService service, HttpData content,
                                CompletableFuture<HttpData> promise) throws Exception {
        final HttpRequestWriter req = HttpRequest.streaming(HttpMethod.POST, "/");
        req.write(content);
        req.close();

        final ServiceRequestContext ctx =
                ServiceRequestContext.builder(req)
                                     .eventLoop(eventLoop.get())
                                     .serverConfigurator(builder -> {
                                         builder.blockingTaskExecutor(ImmediateEventExecutor.INSTANCE, false);
                                         builder.verboseResponses(true);
                                     })
                                     .build();

        final HttpResponse res = service.serve(ctx, req);
        res.aggregate().handle(voidFunction((aReq, cause) -> {
            if (cause == null) {
                if (aReq.status().code() == 200) {
                    promise.complete(aReq.content());
                } else {
                    promise.completeExceptionally(
                            new AssertionError(aReq.status() + ", " + aReq.contentUtf8()));
                }
            } else {
                promise.completeExceptionally(cause);
            }
        })).exceptionally(CompletionActions::log);
    }
This tests when multiple thrift service implementations, with same service method are added under
default("") service name then the thrift service that is added first should handle the request.
And also makes sure that adding a duplicate service does not break other services.
thrift/thrift0.13/src/test/java/com/linecorp/armeria/server/thrift/ThriftServiceTest.java