Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xyqb-user2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
head_group
xyqb-user2
Commits
fa65cadb
Commit
fa65cadb
authored
Jan 22, 2018
by
Java—红包—徐 然
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into feature/20180108
parents
2fce4508
182c5496
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
649 additions
and
78 deletions
+649
-78
UserAuthorizedController.java
...qb/controller/internal/user/UserAuthorizedController.java
+64
-0
UserAuthorized.java
src/main/java/cn/quantgroup/xyqb/entity/UserAuthorized.java
+48
-0
AuthPattern.java
src/main/java/cn/quantgroup/xyqb/model/AuthPattern.java
+14
-0
UserAuthorizedParam.java
...in/java/cn/quantgroup/xyqb/model/UserAuthorizedParam.java
+17
-0
IUserAuthorizedRepository.java
...quantgroup/xyqb/repository/IUserAuthorizedRepository.java
+26
-0
IUserAuthorizedService.java
.../quantgroup/xyqb/service/auth/IUserAuthorizedService.java
+42
-0
UserAuthorizedServiceImpl.java
...oup/xyqb/service/auth/impl/UserAuthorizedServiceImpl.java
+100
-0
XyqbSessionContextHolder.java
.../cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
+8
-46
logback-dev.xml
src/main/resources/logback-dev.xml
+24
-0
logback-pro.xml
src/main/resources/logback-pro.xml
+27
-0
BaseParametersTests.java
src/test/java/demo/BaseParametersTests.java
+20
-0
MockMvcTests.java
src/test/java/demo/MockMvcTests.java
+3
-4
MvcTests.java
src/test/java/demo/MvcTests.java
+3
-4
ParametersJunit5Tests.java
src/test/java/demo/ParametersJunit5Tests.java
+0
-1
RepsitoryJpaTests.java
src/test/java/demo/RepsitoryJpaTests.java
+3
-5
RepsitoryTests.java
src/test/java/demo/RepsitoryTests.java
+2
-3
ServiceTests.java
src/test/java/demo/ServiceTests.java
+2
-3
WebTests.java
src/test/java/demo/WebTests.java
+5
-4
TestUserLogin.java
src/test/java/login/TestUserLogin.java
+3
-3
UserAuthorizedRepsitoryTests.java
src/test/java/repsitory/UserAuthorizedRepsitoryTests.java
+83
-0
TestUserService.java
src/test/java/service/TestUserService.java
+3
-5
UserAuthorizedServiceTests.java
src/test/java/service/UserAuthorizedServiceTests.java
+80
-0
UserAuthorizedControllerTests.java
src/test/java/web/UserAuthorizedControllerTests.java
+72
-0
No files found.
src/main/java/cn/quantgroup/xyqb/controller/internal/user/UserAuthorizedController.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
controller
.
internal
.
user
;
import
cn.quantgroup.xyqb.aspect.logcaller.LogHttpCaller
;
import
cn.quantgroup.xyqb.entity.UserAuthorized
;
import
cn.quantgroup.xyqb.model.JsonResult
;
import
cn.quantgroup.xyqb.model.UserAuthorizedParam
;
import
cn.quantgroup.xyqb.service.auth.IUserAuthorizedService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
/**
* @author xufei on 2018/1/5.
*/
@RestController
@RequestMapping
(
"/user/auth"
)
public
class
UserAuthorizedController
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
UserAuthorizedController
.
class
);
@Resource
private
IUserAuthorizedService
userAuthorizedService
;
@LogHttpCaller
@RequestMapping
(
value
=
"/hasUserAuthorized"
)
public
JsonResult
hasUserAuthorized
(
String
idNo
)
{
LOGGER
.
info
(
"[hasUserAuthorized]需要校验的用户的身份证号为idNo:{}"
,
idNo
);
if
(
userAuthorizedService
.
hasUserAuthorized
(
idNo
))
{
return
JsonResult
.
buildSuccessResult
(
null
,
true
);
}
else
{
return
JsonResult
.
buildErrorStateResult
(
null
,
false
);
}
}
@LogHttpCaller
@RequestMapping
(
value
=
"/createUserAuthorized"
)
public
JsonResult
createUserAuthorized
(
UserAuthorizedParam
userAuthorizedParam
)
{
LOGGER
.
info
(
"[createUserAuthorized]创建实名账户,userAuthorizedParam:{},"
,
userAuthorizedParam
);
try
{
if
(
userAuthorizedService
.
checkUserAuthorizedParam
(
userAuthorizedParam
))
{
return
JsonResult
.
buildErrorStateResult
(
"参数异常"
,
null
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
info
(
"[createUserAuthorized]创建实名账户失败e:{}"
,
e
);
return
JsonResult
.
buildErrorStateResult
(
"参数异常"
,
null
);
}
UserAuthorized
userAuthorized
=
userAuthorizedService
.
createUserAuthorized
(
userAuthorizedParam
);
if
(
null
==
userAuthorized
)
{
return
JsonResult
.
buildErrorStateResult
(
"重复创建异常"
,
null
);
}
else
{
return
JsonResult
.
buildSuccessResult
(
"创建成功"
,
userAuthorized
.
getId
());
}
}
@LogHttpCaller
@RequestMapping
(
value
=
"/getUserAuthorizedId"
)
public
JsonResult
getUserAuthorizedId
(
String
userUuid
)
{
LOGGER
.
info
(
"[getUserAuthorizedId]获取实名账户的id,userUuid:{}"
,
userUuid
);
return
JsonResult
.
buildSuccessResult
(
null
,
userAuthorizedService
.
getUserAuthorizedId
(
userUuid
));
}
}
src/main/java/cn/quantgroup/xyqb/entity/UserAuthorized.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
entity
;
import
cn.quantgroup.xyqb.model.AuthPattern
;
import
lombok.Data
;
import
org.hibernate.annotations.GenericGenerator
;
import
javax.persistence.*
;
import
java.sql.Timestamp
;
/**
* @author xufei on 2018/1/5.
*/
@Data
@Entity
@Table
(
name
=
"user_authorized"
)
public
class
UserAuthorized
{
@Id
@Column
(
name
=
"id"
)
@GeneratedValue
(
generator
=
"uuid"
)
@GenericGenerator
(
name
=
"uuid"
,
strategy
=
"uuid"
)
private
String
id
;
@Column
(
name
=
"user_uuid"
)
private
String
userUuid
;
//证件号
@Column
(
name
=
"id_no"
)
private
String
idNo
;
@Column
(
name
=
"name"
)
private
String
name
;
@Column
(
name
=
"auth_pattern"
)
private
AuthPattern
authPattern
;
@Column
(
name
=
"available"
)
private
Boolean
available
;
//创建时间
@Column
(
name
=
"created_at"
)
private
Timestamp
createdAt
;
//上一次修改时间
@Column
(
name
=
"updated_at"
)
private
Timestamp
updatedAt
;
}
src/main/java/cn/quantgroup/xyqb/model/AuthPattern.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
model
;
/**
* @author xufei on 2018/1/5.
*/
public
enum
AuthPattern
{
ZMXY
(
"芝麻分授权"
),
FOUR_ELEMENTS_OF_BANK_CARD
(
"银行卡四要素"
);
private
String
desc
;
AuthPattern
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
src/main/java/cn/quantgroup/xyqb/model/UserAuthorizedParam.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
model
;
import
lombok.Data
;
import
lombok.Getter
;
/**
* @author xufei on 2018/1/10.
*/
@Getter
@Data
public
class
UserAuthorizedParam
{
private
String
name
;
private
String
idNo
;
private
Long
userId
;
private
String
authPattern
;
private
String
userUuid
;
}
src/main/java/cn/quantgroup/xyqb/repository/IUserAuthorizedRepository.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
repository
;
import
cn.quantgroup.xyqb.entity.UserAuthorized
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* @author xufei on 2018/1/5.
*/
public
interface
IUserAuthorizedRepository
extends
JpaRepository
<
UserAuthorized
,
Long
>,
JpaSpecificationExecutor
<
UserAuthorized
>
{
/**
* 通过身份证号查找实名账户
*
* @param idNo 身份证号
* @return 实体
*/
UserAuthorized
findByIdNo
(
String
idNo
);
/**
* 通过userId查找实名账户
*
* @param userUuid 用户表的uuid
* @return 实体
*/
UserAuthorized
findByUserUuid
(
String
userUuid
);
}
src/main/java/cn/quantgroup/xyqb/service/auth/IUserAuthorizedService.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
service
.
auth
;
import
cn.quantgroup.xyqb.entity.UserAuthorized
;
import
cn.quantgroup.xyqb.model.UserAuthorizedParam
;
/**
* @author xufei on 2018/1/5.
*/
public
interface
IUserAuthorizedService
{
/**
* 该身份证是否有对应的实名账户
*
* @param idNo 身份证号
* @return
*/
Boolean
hasUserAuthorized
(
String
idNo
);
/**
* 创建实名账户
*
* @param userAuthorizedParam
* @return
*/
UserAuthorized
createUserAuthorized
(
UserAuthorizedParam
userAuthorizedParam
);
/**
* 通过userId获取实名账户表的id
*
* @param userUuid userUuid
* @return
*/
String
getUserAuthorizedId
(
String
userUuid
);
/**
* 校验参数
*
* @param userAuthorizedParam
* @return
* @throws Exception
*/
Boolean
checkUserAuthorizedParam
(
UserAuthorizedParam
userAuthorizedParam
)
throws
Exception
;
}
src/main/java/cn/quantgroup/xyqb/service/auth/impl/UserAuthorizedServiceImpl.java
0 → 100644
View file @
fa65cadb
package
cn
.
quantgroup
.
xyqb
.
service
.
auth
.
impl
;
import
cn.quantgroup.xyqb.entity.UserAuthorized
;
import
cn.quantgroup.xyqb.model.AuthPattern
;
import
cn.quantgroup.xyqb.model.UserAuthorizedParam
;
import
cn.quantgroup.xyqb.repository.IUserAuthorizedRepository
;
import
cn.quantgroup.xyqb.service.auth.IIdCardService
;
import
cn.quantgroup.xyqb.service.auth.IUserAuthorizedService
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.sql.Timestamp
;
import
java.text.ParseException
;
/**
* @author xufei on 2018/1/5.
*/
@Service
public
class
UserAuthorizedServiceImpl
implements
IUserAuthorizedService
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
UserAuthorizedServiceImpl
.
class
);
@Resource
private
IIdCardService
iIdCardService
;
@Resource
private
IUserAuthorizedRepository
userAuthorizedRepository
;
@Override
public
Boolean
hasUserAuthorized
(
String
idNo
)
{
try
{
if
(
StringUtils
.
isBlank
(
idNo
)
||
!
iIdCardService
.
isIdCardValid
(
idNo
))
{
return
Boolean
.
FALSE
;
}
}
catch
(
ParseException
e
)
{
LOGGER
.
error
(
"[hasUserAuthorized]参数异常e:{}"
,
e
);
}
UserAuthorized
userAuthorized
=
userAuthorizedRepository
.
findByIdNo
(
idNo
);
LOGGER
.
info
(
"[hasUserAuthorized]查询实名账户userAuthorized:{}"
,
userAuthorized
);
return
null
!=
userAuthorized
;
}
@Override
public
Boolean
checkUserAuthorizedParam
(
UserAuthorizedParam
userAuthorizedParam
)
throws
Exception
{
if
(
null
==
userAuthorizedParam
)
{
return
Boolean
.
TRUE
;
}
Long
userId
=
userAuthorizedParam
.
getUserId
();
String
userUuid
=
userAuthorizedParam
.
getUserUuid
();
if
(
userId
==
null
||
userId
==
0L
)
{
if
(
StringUtils
.
isBlank
(
userUuid
))
{
return
Boolean
.
TRUE
;
}
}
String
name
=
userAuthorizedParam
.
getName
();
String
authPattern
=
userAuthorizedParam
.
getAuthPattern
();
String
idNo
=
userAuthorizedParam
.
getIdNo
();
return
(
StringUtils
.
isBlank
(
name
)
||
StringUtils
.
isBlank
(
authPattern
)
||
!
iIdCardService
.
isIdCardValid
(
idNo
));
}
@Override
public
UserAuthorized
createUserAuthorized
(
UserAuthorizedParam
userAuthorizedParam
)
{
AuthPattern
authPatternEnum
=
AuthPattern
.
valueOf
(
userAuthorizedParam
.
getAuthPattern
());
UserAuthorized
userAuthorized
=
new
UserAuthorized
();
userAuthorized
.
setAuthPattern
(
authPatternEnum
);
userAuthorized
.
setAvailable
(
Boolean
.
TRUE
);
userAuthorized
.
setName
(
userAuthorizedParam
.
getName
());
userAuthorized
.
setIdNo
(
userAuthorizedParam
.
getIdNo
());
userAuthorized
.
setUserUuid
(
userAuthorizedParam
.
getUserUuid
());
Timestamp
now
=
new
Timestamp
(
System
.
currentTimeMillis
());
userAuthorized
.
setCreatedAt
(
now
);
userAuthorized
.
setUpdatedAt
(
now
);
try
{
userAuthorized
=
userAuthorizedRepository
.
save
(
userAuthorized
);
LOGGER
.
info
(
"[createUserAuthorized]创建实名账户成功,userAuthorized:{}"
,
userAuthorized
);
return
userAuthorized
;
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"[createUserAuthorized]创建实名账户异常e:{}"
,
e
);
return
null
;
}
}
@Override
public
String
getUserAuthorizedId
(
String
userUuid
)
{
if
(
StringUtils
.
isBlank
(
userUuid
))
{
return
null
;
}
UserAuthorized
userAuthorized
=
userAuthorizedRepository
.
findByUserUuid
(
userUuid
);
LOGGER
.
info
(
"[getUserAuthorizedId]获取实名账户的id,userUuid:{},userAuthorized:{}"
,
userUuid
,
userAuthorized
);
if
(
null
==
userAuthorized
)
{
return
null
;
}
return
userAuthorized
.
getId
();
}
}
src/main/java/cn/quantgroup/xyqb/session/XyqbSessionContextHolder.java
View file @
fa65cadb
...
@@ -12,6 +12,7 @@ import org.springframework.web.context.request.RequestContextHolder;
...
@@ -12,6 +12,7 @@ import org.springframework.web.context.request.RequestContextHolder;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Objects
;
/**
/**
* Created by Miraculous on 2016/12/29.
* Created by Miraculous on 2016/12/29.
...
@@ -23,63 +24,24 @@ public class XyqbSessionContextHolder {
...
@@ -23,63 +24,24 @@ public class XyqbSessionContextHolder {
public
static
RedisTemplate
<
String
,
String
>
redisTemplate
=
null
;
public
static
RedisTemplate
<
String
,
String
>
redisTemplate
=
null
;
public
static
SessionStruct
getXSession
()
{
public
static
SessionStruct
getXSession
()
{
SessionStruct
sessionStruct
;
if
(
threadSession
.
get
()
!=
null
)
{
if
(
threadSession
.
get
()
!=
null
)
{
return
threadSession
.
get
();
sessionStruct
=
threadSession
.
get
();
}
}
else
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
sessionStruct
=
getXSessionFromRedis
();
String
token
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
if
(
token
==
null
||
token
.
length
()
!=
36
)
{
return
null
;
}
String
result
=
redisTemplate
.
opsForValue
().
get
(
Constants
.
Session
.
USER_SESSION_CACHE
+
token
);
if
(
StringUtils
.
isEmpty
(
result
))
{
return
null
;
}
try
{
SessionValue
values
=
JSON
.
parseObject
(
result
,
SessionValue
.
class
);
if
(
values
==
null
)
{
return
null
;
}
SessionStruct
sessionStruct
=
new
SessionStruct
();
sessionStruct
.
setSid
(
token
);
sessionStruct
.
setValues
(
values
);
threadSession
.
set
(
sessionStruct
);
threadSession
.
set
(
sessionStruct
);
return
sessionStruct
;
}
catch
(
Exception
ex
)
{
LOGGER
.
error
(
"序列化session出错"
,
ex
);
return
null
;
}
}
return
sessionStruct
;
}
}
public
static
SessionStruct
getXSessionFromRedis
(){
public
static
SessionStruct
getXSessionFromRedis
(){
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
HttpServletRequest
request
=
((
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
()).
getRequest
();
String
token
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
String
token
=
request
.
getHeader
(
Constants
.
X_AUTH_TOKEN
);
if
(
token
==
null
||
token
.
length
()
!=
36
)
{
return
getXSessionFromRedis
(
token
);
return
null
;
}
String
result
=
redisTemplate
.
opsForValue
().
get
(
Constants
.
Session
.
USER_SESSION_CACHE
+
token
);
if
(
StringUtils
.
isEmpty
(
result
))
{
return
null
;
}
try
{
SessionValue
values
=
JSON
.
parseObject
(
result
,
SessionValue
.
class
);
if
(
values
==
null
)
{
return
null
;
}
SessionStruct
sessionStruct
=
new
SessionStruct
();
sessionStruct
.
setSid
(
token
);
sessionStruct
.
setValues
(
values
);
return
sessionStruct
;
}
catch
(
Exception
ex
){
LOGGER
.
error
(
"序列化session出错"
,
ex
);
return
null
;
}
}
}
public
static
SessionStruct
getXSessionFromRedis
(
String
token
){
public
static
SessionStruct
getXSessionFromRedis
(
String
token
){
if
(
token
==
null
||
token
.
length
()
!=
36
)
{
if
(
Objects
.
isNull
(
token
)
||
token
.
length
()
!=
36
||
Objects
.
isNull
(
redisTemplate
)
)
{
return
null
;
return
null
;
}
}
String
result
=
redisTemplate
.
opsForValue
().
get
(
Constants
.
Session
.
USER_SESSION_CACHE
+
token
);
String
result
=
redisTemplate
.
opsForValue
().
get
(
Constants
.
Session
.
USER_SESSION_CACHE
+
token
);
...
...
src/main/resources/logback-dev.xml
0 → 100644
View file @
fa65cadb
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<springProperty
name=
"spring.application.name"
source=
"spring.application.name"
/>
<property
name=
"LOG_LEVEL_PATTERN"
value=
"%clr(%5p) %clr([${spring.application.name:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]){yellow}"
/>
<property
name=
"CONSOLE_LOG_PATTERN"
value=
"${CONSOLE_LOG_PATTERN:-%clr(%d{MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%10.10t]){faint} [%40.40file:%4.4line] %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"
/>
<!-- 这里面定义了 CONSOLE_LOG_PATTERN, FILE_LOG_PATTERN 等日志格式, 还定义了一些日志级别 -->
<include
resource=
"org/springframework/boot/logging/logback/defaults.xml"
/>
<include
resource=
"org/springframework/boot/logging/logback/console-appender.xml"
/>
<logger
name=
"cn.quantgroup"
level=
"DEBUG"
/>
<logger
name=
"org.springframework"
level=
"INFO"
/>
<!--<logger name="java.sql.Connection" level="DEBUG"/>-->
<!--<logger name="java.sql.Statement" level="DEBUG"/>-->
<!--<logger name="java.sql.PreparedStatement" level="DEBUG"/>-->
<logger
name=
"org.hibernate"
level=
"warn"
/>
<logger
name=
"org.apache"
level=
"warn"
/>
<logger
name=
"ch.qos.logback"
level=
"warn"
/>
<root
level=
"INFO"
>
<appender-ref
ref=
"CONSOLE"
/>
</root>
</configuration>
\ No newline at end of file
src/main/resources/logback-pro.xml
0 → 100644
View file @
fa65cadb
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<springProperty
name=
"spring.application.name"
source=
"spring.application.name"
/>
<property
name=
"LOG_LEVEL_PATTERN"
value=
"%5p [${spring.application.name:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]"
/>
<property
name=
"FILE_LOG_PATTERN"
value=
"${FILE_LOG_PATTERN:-%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} --- [%thread] [%file:%line] %logger - %msg%n}"
/>
<appender
name=
"FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
/home/quant_group/logs/${spring.application.name:-application}.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
/home/quant_group/logs/${spring.application.name:-application}.log.%d{yyyy-MM-dd}
</fileNamePattern>
<maxHistory>
30
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
${FILE_LOG_PATTERN}
</pattern>
</encoder>
</appender>
<logger
name=
"org.springframework"
level=
"warn"
/>
<logger
name=
"org.hibernate"
level=
"warn"
/>
<logger
name=
"org.apache"
level=
"warn"
/>
<logger
name=
"ch.qos.logback"
level=
"warn"
/>
<root
level=
"info"
>
<appender-ref
ref=
"FILE"
/>
</root>
</configuration>
\ No newline at end of file
src/test/java/demo/BaseParametersTests.java
0 → 100644
View file @
fa65cadb
package
demo
;
import
org.junit.Before
;
import
org.springframework.test.context.TestContextManager
;
/**
* @author renwc
* @date 2018-01-05
*/
public
abstract
class
BaseParametersTests
{
private
TestContextManager
testContextManager
;
@Before
public
void
setUpContext
()
throws
Exception
{
//this is where the magic happens, we actually do "by hand" what the spring runner would do for us,
// read the JavaDoc for the class bellow to know exactly what it does, the method names are quite accurate though
this
.
testContextManager
=
new
TestContextManager
(
getClass
());
this
.
testContextManager
.
prepareTestInstance
(
this
);
}
}
src/test/java/demo/MockMvcTests.java
View file @
fa65cadb
...
@@ -7,14 +7,11 @@ import cn.quantgroup.xyqb.controller.internal.user.UserController;
...
@@ -7,14 +7,11 @@ import cn.quantgroup.xyqb.controller.internal.user.UserController;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
cn.quantgroup.xyqb.service.user.IUserService
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
jdk.nashorn.internal.runtime.regexp.joni.Config
;
import
org.json.JSONObject
;
import
org.json.JSONObject
;
import
org.junit.Assert
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
;
import
org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
;
import
org.springframework.boot.test.context.ConfigFileApplicationContextInitializer
;
import
org.springframework.boot.test.mock.mockito.MockBean
;
import
org.springframework.boot.test.mock.mockito.MockBean
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
...
@@ -23,6 +20,8 @@ import org.springframework.test.web.servlet.MockMvc;
...
@@ -23,6 +20,8 @@ import org.springframework.test.web.servlet.MockMvc;
import
org.springframework.test.web.servlet.MvcResult
;
import
org.springframework.test.web.servlet.MvcResult
;
import
org.springframework.test.web.servlet.request.MockMvcRequestBuilders
;
import
org.springframework.test.web.servlet.request.MockMvcRequestBuilders
;
import
javax.annotation.Resource
;
import
static
org
.
mockito
.
BDDMockito
.
given
;
import
static
org
.
mockito
.
BDDMockito
.
given
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
get
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
get
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
content
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
content
;
...
@@ -33,7 +32,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
...
@@ -33,7 +32,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@WebMvcTest
({
UserController
.
class
})
@WebMvcTest
({
UserController
.
class
})
@ContextConfiguration
(
classes
=
{
JpaConfig
.
class
,
RedisConfig
.
class
},
initializers
=
ApolloPropertySourceInitializer
.
class
)
@ContextConfiguration
(
classes
=
{
JpaConfig
.
class
,
RedisConfig
.
class
},
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
MockMvcTests
{
public
class
MockMvcTests
{
@
Autowired
@
Resource
private
MockMvc
mvc
;
private
MockMvc
mvc
;
@MockBean
@MockBean
private
IUserService
userService
;
private
IUserService
userService
;
...
...
src/test/java/demo/MvcTests.java
View file @
fa65cadb
...
@@ -9,27 +9,26 @@ import org.junit.Assert;
...
@@ -9,27 +9,26 @@ import org.junit.Assert;
import
org.junit.Before
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.web.WebAppConfiguration
;
import
org.springframework.test.web.servlet.MockMvc
;
import
org.springframework.test.web.servlet.MockMvc
;
import
org.springframework.test.web.servlet.MvcResult
;
import
org.springframework.test.web.servlet.MvcResult
;
import
org.springframework.test.web.servlet.request.MockMvcRequestBuilders
;
import
org.springframework.test.web.servlet.request.MockMvcRequestBuilders
;
import
org.springframework.test.web.servlet.setup.MockMvcBuilders
;
import
org.springframework.test.web.servlet.setup.MockMvcBuilders
;
import
org.springframework.web.context.WebApplicationContext
;
import
org.springframework.web.context.WebApplicationContext
;
import
javax.annotation.Resource
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
@RunWith
(
SpringRunner
.
class
)
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
Bootstrap
.
class
)
@SpringBootTest
(
classes
=
Bootstrap
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
@WebAppConfiguration
public
class
MvcTests
{
public
class
MvcTests
{
private
MockMvc
mvc
;
private
MockMvc
mvc
;
@
Autowired
@
Resource
WebApplicationContext
webApplicationConnect
;
WebApplicationContext
webApplicationConnect
;
@Before
@Before
...
...
src/test/java/demo/ParametersJunit5Tests.java
View file @
fa65cadb
...
@@ -30,7 +30,6 @@ public class ParametersJunit5Tests {
...
@@ -30,7 +30,6 @@ public class ParametersJunit5Tests {
System
.
out
.
println
(
"Not Ready to Run"
);
System
.
out
.
println
(
"Not Ready to Run"
);
}
}
@Ignore
(
"Not Ready to Run"
)
@DisplayName
(
"My 1st JUnit 5 test! 😎"
)
@DisplayName
(
"My 1st JUnit 5 test! 😎"
)
@org
.
junit
.
jupiter
.
api
.
Test
@org
.
junit
.
jupiter
.
api
.
Test
public
void
myFirstTest
(
TestInfo
testInfo
)
{
public
void
myFirstTest
(
TestInfo
testInfo
)
{
...
...
src/test/java/demo/RepsitoryJpaTests.java
View file @
fa65cadb
package
demo
;
package
demo
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.config.data.JpaConfig
;
import
cn.quantgroup.xyqb.config.data.JpaConfig
;
import
cn.quantgroup.xyqb.config.data.RedisConfig
;
import
cn.quantgroup.xyqb.config.data.RedisConfig
;
import
cn.quantgroup.xyqb.entity.User
;
import
cn.quantgroup.xyqb.entity.User
;
...
@@ -9,16 +8,15 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
...
@@ -9,16 +8,15 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
import
org.junit.Assert
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase
;
import
org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.persistence.PersistenceException
;
import
javax.persistence.PersistenceException
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.time.Instant
;
import
java.time.Instant
;
...
@@ -36,9 +34,9 @@ import java.time.Instant;
...
@@ -36,9 +34,9 @@ import java.time.Instant;
@AutoConfigureTestDatabase
(
replace
=
AutoConfigureTestDatabase
.
Replace
.
NONE
)
@AutoConfigureTestDatabase
(
replace
=
AutoConfigureTestDatabase
.
Replace
.
NONE
)
public
class
RepsitoryJpaTests
{
public
class
RepsitoryJpaTests
{
@
Autowired
@
Resource
private
TestEntityManager
entityManager
;
private
TestEntityManager
entityManager
;
@
Autowired
@
Resource
private
IUserRepository
userRepository
;
private
IUserRepository
userRepository
;
@Test
(
expected
=
PersistenceException
.
class
)
@Test
(
expected
=
PersistenceException
.
class
)
...
...
src/test/java/demo/RepsitoryTests.java
View file @
fa65cadb
...
@@ -7,14 +7,13 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
...
@@ -7,14 +7,13 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
import
org.junit.Assert
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.
persistence.PersistenceException
;
import
javax.
annotation.Resource
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.time.Instant
;
import
java.time.Instant
;
...
@@ -31,7 +30,7 @@ import java.time.Instant;
...
@@ -31,7 +30,7 @@ import java.time.Instant;
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
RepsitoryTests
{
public
class
RepsitoryTests
{
@
Autowired
@
Resource
private
IUserRepository
userRepository
;
private
IUserRepository
userRepository
;
@Test
@Test
...
...
src/test/java/demo/ServiceTests.java
View file @
fa65cadb
...
@@ -7,14 +7,13 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
...
@@ -7,14 +7,13 @@ import com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer;
import
org.junit.Assert
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.
persistence.PersistenceException
;
import
javax.
annotation.Resource
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.time.Instant
;
import
java.time.Instant
;
...
@@ -30,7 +29,7 @@ import java.time.Instant;
...
@@ -30,7 +29,7 @@ import java.time.Instant;
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
ServiceTests
{
public
class
ServiceTests
{
@
Autowired
@
Resource
private
IUserService
userService
;
private
IUserService
userService
;
@Test
@Test
...
...
src/test/java/demo/WebTests.java
View file @
fa65cadb
...
@@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -6,7 +6,6 @@ import lombok.extern.slf4j.Slf4j;
import
org.junit.Assert
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest.WebEnvironment
;
import
org.springframework.boot.test.context.SpringBootTest.WebEnvironment
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
...
@@ -15,6 +14,8 @@ import org.springframework.http.ResponseEntity;
...
@@ -15,6 +14,8 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
javax.annotation.Resource
;
/**
/**
* 控制层测试用例
* 控制层测试用例
...
@@ -27,7 +28,7 @@ import org.springframework.test.context.junit4.SpringRunner;
...
@@ -27,7 +28,7 @@ import org.springframework.test.context.junit4.SpringRunner;
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
WebTests
{
public
class
WebTests
{
@
Autowired
@
Resource
private
TestRestTemplate
restTemplate
;
private
TestRestTemplate
restTemplate
;
@Test
@Test
...
@@ -37,8 +38,8 @@ public class WebTests {
...
@@ -37,8 +38,8 @@ public class WebTests {
@Test
@Test
public
void
test
()
{
public
void
test
()
{
ResponseEntity
<
String
>
phil
=
restTemplate
.
getForEntity
(
"/{model}/
list"
,
String
.
class
,
"log
"
);
ResponseEntity
<
String
>
phil
=
restTemplate
.
getForEntity
(
"/{model}/
test"
,
String
.
class
,
"user
"
);
Assert
.
assertEquals
(
phil
.
getStatusCode
(),
HttpStatus
.
OK
);
Assert
.
assertEquals
(
HttpStatus
.
OK
,
phil
.
getStatusCode
()
);
}
}
}
}
...
...
src/test/java/login/TestUserLogin.java
View file @
fa65cadb
...
@@ -19,12 +19,12 @@ import org.apache.http.message.BasicNameValuePair;
...
@@ -19,12 +19,12 @@ import org.apache.http.message.BasicNameValuePair;
import
org.apache.http.util.EntityUtils
;
import
org.apache.http.util.EntityUtils
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.mock.web.MockHttpServletRequest
;
import
org.springframework.mock.web.MockHttpServletRequest
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
...
@@ -39,10 +39,10 @@ public class TestUserLogin {
...
@@ -39,10 +39,10 @@ public class TestUserLogin {
private
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();;
private
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();;
@
Autowired
@
Resource
private
UserController
userController
;
private
UserController
userController
;
@
Autowired
@
Resource
private
InnerController
innerController
;
private
InnerController
innerController
;
@Test
@Test
...
...
src/test/java/repsitory/UserAuthorizedRepsitoryTests.java
0 → 100644
View file @
fa65cadb
package
repsitory
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.entity.UserAuthorized
;
import
cn.quantgroup.xyqb.model.AuthPattern
;
import
cn.quantgroup.xyqb.repository.IUserAuthorizedRepository
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
demo.BaseParametersTests
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Parameterized
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.data.domain.Example
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.Arrays
;
import
java.util.Collection
;
/**
* 业务层测试用例
* @author renwc
* @date 2018-01-05
*/
@Slf4j
@Rollback
@Transactional
@RunWith
(
value
=
Parameterized
.
class
)
@SpringBootTest
(
classes
=
Bootstrap
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
UserAuthorizedRepsitoryTests
extends
BaseParametersTests
{
@Resource
private
IUserAuthorizedRepository
userAuthorizedRepository
;
UserAuthorized
obj
=
new
UserAuthorized
();
public
UserAuthorizedRepsitoryTests
(
String
userUuid
,
String
idNo
,
String
name
,
AuthPattern
authPattern
,
Boolean
available
)
{
obj
.
setUserUuid
(
userUuid
);
obj
.
setIdNo
(
idNo
);
obj
.
setName
(
name
);
obj
.
setAuthPattern
(
authPattern
);
obj
.
setAvailable
(
available
);
}
@Parameterized
.
Parameters
public
static
Collection
<
Object
[]>
data
()
{
Object
[][]
data
=
new
Object
[][]{
{
1L
,
"350504198805144101"
,
"史书一"
,
AuthPattern
.
ZMXY
,
true
},
{
10L
,
"350504198805144102"
,
"史书二"
,
AuthPattern
.
ZMXY
,
true
},
{
20L
,
"350504198805144103"
,
"史书三"
,
AuthPattern
.
FOUR_ELEMENTS_OF_BANK_CARD
,
true
},
{
1L
,
"IDNO-1"
,
"王-1"
,
AuthPattern
.
ZMXY
,
true
}
};
return
Arrays
.
asList
(
data
);
}
@Test
public
void
testExist
()
throws
Exception
{
log
.
info
(
"testExist: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserUuid
(),
obj
.
getAuthPattern
());
UserAuthorized
obj
=
new
UserAuthorized
();
boolean
exist
=
userAuthorizedRepository
.
exists
(
Example
.
of
(
obj
));
Assert
.
assertNotNull
(
obj
);
}
@Test
public
void
testSave
()
throws
Exception
{
log
.
info
(
"testSave: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserUuid
(),
obj
.
getAuthPattern
());
UserAuthorized
obj
=
new
UserAuthorized
();
obj
=
userAuthorizedRepository
.
save
(
obj
);
Assert
.
assertNotNull
(
obj
);
}
@Test
public
void
testQuery
(){
log
.
info
(
"testQuery: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserUuid
(),
obj
.
getAuthPattern
());
UserAuthorized
obj
=
userAuthorizedRepository
.
findByIdNo
(
this
.
obj
.
getIdNo
());
Assert
.
assertNotNull
(
obj
);
}
}
src/test/java/service/TestUserService.java
View file @
fa65cadb
...
@@ -4,7 +4,6 @@ import cn.quantgroup.xyqb.Bootstrap;
...
@@ -4,7 +4,6 @@ import cn.quantgroup.xyqb.Bootstrap;
import
cn.quantgroup.xyqb.entity.Address
;
import
cn.quantgroup.xyqb.entity.Address
;
import
cn.quantgroup.xyqb.service.user.IAddressService
;
import
cn.quantgroup.xyqb.service.user.IAddressService
;
import
cn.quantgroup.xyqb.service.user.IContactService
;
import
cn.quantgroup.xyqb.service.user.IContactService
;
import
com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -12,14 +11,13 @@ import org.junit.Before;
...
@@ -12,14 +11,13 @@ import org.junit.Before;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Parameterized
;
import
org.junit.runners.Parameterized
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.TestContextManager
;
import
org.springframework.test.context.TestContextManager
;
import
org.springframework.test.context.web.WebAppConfiguration
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.sql.Timestamp
;
import
java.sql.Timestamp
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.Arrays
;
...
@@ -39,9 +37,9 @@ public class TestUserService {
...
@@ -39,9 +37,9 @@ public class TestUserService {
private
TestContextManager
testContextManager
;
private
TestContextManager
testContextManager
;
@
Autowired
@
Resource
private
IAddressService
addressService
;
private
IAddressService
addressService
;
@
Autowired
@
Resource
private
IContactService
contactService
;
private
IContactService
contactService
;
private
Address
addressObj
;
private
Address
addressObj
;
...
...
src/test/java/service/UserAuthorizedServiceTests.java
0 → 100644
View file @
fa65cadb
package
service
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.model.AuthPattern
;
import
cn.quantgroup.xyqb.model.UserAuthorizedParam
;
import
cn.quantgroup.xyqb.service.auth.IUserAuthorizedService
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
demo.BaseParametersTests
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Parameterized
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.Optional
;
/**
* 业务层测试用例
* @author renwc
* @date 2018-01-05
*/
@Slf4j
@Rollback
@Transactional
@RunWith
(
value
=
Parameterized
.
class
)
@SpringBootTest
(
classes
=
Bootstrap
.
class
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
UserAuthorizedServiceTests
extends
BaseParametersTests
{
@Resource
private
IUserAuthorizedService
userAuthorizedService
;
UserAuthorizedParam
obj
=
new
UserAuthorizedParam
();
public
UserAuthorizedServiceTests
(
String
userUuid
,
String
idNo
,
String
name
,
AuthPattern
authPattern
,
Boolean
available
)
{
obj
.
setUserUuid
(
userUuid
);
obj
.
setIdNo
(
idNo
);
obj
.
setName
(
name
);
obj
.
setAuthPattern
(
Optional
.
ofNullable
(
authPattern
).
orElse
(
AuthPattern
.
ZMXY
).
name
());
}
@Parameterized
.
Parameters
public
static
Collection
<
Object
[]>
data
()
{
Object
[][]
data
=
new
Object
[][]{
{
1L
,
"350504198805144101"
,
"史书一"
,
AuthPattern
.
ZMXY
,
true
},
{
10L
,
"350504198805144102"
,
"史书二"
,
AuthPattern
.
ZMXY
,
true
},
{
20L
,
"350504198805144103"
,
"史书三"
,
AuthPattern
.
FOUR_ELEMENTS_OF_BANK_CARD
,
true
},
{
1L
,
"IDNO-1"
,
"王-1"
,
AuthPattern
.
ZMXY
,
true
}
};
return
Arrays
.
asList
(
data
);
}
@Test
public
void
testExist
()
throws
Exception
{
log
.
info
(
"testExist: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserUuid
(),
obj
.
getAuthPattern
());
Object
obj
=
userAuthorizedService
.
hasUserAuthorized
(
this
.
obj
.
getIdNo
());
Assert
.
assertNotNull
(
obj
);
}
@Test
public
void
testSave
()
throws
Exception
{
log
.
info
(
"testSave: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserUuid
(),
obj
.
getAuthPattern
());
Object
obj
=
userAuthorizedService
.
createUserAuthorized
(
this
.
obj
);
Assert
.
assertNotNull
(
obj
);
}
@Test
public
void
testQuery
(){
log
.
info
(
"testQuery: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserUuid
(),
obj
.
getAuthPattern
());
Object
obj
=
userAuthorizedService
.
getUserAuthorizedId
(
this
.
obj
.
getUserUuid
());
Assert
.
assertNotNull
(
obj
);
}
}
src/test/java/web/UserAuthorizedControllerTests.java
0 → 100644
View file @
fa65cadb
package
web
;
import
cn.quantgroup.xyqb.Bootstrap
;
import
cn.quantgroup.xyqb.model.AuthPattern
;
import
cn.quantgroup.xyqb.model.UserAuthorizedParam
;
import
com.ctrip.framework.apollo.spring.config.ApolloPropertySourceInitializer
;
import
demo.BaseParametersTests
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.ContextConfiguration
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.Optional
;
/**
* 业务层测试用例
* @author renwc
* @date 2018-01-05
*/
@Slf4j
@Rollback
@Transactional
@RunWith
(
value
=
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
Bootstrap
.
class
,
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
RANDOM_PORT
)
@ContextConfiguration
(
initializers
=
ApolloPropertySourceInitializer
.
class
)
public
class
UserAuthorizedControllerTests
extends
BaseParametersTests
{
@Resource
private
TestRestTemplate
restTemplate
;
private
UserAuthorizedParam
obj
=
new
UserAuthorizedParam
();
{
Long
userId
=
1L
;
String
idNo
=
"350504198805144101"
;
String
name
=
"史书一"
;
AuthPattern
authPattern
=
AuthPattern
.
ZMXY
;
Boolean
available
=
true
;
obj
.
setUserId
(
userId
);
obj
.
setIdNo
(
idNo
);
obj
.
setName
(
name
);
obj
.
setAuthPattern
(
Optional
.
ofNullable
(
authPattern
).
orElse
(
AuthPattern
.
ZMXY
).
name
());
}
@Test
public
void
testExist
()
throws
Exception
{
ResponseEntity
<
String
>
phil
=
restTemplate
.
getForEntity
(
"/user/auth/{model}?idNo={idNo}"
,
String
.
class
,
"hasUserAuthorized"
,
obj
.
getIdNo
());
log
.
info
(
"testExist: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserId
(),
obj
.
getAuthPattern
());
Assert
.
assertEquals
(
phil
.
getStatusCode
(),
HttpStatus
.
OK
);
}
@Test
public
void
testSave
()
throws
Exception
{
ResponseEntity
<
String
>
phil
=
restTemplate
.
postForEntity
(
"/user/auth/{model}"
,
this
.
obj
,
String
.
class
,
"createUserAuthorized"
);
log
.
info
(
"testSave: name:{}, idNo:{}, userId:{}, authPattern:{}"
,
obj
.
getName
(),
obj
.
getIdNo
(),
obj
.
getUserId
(),
obj
.
getAuthPattern
());
Assert
.
assertEquals
(
phil
.
getStatusCode
(),
HttpStatus
.
OK
);
}
@Test
public
void
testQuery
(){
ResponseEntity
<
String
>
phil
=
restTemplate
.
getForEntity
(
"/user/auth/{model}?userId={userId}"
,
String
.
class
,
"getUserAuthorizedId"
,
obj
.
getUserId
());
Assert
.
assertEquals
(
phil
.
getStatusCode
(),
HttpStatus
.
OK
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment