void ProcessorDesensitizeNativeUnittest::TestCastSensWordMD5()

in core/unittest/processor/ProcessorDesensitizeNativeUnittest.cpp [535:982]


void ProcessorDesensitizeNativeUnittest::TestCastSensWordMD5() {
    // case1
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,pwd=saf543#$@,,"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,pwd=91F6CFCF46787E8A02082B58F7117AFA,,"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case2
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=saf543#$@,,pwd=12341,df"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=91F6CFCF46787E8A02082B58F7117AFA,,pwd=12341,df"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 3
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwdsaf543#$@,,pwd=12341"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwdsaf543#$@,,pwd=F190CE9AC8445D249747CAB7BE43F7D5"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 4
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=12341"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=F190CE9AC8445D249747CAB7BE43F7D5"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 5
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        config["ReplacingAll"] = true;
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,pwd=saf543#$@,,pwd=12341,df"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,pwd=91F6CFCF46787E8A02082B58F7117AFA,,pwd=F190CE9AC8445D249747CAB7BE43F7D5,df"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 6
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        config["ReplacingAll"] = true;
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=saf543#$@,,pwd=12341f"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=91F6CFCF46787E8A02082B58F7117AFA,,pwd=2369B00C6DB80BF0794658225730FF0B"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 7
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        config["ReplacingAll"] = true;
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=saf543#$@,,pwd=12341f,asfasf"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "pwd=91F6CFCF46787E8A02082B58F7117AFA,,pwd=2369B00C6DB80BF0794658225730FF0B,asfasf"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 8
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        config["ReplacingAll"] = true;
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,pwd=saf543#$@,,"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,pwd=91F6CFCF46787E8A02082B58F7117AFA,,"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
    // case 9
    {
        Json::Value config = GetCastSensWordConfig();
        config["Method"] = "md5";
        config["ReplacingAll"] = true;
        // init
        ProcessorDesensitizeNative& processor = *(new ProcessorDesensitizeNative);
        ProcessorInstance processorInstance(&processor, getPluginMeta());
        APSARA_TEST_TRUE_FATAL(processorInstance.Init(config, mContext));
        // make events
        auto sourceBuffer = std::make_shared<SourceBuffer>();
        PipelineEventGroup eventGroup(sourceBuffer);
        std::string inJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,\npwd=saf543#$@,,"
                    },
                    "timestampNanosecond" : 0,
                    "timestamp" : 12345678901,
                    "type" : 1
                }
            ]
        })";
        eventGroup.FromJsonString(inJson);
        // run function
        std::vector<PipelineEventGroup> eventGroupList;
        eventGroupList.emplace_back(std::move(eventGroup));
        processorInstance.Process(eventGroupList);

        // judge result
        std::string expectJson = R"({
            "events" :
            [
                {
                    "contents" :
                    {
                        "cast1" : "asf@@@324 FS2$%pwd,\npwd=91F6CFCF46787E8A02082B58F7117AFA,,"
                    },
                    "timestamp" : 12345678901,
                    "timestampNanosecond" : 0,
                    "type" : 1
                }
            ]
        })";
        std::string outJson = eventGroupList[0].ToJsonString();
        APSARA_TEST_STREQ_FATAL(CompactJson(expectJson).c_str(), CompactJson(outJson).c_str());
    }
}