### Question:
DataSourceParam implements ProcessAddTaskParam, InitializingBean { @Override public JsonNode addExportSpecialParam(JsonNode taskNode) { ObjectNode sqlParameters = (ObjectNode) taskNode.path(PARAMS); DataSource dataSource = dataSourceMapper.selectById(sqlParameters.get("datasource").asInt()); if (null != dataSource) { sqlParameters.put("datasourceName", dataSource.getName()); } ((ObjectNode)taskNode).set(PARAMS, sqlParameters); return taskNode; }  @Override JsonNode addExportSpecialParam(JsonNode taskNode); @Override JsonNode addImportSpecialParam(JsonNode taskNode); @Override void afterPropertiesSet();  }### Answer:
@Test public void testAddExportDependentSpecialParam() throws JSONException { String sqlJson = "{\"type\":\"SQL\",\"id\":\"tasks-27297\",\"name\":\"sql\"," + "\"params\":{\"type\":\"MYSQL\",\"datasource\":1,\"sql\":\"select * from test\"," + "\"udfs\":\"\",\"sqlType\":\"1\",\"title\":\"\",\"receivers\":\"\",\"receiversCc\":\"\",\"showType\":\"TABLE\"" + ",\"localParams\":[],\"connParams\":\"\"," + "\"preStatements\":[],\"postStatements\":[]}," + "\"description\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\"," + "\"retryInterval\":\"1\",\"timeout\":{\"strategy\":\"\"," + "\"enable\":false},\"taskInstancePriority\":\"MEDIUM\",\"workerGroupId\":-1," + "\"preTasks\":[\"dependent\"]}"; ObjectNode taskNode = JSONUtils.parseObject(sqlJson); if (StringUtils.isNotEmpty(taskNode.path("type").asText())) { String taskType = taskNode.path("type").asText(); ProcessAddTaskParam addTaskParam = TaskNodeParamFactory.getByTaskType(taskType); JsonNode sql = addTaskParam.addExportSpecialParam(taskNode); JSONAssert.assertEquals(taskNode.toString(), sql.toString(), false); } }