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]

Reply via email to