Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
liyuanzhong001
DolphinScheduler
提交
dc6c1890
DolphinScheduler
项目概览
liyuanzhong001
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dc6c1890
编写于
12月 31, 2019
作者:
S
samz406
提交者:
khadgarmage
12月 31, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify UdfFuncServiceTest UT (#1644)
上级
bc8e06bb
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
201 addition
and
14 deletion
+201
-14
dolphinscheduler-api/pom.xml
dolphinscheduler-api/pom.xml
+18
-0
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UdfFuncServiceTest.java
...ache/dolphinscheduler/api/service/UdfFuncServiceTest.java
+182
-14
pom.xml
pom.xml
+1
-0
未找到文件。
dolphinscheduler-api/pom.xml
浏览文件 @
dc6c1890
...
@@ -250,5 +250,23 @@
...
@@ -250,5 +250,23 @@
<version>
${servlet-api.version}
</version>
<version>
${servlet-api.version}
</version>
</dependency>
</dependency>
<dependency>
<groupId>
org.powermock
</groupId>
<artifactId>
powermock-module-junit4
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.powermock
</groupId>
<artifactId>
powermock-api-mockito2
</artifactId>
<scope>
test
</scope>
<exclusions>
<exclusion>
<groupId>
org.mockito
</groupId>
<artifactId>
mockito-core
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencies>
</project>
</project>
\ No newline at end of file
dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UdfFuncServiceTest.java
浏览文件 @
dc6c1890
...
@@ -16,43 +16,211 @@
...
@@ -16,43 +16,211 @@
*/
*/
package
org.apache.dolphinscheduler.api.service
;
package
org.apache.dolphinscheduler.api.service
;
import
org.apache.dolphinscheduler.api.ApiApplicationServer
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.dolphinscheduler.api.enums.Status
;
import
org.apache.dolphinscheduler.api.enums.Status
;
import
org.apache.dolphinscheduler.api.utils.PageInfo
;
import
org.apache.dolphinscheduler.api.utils.PageInfo
;
import
org.apache.dolphinscheduler.api.utils.Result
;
import
org.apache.dolphinscheduler.common.Constants
;
import
org.apache.dolphinscheduler.common.Constants
;
import
org.apache.dolphinscheduler.common.enums.UdfType
;
import
org.apache.dolphinscheduler.common.enums.UserType
;
import
org.apache.dolphinscheduler.common.enums.UserType
;
import
org.apache.dolphinscheduler.common.utils.CollectionUtils
;
import
org.apache.dolphinscheduler.common.utils.PropertyUtils
;
import
org.apache.dolphinscheduler.dao.entity.Resource
;
import
org.apache.dolphinscheduler.dao.entity.UdfFunc
;
import
org.apache.dolphinscheduler.dao.entity.User
;
import
org.apache.dolphinscheduler.dao.entity.User
;
import
org.apache.dolphinscheduler.dao.mapper.ResourceMapper
;
import
org.apache.dolphinscheduler.dao.mapper.UDFUserMapper
;
import
org.apache.dolphinscheduler.dao.mapper.UdfFuncMapper
;
import
org.junit.Assert
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.Mockito
;
import
org.powermock.api.mockito.PowerMockito
;
import
org.powermock.core.classloader.annotations.PrepareForTest
;
import
org.powermock.modules.junit4.PowerMockRunner
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@RunWith
(
Spring
Runner
.
class
)
@RunWith
(
PowerMock
Runner
.
class
)
@
SpringBootTest
(
classes
=
ApiApplicationServer
.
class
)
@
PrepareForTest
(
PropertyUtils
.
class
)
public
class
UdfFuncServiceTest
{
public
class
UdfFuncServiceTest
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
UdfFuncServiceTest
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
UdfFuncServiceTest
.
class
);
@
Autowired
@
InjectMocks
private
UdfFuncService
udfFuncService
;
private
UdfFuncService
udfFuncService
;
@Mock
private
ResourceMapper
resourceMapper
;
@Mock
private
UdfFuncMapper
udfFuncMapper
;
@Mock
private
UDFUserMapper
udfUserMapper
;
@Before
public
void
setUp
()
{
PowerMockito
.
mockStatic
(
PropertyUtils
.
class
);
}
@Test
public
void
testCreateUdfFunction
(){
PowerMockito
.
when
(
PropertyUtils
.
getResUploadStartupState
()).
thenReturn
(
false
);
//hdfs not start
Result
result
=
udfFuncService
.
createUdfFunction
(
getLoginUser
(),
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
Integer
.
MAX_VALUE
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
HDFS_NOT_STARTUP
.
getMsg
(),
result
.
getMsg
());
//resource not exist
PowerMockito
.
when
(
PropertyUtils
.
getResUploadStartupState
()).
thenReturn
(
true
);
result
=
udfFuncService
.
createUdfFunction
(
getLoginUser
(),
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
Integer
.
MAX_VALUE
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
RESOURCE_NOT_EXIST
.
getMsg
(),
result
.
getMsg
());
// success
PowerMockito
.
when
(
resourceMapper
.
selectById
(
1
)).
thenReturn
(
getResource
());
result
=
udfFuncService
.
createUdfFunction
(
getLoginUser
(),
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
1
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
SUCCESS
.
getMsg
(),
result
.
getMsg
());
}
@Test
public
void
testQueryUdfFuncDetail
(){
PowerMockito
.
when
(
udfFuncMapper
.
selectById
(
1
)).
thenReturn
(
getUdfFunc
());
//resource not exist
Map
<
String
,
Object
>
result
=
udfFuncService
.
queryUdfFuncDetail
(
2
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
RESOURCE_NOT_EXIST
,
result
.
get
(
Constants
.
STATUS
));
// success
result
=
udfFuncService
.
queryUdfFuncDetail
(
1
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
SUCCESS
,
result
.
get
(
Constants
.
STATUS
));
}
@Test
public
void
testUpdateUdfFunc
(){
PowerMockito
.
when
(
PropertyUtils
.
getResUploadStartupState
()).
thenReturn
(
false
);
PowerMockito
.
when
(
udfFuncMapper
.
selectUdfById
(
1
)).
thenReturn
(
getUdfFunc
());
PowerMockito
.
when
(
resourceMapper
.
selectById
(
1
)).
thenReturn
(
getResource
());
//UDF_FUNCTION_NOT_EXIST
Map
<
String
,
Object
>
result
=
udfFuncService
.
updateUdfFunc
(
12
,
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
1
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
UDF_FUNCTION_NOT_EXIST
,
result
.
get
(
Constants
.
STATUS
));
//HDFS_NOT_STARTUP
result
=
udfFuncService
.
updateUdfFunc
(
1
,
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
1
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
HDFS_NOT_STARTUP
,
result
.
get
(
Constants
.
STATUS
));
//RESOURCE_NOT_EXIST
PowerMockito
.
when
(
udfFuncMapper
.
selectUdfById
(
11
)).
thenReturn
(
getUdfFunc
());
PowerMockito
.
when
(
PropertyUtils
.
getResUploadStartupState
()).
thenReturn
(
true
);
result
=
udfFuncService
.
updateUdfFunc
(
11
,
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
12
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
RESOURCE_NOT_EXIST
,
result
.
get
(
Constants
.
STATUS
));
//success
result
=
udfFuncService
.
updateUdfFunc
(
11
,
"UdfFuncServiceTest"
,
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
,
"String"
,
"UdfFuncServiceTest"
,
"UdfFuncServiceTest"
,
UdfType
.
HIVE
,
1
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
SUCCESS
,
result
.
get
(
Constants
.
STATUS
));
}
@Test
@Test
public
void
queryUdfFuncListPaging
(){
public
void
testQueryUdfFuncListPaging
(){
IPage
<
UdfFunc
>
page
=
new
Page
<>(
1
,
10
);
page
.
setTotal
(
1L
);
page
.
setRecords
(
getList
());
Mockito
.
when
(
udfFuncMapper
.
queryUdfFuncPaging
(
Mockito
.
any
(
Page
.
class
),
Mockito
.
eq
(
0
),
Mockito
.
eq
(
"test"
))).
thenReturn
(
page
);
Map
<
String
,
Object
>
result
=
udfFuncService
.
queryUdfFuncListPaging
(
getLoginUser
(),
"test"
,
1
,
10
);
logger
.
info
(
result
.
toString
());
PageInfo
pageInfo
=
(
PageInfo
)
result
.
get
(
Constants
.
DATA_LIST
);
Assert
.
assertTrue
(
CollectionUtils
.
isNotEmpty
(
pageInfo
.
getLists
()));
}
@Test
public
void
testQueryResourceList
(){
Mockito
.
when
(
udfFuncMapper
.
getUdfFuncByType
(
1
,
1
)).
thenReturn
(
getList
());
Map
<
String
,
Object
>
result
=
udfFuncService
.
queryResourceList
(
getLoginUser
(),
1
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
SUCCESS
,
result
.
get
(
Constants
.
STATUS
));
List
<
UdfFunc
>
udfFuncList
=
(
List
<
UdfFunc
>)
result
.
get
(
Constants
.
DATA_LIST
);
Assert
.
assertTrue
(
CollectionUtils
.
isNotEmpty
(
udfFuncList
));
}
@Test
public
void
testDelete
(){
Result
result
=
udfFuncService
.
delete
(
122
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
SUCCESS
.
getMsg
(),
result
.
getMsg
());
}
@Test
public
void
testVerifyUdfFuncByName
(){
//success
Mockito
.
when
(
udfFuncMapper
.
queryUdfByIdStr
(
null
,
"UdfFuncServiceTest"
)).
thenReturn
(
getList
());
Result
result
=
udfFuncService
.
verifyUdfFuncByName
(
"test"
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
SUCCESS
.
getMsg
(),
result
.
getMsg
());
//exist
result
=
udfFuncService
.
verifyUdfFuncByName
(
"UdfFuncServiceTest"
);
logger
.
info
(
result
.
toString
());
Assert
.
assertEquals
(
Status
.
UDF_FUNCTION_EXISTS
.
getMsg
(),
result
.
getMsg
());
}
/**
* create admin user
* @return
*/
private
User
getLoginUser
(){
User
loginUser
=
new
User
();
User
loginUser
=
new
User
();
loginUser
.
setId
(-
1
);
loginUser
.
setUserType
(
UserType
.
ADMIN_USER
);
loginUser
.
setUserType
(
UserType
.
GENERAL_USER
);
loginUser
.
setId
(
1
);
return
loginUser
;
}
Map
<
String
,
Object
>
map
=
udfFuncService
.
queryUdfFuncListPaging
(
loginUser
,
""
,
1
,
10
);
/**
Assert
.
assertEquals
(
Status
.
SUCCESS
,
map
.
get
(
Constants
.
STATUS
));
* get resourceId
*/
private
Resource
getResource
(){
Resource
resource
=
new
Resource
();
resource
.
setId
(
1
);
resource
.
setAlias
(
"test"
);
return
resource
;
}
PageInfo
pageInfo
=
(
PageInfo
)
map
.
get
(
"data"
);
logger
.
info
(
pageInfo
.
getLists
().
toString
());
private
List
<
UdfFunc
>
getList
(){
List
<
UdfFunc
>
udfFuncList
=
new
ArrayList
<>();
udfFuncList
.
add
(
getUdfFunc
());
return
udfFuncList
;
}
/**
* get UdfFunc id
*/
private
UdfFunc
getUdfFunc
(){
UdfFunc
udfFunc
=
new
UdfFunc
();
udfFunc
.
setFuncName
(
"UdfFuncServiceTest"
);
udfFunc
.
setClassName
(
"org.apache.dolphinscheduler.api.service.UdfFuncServiceTest"
);
udfFunc
.
setResourceId
(
0
);
udfFunc
.
setResourceName
(
"UdfFuncServiceTest"
);
udfFunc
.
setCreateTime
(
new
Date
());
udfFunc
.
setDatabase
(
"database"
);
udfFunc
.
setUpdateTime
(
new
Date
());
udfFunc
.
setType
(
UdfType
.
HIVE
);
return
udfFunc
;
}
}
}
}
\ No newline at end of file
pom.xml
浏览文件 @
dc6c1890
...
@@ -675,6 +675,7 @@
...
@@ -675,6 +675,7 @@
<include>
**/api/service/WorkerGroupServiceTest.java
</include>
<include>
**/api/service/WorkerGroupServiceTest.java
</include>
<include>
**/api/service/AlertGroupServiceTest.java
</include>
<include>
**/api/service/AlertGroupServiceTest.java
</include>
<include>
**/api/service/ProjectServiceTest.java
</include>
<include>
**/api/service/ProjectServiceTest.java
</include>
<include>
**/api/service/UdfFuncServiceTest.java
</include>
<include>
**/alert/utils/ExcelUtilsTest.java
</include>
<include>
**/alert/utils/ExcelUtilsTest.java
</include>
<include>
**/alert/utils/FuncUtilsTest.java
</include>
<include>
**/alert/utils/FuncUtilsTest.java
</include>
<include>
**/alert/utils/JSONUtilsTest.java
</include>
<include>
**/alert/utils/JSONUtilsTest.java
</include>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录