public static OptionRule.Builder builder() {
        return new OptionRule.Builder();
    }
@Test
    public void testVerify() {
        Executable executable =
                () -> {
                    OptionRule.builder()
                            .optional(TEST_NUM, TEST_MODE)
                            .required(TEST_PORTS, TEST_REQUIRED_HAVE_DEFAULT_VALUE)
                            .exclusive(TEST_TOPIC_PATTERN, TEST_TOPIC)
                            .conditional(TEST_MODE, OptionTest.TestMode.TIMESTAMP, TEST_TIMESTAMP)
                            .build();
                };

        executable =
                () -> {
                    OptionRule.builder()
                            .optional(TEST_NUM, TEST_MODE, TEST_REQUIRED_HAVE_DEFAULT_VALUE)
                            .required(TEST_PORTS, TEST_REQUIRED_HAVE_DEFAULT_VALUE)
                            .exclusive(TEST_TOPIC_PATTERN, TEST_TOPIC)
                            .conditional(TEST_MODE, OptionTest.TestMode.TIMESTAMP, TEST_TIMESTAMP)
                            .build();
                };

        // test duplicate
        assertEquals(
                "ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - AbsolutelyRequiredOptions 'option.required-have-default' duplicate in option options.",
                assertThrows(OptionValidationException.class, executable).getMessage());

        executable =
                () -> {
                    OptionRule.builder()
                            .optional(TEST_NUM, TEST_MODE)
                            .exclusive(TEST_TOPIC_PATTERN, TEST_TOPIC, TEST_DUPLICATE)
                            .required(TEST_PORTS, TEST_DUPLICATE)
                            .conditional(TEST_MODE, OptionTest.TestMode.TIMESTAMP, TEST_TIMESTAMP)
                            .build();
                };

        // test duplicate in RequiredOption$ExclusiveRequiredOptions
        assertEquals(
                "ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - AbsolutelyRequiredOptions 'option.test-duplicate' duplicate in ExclusiveRequiredOptions options.",
                assertThrows(OptionValidationException.class, executable).getMessage());

        executable =
                () -> {
                    OptionRule.builder()
                            .optional(TEST_NUM)
                            .exclusive(TEST_TOPIC_PATTERN, TEST_TOPIC)
                            .required(TEST_PORTS)
                            .conditional(TEST_MODE, OptionTest.TestMode.TIMESTAMP, TEST_TIMESTAMP)
                            .build();
                };

        // test conditional not found in other options
        assertEquals(
                "ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - Conditional 'option.mode' not found in options.",
                assertThrows(OptionValidationException.class, executable).getMessage());

        executable =
                () -> {
                    OptionRule.builder()
                            .optional(TEST_NUM, TEST_MODE)
                            .exclusive(TEST_TOPIC_PATTERN, TEST_TOPIC)
                            .required(TEST_PORTS)
                            .conditional(TEST_MODE, OptionTest.TestMode.TIMESTAMP, TEST_TIMESTAMP)
                            .conditional(TEST_NUM, 100, TEST_TIMESTAMP)
                            .build();
                };

        // test parameter can only be controlled by one other parameter
        assertEquals(
                "ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - ConditionalRequiredOptions 'option.timestamp' duplicate in ConditionalRequiredOptions options.",
                assertThrows(OptionValidationException.class, executable).getMessage());
    }