Просмотр исходного кода

add unit test in UdfFuncMapperTest (#940)

* rename from DatasourceUserMapper to DataSourceUserMapper

* add unit test in UserMapper and WorkerGroupMapper

* change cn.escheduler to org.apache.dolphinscheduler

* add unit test in UdfFuncMapperTest

* add unit test in UdfFuncMapperTest

* remove DatabaseConfiguration

* add ConnectionFactoryTest
lgcareer 5 лет назад
Родитель
Сommit
58b55d4014

+ 1 - 1
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java

@@ -1532,7 +1532,7 @@ public class ProcessDao extends AbstractBaseDao {
      * @param ids
      * @return
      */
-    public List<UdfFunc> queryUdfFunListByids(String ids){
+    public List<UdfFunc> queryUdfFunListByids(int[] ids){
 
         return udfFuncMapper.queryUdfByIdStr(ids, null);
     }

+ 8 - 6
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/UdfFunc.java

@@ -16,6 +16,7 @@
  */
 package org.apache.dolphinscheduler.dao.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import org.apache.dolphinscheduler.common.enums.UdfType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -58,12 +59,13 @@ public class UdfFunc {
     /**
      * udf data base
      */
+    @TableField("`database`")
     private String database;
 
     /**
      * udf description
      */
-    private String desc;
+    private String description;
 
     /**
      * resource id
@@ -138,12 +140,12 @@ public class UdfFunc {
         this.database = database;
     }
 
-    public String getDesc() {
-        return desc;
+    public String getDescription() {
+        return description;
     }
 
-    public void setDesc(String desc) {
-        this.desc = desc;
+    public void setDescription(String description) {
+        this.description = description;
     }
 
     public int getResourceId() {
@@ -196,7 +198,7 @@ public class UdfFunc {
                 ", className='" + className + '\'' +
                 ", argTypes='" + argTypes + '\'' +
                 ", database='" + database + '\'' +
-                ", desc='" + desc + '\'' +
+                ", description='" + description + '\'' +
                 ", resourceId=" + resourceId +
                 ", resourceName='" + resourceName + '\'' +
                 ", type=" + type +

+ 1 - 1
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java

@@ -26,7 +26,7 @@ import java.util.List;
 public interface UdfFuncMapper extends BaseMapper<UdfFunc> {
 
 
-    List<UdfFunc> queryUdfByIdStr(@Param("ids") String ids,
+    List<UdfFunc> queryUdfByIdStr(@Param("ids") int[] ids,
                                   @Param("funcNames") String funcNames);
 
     IPage<UdfFunc> queryUdfFuncPaging(IPage<UdfFunc> page,

+ 5 - 2
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml

@@ -6,9 +6,12 @@
         from t_escheduler_udfs
         where 1 = 1
         <if test="ids != null and ids != ''">
-            and id in (#{ids})
+            and id in
+            <foreach collection="ids" item="i" open="(" close=")" separator=",">
+                #{i}
+            </foreach>
         </if>
-        <if test="funcName != null and funcName != ''">
+        <if test="funcNames != null and funcNames != ''">
             and func_name = #{funcName}
         </if>
         order by id asc

+ 1 - 1
dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java

@@ -30,4 +30,4 @@ public class ConnectionFactoryTest {
         Connection connection = ConnectionFactory.getDataSource().getPooledConnection().getConnection();
         Assert.assertEquals(connection != null , true);
     }
-}
+}

+ 193 - 0
dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java

@@ -17,32 +17,225 @@
 package org.apache.dolphinscheduler.dao.mapper;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.dolphinscheduler.common.enums.UdfType;
+import org.apache.dolphinscheduler.common.enums.UserType;
+import org.apache.dolphinscheduler.dao.entity.UDFUser;
+import org.apache.dolphinscheduler.dao.entity.UdfFunc;
+import org.apache.dolphinscheduler.dao.entity.User;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.util.Date;
+import java.util.List;
+
 @RunWith(SpringRunner.class)
 @SpringBootTest
 public class UdfFuncMapperTest {
 
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    UdfFuncMapper udfFuncMapper;
+
+    @Autowired
+    UDFUserMapper udfUserMapper;
+
+    /**
+     * insert one udf
+     * @return
+     */
+    private UdfFunc insertOne(){
+        UdfFunc udfFunc = new UdfFunc();
+        udfFunc.setUserId(1);
+        udfFunc.setFuncName("dolphin_udf_func");
+        udfFunc.setClassName("org.apache.dolphinscheduler.test.mr");
+        udfFunc.setType(UdfType.HIVE);
+        udfFunc.setResourceId(1);
+        udfFunc.setResourceName("dolphin_resource");
+        udfFunc.setCreateTime(new Date());
+        udfFunc.setUpdateTime(new Date());
+        udfFuncMapper.insert(udfFunc);
+        return udfFunc;
+    }
+
+    /**
+     * insert one udf
+     * @return
+     */
+    private UdfFunc insertOne(User user){
+        UdfFunc udfFunc = new UdfFunc();
+        udfFunc.setUserId(user.getId());
+        udfFunc.setFuncName("dolphin_udf_func");
+        udfFunc.setClassName("org.apache.dolphinscheduler.test.mr");
+        udfFunc.setType(UdfType.HIVE);
+        udfFunc.setResourceId(1);
+        udfFunc.setResourceName("dolphin_resource");
+        udfFunc.setCreateTime(new Date());
+        udfFunc.setUpdateTime(new Date());
+        udfFuncMapper.insert(udfFunc);
+        return udfFunc;
+    }
+
+    /**
+     * insert one user
+     * @return
+     */
+    private User insertOneUser(){
+        User user = new User();
+        user.setUserName("user1");
+        user.setUserPassword("1");
+        user.setEmail("xx@123.com");
+        user.setUserType(UserType.GENERAL_USER);
+        user.setCreateTime(new Date());
+        user.setTenantId(1);
+        user.setUpdateTime(new Date());
+        userMapper.insert(user);
+        return user;
+    }
+
+    /**
+     * insert one user
+     * @return
+     */
+    private User insertOneUser(String userName){
+        User user = new User();
+        user.setUserName(userName);
+        user.setUserPassword("1");
+        user.setEmail("xx@123.com");
+        user.setUserType(UserType.GENERAL_USER);
+        user.setCreateTime(new Date());
+        user.setTenantId(1);
+        user.setUpdateTime(new Date());
+        userMapper.insert(user);
+        return user;
+    }
+
+    private UDFUser insertOneUDFUser(User user,UdfFunc udfFunc){
+        UDFUser udfUser = new UDFUser();
+        udfUser.setUdfId(udfFunc.getId());
+        udfUser.setUserId(user.getId());
+        udfUser.setCreateTime(new Date());
+        udfUser.setUpdateTime(new Date());
+        udfUserMapper.insert(udfUser);
+        return udfUser;
+    }
+
+    @Test
+    public void testUpdate(){
+        //insertOne
+        UdfFunc udfFunc = insertOne();
+        udfFunc.setResourceName("dolphin_resource_update");
+        udfFunc.setResourceId(2);
+        udfFunc.setClassName("org.apache.dolphinscheduler.test.mrUpdate");
+        udfFunc.setUpdateTime(new Date());
+        //update
+        int update = udfFuncMapper.updateById(udfFunc);
+        udfFuncMapper.deleteById(udfFunc.getId());
+        Assert.assertEquals(update, 1);
+
+    }
+
+    @Test
+    public void testDelete(){
+        //insertOne
+        UdfFunc udfFunc = insertOne();
+        //delete
+        int delete = udfFuncMapper.deleteById(udfFunc.getId());
+        Assert.assertEquals(delete, 1);
+    }
+
+    @Test
+    public void testQuery(){
+        //insertOne
+        UdfFunc udfFunc = insertOne();
+        //query
+        List<UdfFunc> udfFuncList = udfFuncMapper.selectList(null);
+        Assert.assertNotEquals(udfFuncList.size(), 0);
+        udfFuncMapper.deleteById(udfFunc.getId());
+    }
+
     @Test
     public void testQueryUdfByIdStr() {
+        //insertOne
+        UdfFunc udfFunc = insertOne();
+        //insertOne
+        UdfFunc udfFunc1 = insertOne();
+        int[] idArray = new int[]{udfFunc.getId(),udfFunc1.getId()};
+        //queryUdfByIdStr
+        List<UdfFunc> udfFuncList = udfFuncMapper.queryUdfByIdStr(idArray,"");
+        Assert.assertNotEquals(udfFuncList.size(), 0);
+        udfFuncMapper.deleteById(udfFunc.getId());
+        udfFuncMapper.deleteById(udfFunc1.getId());
     }
 
     @Test
     public void testQueryUdfFuncPaging() {
+        //insertOneUser
+        User user = insertOneUser();
+        //insertOne
+        UdfFunc udfFunc = insertOne(user);
+        //queryUdfFuncPaging
+        Page<UdfFunc> page = new Page(1,3);
+        IPage<UdfFunc> udfFuncIPage = udfFuncMapper.queryUdfFuncPaging(page,user.getId(),"");
+        userMapper.deleteById(user.getId());
+        udfFuncMapper.deleteById(udfFunc.getId());
+        Assert.assertNotEquals(udfFuncIPage.getTotal(), 0);
+
     }
 
     @Test
     public void testGetUdfFuncByType() {
+        //insertOneUser
+        User user = insertOneUser();
+        //insertOne
+        UdfFunc udfFunc = insertOne(user);
+        //getUdfFuncByType
+        List<UdfFunc> udfFuncList = udfFuncMapper.getUdfFuncByType(user.getId(), udfFunc.getType().ordinal());
+        userMapper.deleteById(user.getId());
+        udfFuncMapper.deleteById(udfFunc.getId());
+        Assert.assertNotEquals(udfFuncList.size(), 0);
+
     }
 
     @Test
     public void testQueryUdfFuncExceptUserId() {
+        //insertOneUser
+        User user1 = insertOneUser();
+        User user2 = insertOneUser("user2");
+        //insertOne
+        UdfFunc udfFunc1 = insertOne(user1);
+        UdfFunc udfFunc2 = insertOne(user2);
+        List<UdfFunc> udfFuncList = udfFuncMapper.queryUdfFuncExceptUserId(user1.getId());
+        userMapper.deleteById(user1.getId());
+        userMapper.deleteById(user2.getId());
+        udfFuncMapper.deleteById(udfFunc1.getId());
+        udfFuncMapper.deleteById(udfFunc2.getId());
+        Assert.assertNotEquals(udfFuncList.size(), 0);
+
     }
 
     @Test
     public void testQueryAuthedUdfFunc() {
+        //insertOneUser
+        User user = insertOneUser();
+
+        //insertOne
+        UdfFunc udfFunc = insertOne(user);
+
+        //insertOneUDFUser
+        UDFUser udfUser = insertOneUDFUser(user, udfFunc);
+        //queryAuthedUdfFunc
+        List<UdfFunc> udfFuncList = udfFuncMapper.queryAuthedUdfFunc(user.getId());
+        userMapper.deleteById(user.getId());
+        udfFuncMapper.deleteById(udfFunc.getId());
+        udfUserMapper.deleteById(udfUser.getId());
+        Assert.assertNotEquals(udfFuncList.size(), 0);
     }
 }