From 1a08f3970d2cf85e8d10d66139fed70eb787fb3a Mon Sep 17 00:00:00 2001 From: fuchanghai <33984497+fuchanghai@users.noreply.github.com> Date: Wed, 20 Jul 2022 15:42:45 +0800 Subject: [PATCH] =?UTF-8?q?[fix-10729]The=20request's=20url=20given=20by?= =?UTF-8?q?=20the=20test=20case=20looks=20different=20f=E2=80=A6=20(#10734?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [fix-10729]The request's url given by the test case looks different from the controller layer. Some usages and parameter format errors --- .../controller/DataSourceControllerTest.java | 211 ++++++++++-------- 1 file changed, 112 insertions(+), 99 deletions(-) diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataSourceControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataSourceControllerTest.java index f14fb53bd..a4c0f93f7 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataSourceControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/DataSourceControllerTest.java @@ -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 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 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 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 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 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 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 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 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 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 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()); -- GitLab