|
|
|
@ -17,21 +17,26 @@
|
|
|
|
|
|
|
|
|
|
package org.apache.dolphinscheduler.api.controller; |
|
|
|
|
|
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; |
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; |
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; |
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; |
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; |
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; |
|
|
|
|
|
|
|
|
|
import org.apache.dolphinscheduler.api.enums.Status; |
|
|
|
|
import org.apache.dolphinscheduler.api.utils.Result; |
|
|
|
|
import org.apache.dolphinscheduler.common.utils.JSONUtils; |
|
|
|
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLDataSourceParamDTO; |
|
|
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
|
|
import org.junit.Assert; |
|
|
|
|
import org.junit.Ignore; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
import org.junit.jupiter.api.AfterEach; |
|
|
|
|
import org.junit.jupiter.api.BeforeEach; |
|
|
|
|
import org.junit.jupiter.params.ParameterizedTest; |
|
|
|
|
import org.junit.jupiter.params.provider.CsvSource; |
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
import org.springframework.http.MediaType; |
|
|
|
@ -45,82 +50,93 @@ import org.springframework.util.MultiValueMap;
|
|
|
|
|
public class DataSourceControllerTest extends AbstractControllerTest { |
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(DataSourceControllerTest.class); |
|
|
|
|
|
|
|
|
|
@Ignore |
|
|
|
|
@BeforeEach |
|
|
|
|
public void initSetUp() { |
|
|
|
|
setUp(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@AfterEach |
|
|
|
|
public void afterEach() throws Exception { |
|
|
|
|
after(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Ignore("unknown yourself connection information") |
|
|
|
|
@Test |
|
|
|
|
public void testCreateDataSource() throws Exception { |
|
|
|
|
MySQLDataSourceParamDTO mysqlDatasourceParam = new MySQLDataSourceParamDTO(); |
|
|
|
|
mysqlDatasourceParam.setName("mysql"); |
|
|
|
|
mysqlDatasourceParam.setNote("mysql data source test"); |
|
|
|
|
mysqlDatasourceParam.setHost("192.168.xxxx.xx"); |
|
|
|
|
mysqlDatasourceParam.setPort(3306); |
|
|
|
|
mysqlDatasourceParam.setDatabase("dolphinscheduler"); |
|
|
|
|
mysqlDatasourceParam.setUserName("root"); |
|
|
|
|
mysqlDatasourceParam.setPassword("root@123"); |
|
|
|
|
mysqlDatasourceParam.setOther(new HashMap<>()); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(post("/datasources/create") |
|
|
|
|
HashMap<String, Object> paramsMap = new HashMap<>(); |
|
|
|
|
paramsMap.put("name","mysql"); |
|
|
|
|
paramsMap.put("node","mysql data source test"); |
|
|
|
|
paramsMap.put("type","mysql"); |
|
|
|
|
paramsMap.put("host","127.0.0.1"); |
|
|
|
|
paramsMap.put("port",3306); |
|
|
|
|
paramsMap.put("database","mysql"); |
|
|
|
|
paramsMap.put("userName","root"); |
|
|
|
|
paramsMap.put("password","123456"); |
|
|
|
|
paramsMap.put("other",new HashMap<>()); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(post("/datasources") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.contentType(MediaType.APPLICATION_JSON) |
|
|
|
|
.content(JSONUtils.toJsonString(mysqlDatasourceParam))) |
|
|
|
|
.andExpect(status().isCreated()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.content(JSONUtils.toJsonString(paramsMap))) |
|
|
|
|
.andExpect(status().isCreated()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Ignore |
|
|
|
|
@Ignore("unknown yourself connection information") |
|
|
|
|
@Test |
|
|
|
|
public void testUpdateDataSource() throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("id","2"); |
|
|
|
|
paramsMap.add("name","mysql"); |
|
|
|
|
paramsMap.add("node","mysql data source test"); |
|
|
|
|
paramsMap.add("type","MYSQL"); |
|
|
|
|
paramsMap.add("host","192.168.xxxx.xx"); |
|
|
|
|
paramsMap.add("port","3306"); |
|
|
|
|
paramsMap.add("principal",""); |
|
|
|
|
paramsMap.add("database","dolphinscheduler"); |
|
|
|
|
paramsMap.add("userName","root"); |
|
|
|
|
paramsMap.add("password","root@123"); |
|
|
|
|
paramsMap.add("other",""); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(post("/datasources/update") |
|
|
|
|
HashMap<String, Object> paramsMap = new HashMap<>(); |
|
|
|
|
paramsMap.put("id",2); |
|
|
|
|
paramsMap.put("name","mysql"); |
|
|
|
|
paramsMap.put("node","mysql data source test"); |
|
|
|
|
paramsMap.put("type","mysql"); |
|
|
|
|
paramsMap.put("host","192.168.xxxx.xx"); |
|
|
|
|
paramsMap.put("port",3306); |
|
|
|
|
paramsMap.put("principal",""); |
|
|
|
|
paramsMap.put("database","dolphinscheduler"); |
|
|
|
|
paramsMap.put("userName","root"); |
|
|
|
|
paramsMap.put("password","root@123"); |
|
|
|
|
paramsMap.put("other",new HashMap<>()); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(put("/datasources/2") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isCreated()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.content(JSONUtils.toJsonString(paramsMap))) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Ignore |
|
|
|
|
@Ignore("unknown you datasources id") |
|
|
|
|
@Test |
|
|
|
|
public void testQueryDataSource() throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("id","2"); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(post("/datasources/update-ui") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/2") |
|
|
|
|
.header("sessionId", sessionId)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testQueryDataSourceList() throws Exception { |
|
|
|
|
@ParameterizedTest |
|
|
|
|
@CsvSource({ |
|
|
|
|
"type, MYSQL" |
|
|
|
|
}) |
|
|
|
|
public void testQueryDataSourceList(String key, String dbType) throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("type","MYSQL"); |
|
|
|
|
paramsMap.add(key,dbType); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/list") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
@ -135,63 +151,63 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Ignore |
|
|
|
|
@Ignore("unknown yourself connection information") |
|
|
|
|
@Test |
|
|
|
|
public void testConnectDataSource() throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("name","hive data source"); |
|
|
|
|
paramsMap.add("type","HIVE"); |
|
|
|
|
paramsMap.add("host","192.168.xx.xx"); |
|
|
|
|
paramsMap.add("port","10000"); |
|
|
|
|
paramsMap.add("database","default"); |
|
|
|
|
paramsMap.add("userName","hive"); |
|
|
|
|
paramsMap.add("password",""); |
|
|
|
|
paramsMap.add("other",""); |
|
|
|
|
HashMap<String, Object> paramsMap = new HashMap<>(); |
|
|
|
|
paramsMap.put("name","mysql data source"); |
|
|
|
|
paramsMap.put("type","mysql"); |
|
|
|
|
paramsMap.put("host","127.0.0.1"); |
|
|
|
|
paramsMap.put("port",3306); |
|
|
|
|
paramsMap.put("database","mysql"); |
|
|
|
|
paramsMap.put("userName","root"); |
|
|
|
|
paramsMap.put("password","123456"); |
|
|
|
|
paramsMap.put("other",null); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(post("/datasources/connect") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.content(JSONUtils.toJsonString(paramsMap))) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Ignore |
|
|
|
|
@Ignore("unknown your datasource id") |
|
|
|
|
@Test |
|
|
|
|
public void testConnectionTest() throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("id","2"); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/connect-by-id") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/2/connect-test") |
|
|
|
|
.header("sessionId", sessionId)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testVerifyDataSourceName() throws Exception { |
|
|
|
|
@ParameterizedTest |
|
|
|
|
@CsvSource({ |
|
|
|
|
"name, sourceName" |
|
|
|
|
}) |
|
|
|
|
public void testVerifyDataSourceName(String key, String dbType) throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("name","mysql"); |
|
|
|
|
paramsMap.add(key,dbType); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/verify-name") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
@ -204,9 +220,9 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/authed-datasource") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
@ -219,9 +235,9 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/unauth-datasource") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
@ -231,25 +247,22 @@ public class DataSourceControllerTest extends AbstractControllerTest {
|
|
|
|
|
public void testGetKerberosStartupState() throws Exception { |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/kerberos-startup-state") |
|
|
|
|
.header("sessionId", sessionId)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Ignore |
|
|
|
|
@Ignore("unknown your datasource id") |
|
|
|
|
@Test |
|
|
|
|
public void testDelete() throws Exception { |
|
|
|
|
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>(); |
|
|
|
|
paramsMap.add("id","16"); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(get("/datasources/delete") |
|
|
|
|
.header("sessionId", sessionId) |
|
|
|
|
.params(paramsMap)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
MvcResult mvcResult = mockMvc.perform(delete("/datasources/2") |
|
|
|
|
.header("sessionId", sessionId)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andReturn(); |
|
|
|
|
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); |
|
|
|
|
Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); |
|
|
|
|
logger.info(mvcResult.getResponse().getContentAsString()); |
|
|
|
|