private static Stream<Arguments> orElseHandlerArguments() {
        return Stream.of(
          Arguments.of(new boolean[] {true, true, true}, -1, true, 0, -1),
          Arguments.of(new boolean[] {true, true, false}, -1, true, 0, -1),
          Arguments.of(new boolean[] {true, false, true}, -1, true, 0, -1),
          Arguments.of(new boolean[] {true, false, false}, -1, true, 0, -1),

          Arguments.of(new boolean[] {false, true, true}, -1, true, 1, -1),
          Arguments.of(new boolean[] {false, true, false}, -1, true, 1, -1),
          Arguments.of(new boolean[] {false, false, true}, -1, true, 2, -1),
          Arguments.of(new boolean[] {false, false, false}, -1, false, -1, 2),

          Arguments.of(new boolean[] {true, true, true}, 0, true, -1, -1),
          Arguments.of(new boolean[] {false, true, true}, 1, true, -1, -1),
          Arguments.of(new boolean[] {false, false, true}, 2, true, -1, -1),

          Arguments.of(new boolean[] {false, false, false}, 0, false, -1, 2),
          Arguments.of(new boolean[] {false, false, false}, 1, false, -1, 2),
          Arguments.of(new boolean[] {false, false, false}, 2, false, -1, 1)
        );
    }
When the first {@link Authorizer} returns a {@link CompletionStage} that fulfills with {@code null},
the second {@link Authorizer} shouldn't be invoked.
core/src/test/java/com/linecorp/armeria/server/auth/AuthorizerTest.java