@Override
    public ParamCheckResponse checkParamInfoList(List<ParamInfo> paramInfos) {
        ParamCheckResponse paramCheckResponse = new ParamCheckResponse();
        if (paramInfos == null) {
            paramCheckResponse.setSuccess(true);
            return paramCheckResponse;
        }
        for (ParamInfo paramInfo : paramInfos) {
            paramCheckResponse = checkParamInfoFormat(paramInfo);
            if (!paramCheckResponse.isSuccess()) {
                return paramCheckResponse;
            }
        }
        paramCheckResponse.setSuccess(true);
        return paramCheckResponse;
    }
@Test
    void testCheckParamInfoForMetadata() {
        ParamInfo paramInfo = new ParamInfo();
        ArrayList<ParamInfo> paramInfos = new ArrayList<>();
        paramInfos.add(paramInfo);
        Map<String, String> metadata = new HashMap<>();
        paramInfo.setMetadata(metadata);
        // Max length
        metadata.put("key1", "");
        metadata.put("key2", buildStringLength(maxMetadataLength));
        ParamCheckResponse actual = paramChecker.checkParamInfoList(paramInfos);
        assertFalse(actual.isSuccess());
        assertEquals(String.format("Param 'Metadata' is illegal, the param length should not exceed %d.", maxMetadataLength), actual.getMessage());
        // Success
        metadata.put("key2", String.format("Any key and value, only require length sum not more than %d.", maxMetadataLength));
        actual = paramChecker.checkParamInfoList(paramInfos);
        assertTrue(actual.isSuccess());
    }