From 58b55d40142521c4d7485bc1b0aa050e31888567 Mon Sep 17 00:00:00 2001 From: lgcareer <18610854716@163.com> Date: Mon, 30 Sep 2019 13:48:08 +0800 Subject: [PATCH] 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 --- .../dolphinscheduler/dao/ProcessDao.java | 2 +- .../dolphinscheduler/dao/entity/UdfFunc.java | 14 +- .../dao/mapper/UdfFuncMapper.java | 2 +- .../dao/mapper/UdfFuncMapper.xml | 7 +- .../dao/mapper/ConnectionFactoryTest.java | 2 +- .../dao/mapper/UdfFuncMapperTest.java | 193 ++++++++++++++++++ 6 files changed, 209 insertions(+), 11 deletions(-) diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java index 59a0d339ac..f3005138e1 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java +++ b/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 queryUdfFunListByids(String ids){ + public List queryUdfFunListByids(int[] ids){ return udfFuncMapper.queryUdfByIdStr(ids, null); } diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/UdfFunc.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/UdfFunc.java index a42492e094..bf69f02c15 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/UdfFunc.java +++ b/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 + diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java index 3fa872f826..13e8449ea3 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.java +++ b/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 { - List queryUdfByIdStr(@Param("ids") String ids, + List queryUdfByIdStr(@Param("ids") int[] ids, @Param("funcNames") String funcNames); IPage queryUdfFuncPaging(IPage page, diff --git a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml index c0aed4fc76..e8bafc5c4d 100644 --- a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml +++ b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapper.xml @@ -6,9 +6,12 @@ from t_escheduler_udfs where 1 = 1 - and id in (#{ids}) + and id in + + #{i} + - + and func_name = #{funcName} order by id asc diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java index a674505c26..fca8e2ab57 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java +++ b/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); } -} +} \ No newline at end of file diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java index 001f1f510b..a601f1478a 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UdfFuncMapperTest.java +++ b/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 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 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 page = new Page(1,3); + IPage 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 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 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 udfFuncList = udfFuncMapper.queryAuthedUdfFunc(user.getId()); + userMapper.deleteById(user.getId()); + udfFuncMapper.deleteById(udfFunc.getId()); + udfUserMapper.deleteById(udfUser.getId()); + Assert.assertNotEquals(udfFuncList.size(), 0); } } \ No newline at end of file