@Test
    public void testNotLikeFunction() throws Exception {
        String transformSql = null, data = null;
        TransformConfig config = null;
        TransformProcessor<String, String> processor = null;
        List<String> output = null;

        transformSql = "select string1 not like string2 from source";
        config = new TransformConfig(transformSql);
        processor = TransformProcessor
                .create(config, SourceDecoderFactory.createCsvDecoder(csvSource),
                        SinkEncoderFactory.createKvEncoder(kvSink));
        // case1: apple not like %App%
        output = processor.transform("apple|%App%", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=false", output.get(0));

        // case2: apple not like /%App%
        // The reason why '\' is not used as an escape string here is that when processing CSV data,
        // the quote parameter defaults to the '\' character
        transformSql = "select string1 not like string2 ESCAPE '/' from source";
        config = new TransformConfig(transformSql);
        processor = TransformProcessor
                .create(config, SourceDecoderFactory.createCsvDecoder(csvSource),
                        SinkEncoderFactory.createKvEncoder(kvSink));

        output = processor.transform("apple|/%App%", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=true", output.get(0));

        // case3: %apple not like /%App% ESCAPE '/'
        output = processor.transform("%apple|/%App%", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=false", output.get(0));

        // case4: %apple not like /%Apple_ ESCAPE '/'
        output = processor.transform("%apple|/%Apple_", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=true", output.get(0));

        // case5: %apple not like /%Appl_ ESCAPE '/'
        output = processor.transform("%apple|/%Appl_", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=false", output.get(0));

        // case6: %ap_ple not like /%Ap%_e ESCAPE '/'
        output = processor.transform("%ap_ple|/%Ap%_e", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=false", output.get(0));

        // case7: %ap_ple/ not like /%Ap%_e/ ESCAPE '/'
        output = processor.transform("%ap_ple/|/%Ap%_e/", new HashMap<>());
        Assert.assertEquals(1, output.size());
        Assert.assertEquals("result=false", output.get(0));
    }
TestLikeParserProcessor
description: test LikeParser in transform processor
inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/parser/TestLikeParser.java