@Test
    void serviceConfigurationPriority() {
        final Server server = Server.builder()
                                    .requestTimeoutMillis(100)     // for default virtual host
                                    .service("/default_virtual_host",
                                             (ctx, req) -> HttpResponse.delayed(
                                                     HttpResponse.of(HttpStatus.OK),
                                                     Duration.ofMillis(200),
                                                     ctx.eventLoop()))
                                    .withRoute(
                                            r -> r.get("/service_config")
                                                  .requestTimeoutMillis(200)     // for service
                                                  .build((ctx, req) -> HttpResponse.delayed(
                                                          HttpResponse.of(HttpStatus.OK),
                                                          Duration.ofMillis(250),
                                                          ctx.eventLoop())))
                                    .withVirtualHost(
                                            "foo.com",
                                            h -> h.service("/custom_virtual_host",
                                                           (ctx, req) -> HttpResponse.delayed(
                                                                   HttpResponse.of(HttpStatus.OK),
                                                                   Duration.ofMillis(150),
                                                                   ctx.eventLoop()))
                                                  .requestTimeoutMillis(300))    // for custom virtual host
                                    .build();
        server.start().join();

        try {
            final WebClient client = WebClient.builder("http://127.0.0.1:" + server.activeLocalPort())
                                              .factory(clientFactory)
                                              .build();
            final WebClient fooClient = WebClient.builder("http://foo.com:" + server.activeLocalPort())
                                                 .factory(clientFactory)
                                                 .build();

            assertThat(client.get("/default_virtual_host").aggregate().join().status())
                    .isEqualTo(HttpStatus.SERVICE_UNAVAILABLE);
            assertThat(client.get("/service_config").aggregate().join().status())
                    .isEqualTo(HttpStatus.SERVICE_UNAVAILABLE);

            // choose from 'foo.com' virtual host
            assertThat(fooClient.get("/default_virtual_host").aggregate().join().status())
                    .isEqualTo(HttpStatus.OK);
            // choose from service config
            assertThat(fooClient.get("/service_config").aggregate().join().status())
                    .isEqualTo(HttpStatus.SERVICE_UNAVAILABLE);
            // choose from 'foo.com' virtual host
            assertThat(fooClient.get("/custom_virtual_host").aggregate().join().status())
                    .isEqualTo(HttpStatus.OK);
        } finally {
            server.stop();
        }
    }
Makes sure that {@link ServerBuilder#decorator(DecoratingHttpServiceFunction)} works at every service and
virtual hosts and {@link VirtualHostBuilder#decorator(DecoratingHttpServiceFunction)} works only at
its own services.
core/src/test/java/com/linecorp/armeria/server/ServerBuilderTest.java