@Test
    public void testNestedManipulation() throws Exception {
        // Split the secret into two pieces.
        final String secretA = SECRET.substring(0, SECRET.length() >>> 1);
        final String secretB = SECRET.substring(secretA.length());

        final HelloService.Iface client = newClient();
        try (SafeCloseable ignored = Clients.withHeader(AUTHORIZATION, secretA)) {
            // Should fail with the first half of the secret.
            assertAuthorizationFailure(client, secretA);
            try (SafeCloseable ignored2 = Clients.withHeaders(builder -> {
                builder.set(AUTHORIZATION, builder.get(AUTHORIZATION) + secretB);
            })) {
                // Should pass if both manipulators worked.
                assertThat(client.hello("foobar")).isEqualTo("Hello, foobar!");
            }
            // Should fail again with the first half of the secret.
            assertAuthorizationFailure(client, secretA);
        }

        // Ensure that the header manipulator set in the thread-local variable has been cleared.
        assertAuthorizationFailure(client, null);
    }
Tests if Armeria decorators can alter the request/response timeout specified in Thrift call parameters.
thrift/thrift0.13/src/test/java/com/linecorp/armeria/it/thrift/ThriftHttpHeaderTest.java