This is an automated email from the ASF dual-hosted git repository.
casion pushed a commit to branch dev-1.3.1
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.3.1 by this push:
new 7b2111be7 Add new interface for Qualitis (#3505)
7b2111be7 is described below
commit 7b2111be784ec68b1542d79c7ad8a05e634b1174
Author: chenmutime <[email protected]>
AuthorDate: Tue Nov 1 11:06:33 2022 +0800
Add new interface for Qualitis (#3505)
* feat: new interface for qualitis, query result by id list
* fix: query datasource by ids
* add unit test
---
.../datasourcemanager/core/dao/DataSourceDao.java | 8 +++
.../core/dao/mapper/DataSouceMapper.xml | 16 +++++
.../core/restful/DataSourceAdminRestfulApi.java | 28 ++++----
.../core/restful/DataSourceCoreRestfulApi.java | 20 ++++++
.../core/service/DataSourceInfoService.java | 8 +++
.../service/impl/DataSourceInfoServiceImpl.java | 6 ++
.../core/dao/DataSourceDaoTest.java | 14 ++++
.../restful/DataSourceAdminRestfulApiTest.java | 81 ++++++++++++++++++++++
.../core/restful/DataSourceCoreRestfulApiTest.java | 25 +++++++
.../core/service/DataSourceInfoServiceTest.java | 19 ++++-
10 files changed, 207 insertions(+), 18 deletions(-)
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
index 103a1f9c9..bf9d47016 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
@@ -95,6 +95,14 @@ public interface DataSourceDao {
*/
List<DataSource> selectByPageVo(DataSourceVo dataSourceVo);
+ /**
+ * Find by id list
+ *
+ * @param ids
+ * @return
+ */
+ List<DataSource> selectByIds(@Param("ids") List ids);
+
/**
* update published version id
*
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
index 35aa42466..44e95aa71 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
@@ -216,6 +216,22 @@
</where>
</update>
+ <select id="selectByIds" resultMap="dataSourceMap">
+ <![CDATA[SELECT ]]>
+ <include refid="data_source_query_page"/>
+ <![CDATA[ FROM `linkis_ps_dm_datasource_type` t
+ INNER JOIN `linkis_ps_dm_datasource` d ON t.`id` =
d.`datasource_type_id`]]>
+ <where>
+ <if test="ids != null and ids.size > 0">
+ <![CDATA[AND d.`id` in ]]>
+ <foreach collection="ids" index="index" item="id"
separator="," open="(" close=")">
+ #{id}
+ </foreach>
+ </if>
+ </where>
+ <![CDATA[ ORDER BY create_time DESC ]]>
+ </select>
+
<select id="selectByPageVo" resultMap="dataSourceMap">
<![CDATA[SELECT ]]>
<include refid="data_source_query_page"/>
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
index e88e752af..36b679145 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
@@ -17,7 +17,11 @@
package org.apache.linkis.datasourcemanager.core.restful;
-import com.google.common.collect.Lists;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
import org.apache.linkis.common.exception.ErrorException;
import org.apache.linkis.datasourcemanager.common.domain.DataSourceEnv;
import
org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
@@ -28,8 +32,7 @@ import
org.apache.linkis.datasourcemanager.core.service.DataSourceRelateService;
import org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
import org.apache.linkis.datasourcemanager.core.vo.DataSourceEnvVo;
import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
-
+import org.apache.linkis.server.utils.ModuleUserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -39,13 +42,6 @@ import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Validator;
import javax.validation.groups.Default;
-
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-
import java.util.*;
@Api(tags = "data source admin restful api")
@@ -78,7 +74,7 @@ public class DataSourceAdminRestfulApi {
throws ErrorException {
return RestfulApiHelper.doAndResponse(
() -> {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req,
"insertJsonEnv");
if (!RestfulApiHelper.isAdminUser(userName)) {
return Message.error("User '" + userName + "' is not
admin user[非管理员用户]");
}
@@ -111,7 +107,7 @@ public class DataSourceAdminRestfulApi {
@RequestParam("system") String system,
HttpServletRequest req)
throws ErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
+ String userName = ModuleUserUtils.getOperationUser(req,
"insertJsonEnvBatch");
if (!RestfulApiHelper.isAdminUser(userName) &&
!permitSystemList.contains(system)) {
return Message.error("User '" + userName + "' is not admin
user[非管理员用户]");
}
@@ -147,7 +143,7 @@ public class DataSourceAdminRestfulApi {
"Fail to insert data source environment[新增数据源环境失败]");
}
- @ApiOperation(value = "insertJsonEnvBatch", notes = "update batch json
env", response = Message.class)
+ @ApiOperation(value = "updateJsonEnvBatch", notes = "update batch json
env", response = Message.class)
@ApiOperationSupport(ignoreParameters = {"dataSourceEnvList", "system"})
@RequestMapping(value = "/env/json/batch", method = RequestMethod.PUT)
public Message updateEnvBatch(
@@ -155,7 +151,7 @@ public class DataSourceAdminRestfulApi {
@RequestParam("system") String system,
HttpServletRequest request)
throws ErrorException {
- String userName = SecurityFilter.getLoginUsername(request);
+ String userName = ModuleUserUtils.getOperationUser(request,
"updateJsonEnvBatch");
if (!RestfulApiHelper.isAdminUser(userName) &&
!permitSystemList.contains(system)) {
return Message.error("User '" + userName + "' is not admin
user[非管理员用户]");
}
@@ -245,7 +241,7 @@ public class DataSourceAdminRestfulApi {
public Message removeEnvEntity(@PathVariable("envId") Long envId,
HttpServletRequest request) {
return RestfulApiHelper.doAndResponse(
() -> {
- String userName = SecurityFilter.getLoginUsername(request);
+ String userName =
ModuleUserUtils.getOperationUser(request, "removeEnvEntity");
if (!RestfulApiHelper.isAdminUser(userName)) {
return Message.error("User '" + userName + "' is not
admin user[非管理员用户]");
}
@@ -274,7 +270,7 @@ public class DataSourceAdminRestfulApi {
throws ErrorException {
return RestfulApiHelper.doAndResponse(
() -> {
- String userName = SecurityFilter.getLoginUsername(request);
+ String userName =
ModuleUserUtils.getOperationUser(request, "updateJsonEnv");
if (!RestfulApiHelper.isAdminUser(userName)) {
return Message.error("User '" + userName + "' is not
admin user[非管理员用户]");
}
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
index b96a489f3..cfe07bff3 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
@@ -38,6 +38,7 @@ import
org.apache.linkis.metadata.query.common.MdmConfiguration;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.security.SecurityFilter;
+import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -689,6 +690,25 @@ public class DataSourceCoreRestfulApi {
"Fail to connect data source[连接数据源失败]");
}
+ @ApiOperation(value = "queryDataSourceByIds", notes = "query data source
by ids", response = Message.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "ids", required = true, dataType =
"List", value = "ids"),
+ })
+ @RequestMapping(value = "/info/ids", method = RequestMethod.GET)
+ public Message queryDataSource(
+ @RequestParam(value = "ids") String idsJson
+ , HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(
+ () -> {
+ List ids = new ObjectMapper().readValue(idsJson,
List.class);
+ List<DataSource> dataSourceList =
dataSourceInfoService.queryDataSourceInfo(ids);
+ return Message.ok()
+ .data("queryList", dataSourceList)
+ .data("totalPage", dataSourceList.size());
+ }, "Fail to query page of data source[查询数据源失败]"
+ );
+ }
+
@ApiOperation(value = "queryDataSource", notes = "query data source",
response = Message.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "system", required = false, dataType =
"String", value = "system"),
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
index cd31f0f77..a6af9633c 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
@@ -111,6 +111,14 @@ public interface DataSourceInfoService {
*/
PageInfo<DataSource> queryDataSourceInfoPage(DataSourceVo dataSourceVo);
+ /**
+ * Find by id list
+ *
+ * @param ids
+ * @return
+ */
+ List<DataSource> queryDataSourceInfo(List ids);
+
/**
* Save data source environment
*
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
index b9984f5ce..096e91887 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
@@ -254,6 +254,12 @@ public class DataSourceInfoServiceImpl implements
DataSourceInfoService {
}
}
+ @Override
+ public List<DataSource> queryDataSourceInfo(List ids) {
+ List<DataSource> queryList = dataSourceDao.selectByIds(ids);
+ return queryList;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void saveDataSourceEnv(DataSourceEnv dataSourceEnv) throws
ErrorException {
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDaoTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDaoTest.java
index 2858bf7fd..62785e5dc 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDaoTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDaoTest.java
@@ -20,8 +20,11 @@ package org.apache.linkis.datasourcemanager.core.dao;
import org.apache.linkis.datasourcemanager.common.domain.DataSource;
import org.apache.linkis.datasourcemanager.core.vo.DataSourceVo;
+import org.apache.commons.collections.CollectionUtils;
+
import org.springframework.beans.factory.annotation.Autowired;
+import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -35,6 +38,7 @@ import org.slf4j.LoggerFactory;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertTrue;
class DataSourceDaoTest extends BaseDaoTest {
private static final Logger logger =
LoggerFactory.getLogger(DataSourceDaoTest.class);
@@ -196,4 +200,14 @@ class DataSourceDaoTest extends BaseDaoTest {
dataSourceDao.updateVersionId(dataSource.getId(), 10l);
assertTrue(dataSourceDao.selectByPageVo(new
DataSourceVo()).get(0).getVersionId() == 10l);
}
+
+ @Test
+ void testSelectByIds() {
+ DataSource dataSource = insertOne();
+ dataSource.setDataSourceName("unitTest");
+ dataSource.setDataSourceTypeId(1l);
+ dataSource.setCreateUser("test");
+ List<DataSource> list =
dataSourceDao.selectByIds(Arrays.asList(dataSource.getId()));
+ assertTrue(CollectionUtils.isNotEmpty(list));
+ }
}
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
index 519fb4a81..70d035075 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApiTest.java
@@ -25,8 +25,11 @@ import
org.apache.linkis.datasourcemanager.core.service.DataSourceInfoService;
import org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
import org.apache.linkis.server.Message;
import org.apache.linkis.server.MessageStatus;
+import org.apache.linkis.server.conf.ServerConfiguration;
import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.commons.collections.CollectionUtils;
+
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
@@ -50,6 +53,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.times;
@@ -69,9 +73,11 @@ class DataSourceAdminRestfulApiTest {
@MockBean private DataSourceInfoService dataSourceInfoService;
private static MockedStatic<SecurityFilter> securityFilter;
+ @MockBean private ServerConfiguration serverConfiguration;
@BeforeAll
private static void init() {
+ System.setProperty("wds.linkis.server.version", "v1");
securityFilter = Mockito.mockStatic(SecurityFilter.class);
}
@@ -107,6 +113,81 @@ class DataSourceAdminRestfulApiTest {
&& "10".equals(mvcResult.getData().get("insertId").toString()));
}
+ @Test
+ void insertJsonEnvBatch() throws Exception {
+ long dataSourceEnvId = 10l;
+ String fromSystem = "WTSS";
+ String url = "/data-source-manager/env/json/batch?system=";
+ MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ List<DataSourceEnv> dataSourceEnvList = new ArrayList<>();
+ DataSourceEnv dataSourceEnv = new DataSourceEnv();
+ dataSourceEnv.setId(dataSourceEnvId);
+ dataSourceEnvList.add(dataSourceEnv);
+ StringWriter dsJsonWriter = new StringWriter();
+ JsonUtils.jackson().writeValue(dsJsonWriter, dataSourceEnvList);
+ securityFilter
+ .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ .thenReturn("testUser", "hadoop");
+ Message mvcResult =
+ mvcUtils.getMessage(mvcUtils.buildMvcResultPost(url + fromSystem,
dsJsonWriter.toString()));
+ assertTrue(
+ MessageStatus.ERROR() == mvcResult.getStatus()
+ && mvcResult.getMessage().contains("is not admin user"));
+
+ fromSystem = "Qualitis";
+ mvcResult =
+ mvcUtils.getMessage(mvcUtils.buildMvcResultPost(url + fromSystem,
dsJsonWriter.toString()));
+
+ Mockito.doNothing().when(parameterValidator).validate(any(), any());
+ Mockito.doNothing().when(dataSourceInfoService).saveDataSourceEnv(any());
+ assertTrue(MessageStatus.SUCCESS() == mvcResult.getStatus());
+ List<Map<String, Object>> dataSourceEnvMap =
+ (List<Map<String, Object>>) mvcResult.getData().get("envs");
+ assertTrue(CollectionUtils.isNotEmpty(dataSourceEnvMap));
+ assertEquals(10, dataSourceEnvMap.get(0).get("id"));
+ }
+
+ @Test
+ void updateJsonEnvBatch() throws Exception {
+ long dataSourceEnvId = 10l;
+ String fromSystem = "WTSS";
+ String url = "/data-source-manager/env/json/batch?system=";
+
+ List<DataSourceEnv> dataSourceEnvList = new ArrayList<>();
+ DataSourceEnv dataSourceEnv = new DataSourceEnv();
+ dataSourceEnv.setId(dataSourceEnvId);
+ dataSourceEnvList.add(dataSourceEnv);
+ StringWriter dsJsonWriter = new StringWriter();
+ JsonUtils.jackson().writeValue(dsJsonWriter, dataSourceEnvList);
+
+ MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ securityFilter
+ .when(() ->
SecurityFilter.getLoginUsername(isA(HttpServletRequest.class)))
+ .thenReturn("testUser", "hadoop");
+ Message mvcResult =
+ mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url + fromSystem,
dsJsonWriter.toString()));
+ assertTrue(
+ MessageStatus.ERROR() == mvcResult.getStatus()
+ && mvcResult.getMessage().contains("is not admin user"));
+
+ fromSystem = "Qualitis";
+ Mockito.when(dataSourceInfoService.getDataSourceEnv(dataSourceEnvId))
+ .thenReturn(null)
+ .thenReturn(dataSourceEnv);
+ mvcResult =
+ mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url + fromSystem,
dsJsonWriter.toString()));
+ assertTrue(
+ MessageStatus.ERROR() == mvcResult.getStatus()
+ && mvcResult.getMessage().contains("Fail to update data source
environment"));
+
+ mvcResult = mvcUtils.getMessage(mvcUtils.buildMvcResultPut(url,
dsJsonWriter.toString()));
+ assertTrue(MessageStatus.SUCCESS() == mvcResult.getStatus());
+ List<Map<String, Object>> dataSourceEnvMap =
+ (List<Map<String, Object>>) mvcResult.getData().get("envs");
+ assertTrue(CollectionUtils.isNotEmpty(dataSourceEnvMap));
+ assertEquals(10, dataSourceEnvMap.get(0).get("id"));
+ }
+
@Test
void getAllEnvListByDataSourceType() throws Exception {
long dataSourceEnvTypeId = 10l;
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
index f85e0dae1..35ea7d122 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApiTest.java
@@ -39,6 +39,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
@@ -568,4 +569,28 @@ class DataSourceCoreRestfulApiTest {
MessageStatus.SUCCESS() == res.getStatus()
&& "10".equals(res.getData().get("totalPage").toString()));
}
+
+ @Test
+ void queryDataSourceByIds() throws Exception {
+ long id = 10l;
+ MvcUtils mvcUtils = new MvcUtils(mockMvc);
+ String url = String.format("/data-source-manager/info/ids");
+ StringWriter dsJsonWriter = new StringWriter();
+ JsonUtils.jackson().writeValue(dsJsonWriter, Arrays.asList(id));
+ MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+ params.add("ids", dsJsonWriter.toString());
+
+ List<DataSource> dataSourceList = new ArrayList<>();
+ DataSource dataSource = new DataSource();
+ dataSource.setId(id);
+ dataSourceList.add(dataSource);
+
Mockito.when(dataSourceInfoService.queryDataSourceInfo(any())).thenReturn(dataSourceList);
+ Message res = mvcUtils.getMessage(mvcUtils.buildMvcResultGet(url, params));
+ assertTrue(MessageStatus.SUCCESS() == res.getStatus());
+
+ List<Map<String, Object>> queryList =
+ (List<Map<String, Object>>) res.getData().get("queryList");
+ assertTrue(!CollectionUtils.isEmpty(queryList));
+ assertEquals(10, queryList.get(0).get("id"));
+ }
}
diff --git
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoServiceTest.java
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoServiceTest.java
index 8ac8b5e43..a2a5e6713 100644
---
a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoServiceTest.java
+++
b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/test/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoServiceTest.java
@@ -25,6 +25,8 @@ import org.apache.linkis.datasourcemanager.core.dao.*;
import
org.apache.linkis.datasourcemanager.core.service.impl.DataSourceInfoServiceImpl;
import org.apache.linkis.datasourcemanager.core.vo.DataSourceVo;
+import org.apache.commons.collections.CollectionUtils;
+
import java.util.*;
import com.github.pagehelper.PageInfo;
@@ -38,8 +40,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
@ExtendWith(MockitoExtension.class)
public class DataSourceInfoServiceTest {
@@ -377,4 +378,18 @@ public class DataSourceInfoServiceTest {
dataSourceInfoService.updateBatchDataSourceEnv(list);
}
+
+ @Test
+ void testQueryDataSourceInfo() {
+ List<DataSource> dataSourceList = new ArrayList<>();
+ DataSource dataSource = new DataSource();
+ dataSource.setId(1l);
+ dataSource.setCreateUser("test");
+ dataSourceList.add(dataSource);
+
Mockito.when(dataSourceDao.selectByIds(Arrays.asList(1l))).thenReturn(dataSourceList);
+
+ List<DataSource> list =
dataSourceInfoService.queryDataSourceInfo(Arrays.asList(1l));
+ assertTrue(CollectionUtils.isNotEmpty(list));
+ assertEquals(dataSourceList.get(0).getId(), 1l);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]