@Test
    public void testStartsJudge() {
        conditionData.setOperator(OperatorEnum.STARTS_WITH.getAlias());
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http/**/test"));
        assertFalse(PredicateJudgeFactory.judge(conditionData, "/test/http/**"));
        assertFalse(PredicateJudgeFactory.judge(conditionData, "/http1/**"));
    }
"));
    }

    @Test
    public void testPathPatternJudge() {
        conditionData.setOperator(OperatorEnum.PATH_PATTERN.getAlias());
        conditionData.setParamValue("/http/**");
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http/**"));
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http/test"));
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http/test/test"));
        assertFalse(PredicateJudgeFactory.judge(conditionData, "/http1/**"));
    }

    @Test
    public void testRegexJudge() {
        conditionData.setOperator(OperatorEnum.REGEX.getAlias());
        conditionData.setParamValue("[/a-zA-Z0-9]+");
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http/test"));
        assertFalse(PredicateJudgeFactory.judge(conditionData, "/http?/test"));
    }

    @Test
    public void testTimerBeforeJudge() {
        conditionData.setOperator(OperatorEnum.TIME_BEFORE.getAlias());
        //Because the realData can't be empty, so the realDate must fill in the values
        conditionData.setParamValue(MAX_TIME);
        assertTrue(PredicateJudgeFactory.judge(conditionData, MAX_TIME));
        conditionData.setParamValue(FIRST_TIME);
        assertFalse(PredicateJudgeFactory.judge(conditionData, MAX_TIME));
        conditionData.setParamName(OperatorEnum.TIME_BEFORE.name());
        conditionData.setParamValue(MAX_TIME);
        assertTrue(PredicateJudgeFactory.judge(conditionData, FIRST_TIME));
        assertFalse(PredicateJudgeFactory.judge(conditionData, MAX_TIME));
    }

    @Test
    public void testTimerAfterJudge() {
        conditionData.setOperator(OperatorEnum.TIME_AFTER.getAlias());
        conditionData.setParamValue(FIRST_TIME);
        assertTrue(PredicateJudgeFactory.judge(conditionData, FIRST_TIME));
        conditionData.setParamValue(MAX_TIME);
        assertFalse(PredicateJudgeFactory.judge(conditionData, FIRST_TIME));
    }

    @Test
    public void testExcludeJudge() {
        conditionData.setOperator(OperatorEnum.EXCLUDE.getAlias());
        conditionData.setParamValue("/http/test");
        assertFalse(PredicateJudgeFactory.judge(conditionData, "/http/test"));
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http?/test"));
    }

    @Test
    public void testContainsJudge() {
        conditionData.setOperator(OperatorEnum.CONTAINS.getAlias());
        assertTrue(PredicateJudgeFactory.judge(conditionData, "/http/*
shenyu-plugin/shenyu-plugin-base/src/test/java/org/apache/shenyu/plugin/base/condition/judge/PredicateJudgeFactoryTest.java