Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xm-sportstest
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xiamai-test
xm-sportstest
Commits
292db45b
Commit
292db45b
authored
Jul 27, 2024
by
xuyamei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改报错
parent
c1cfdb04
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
325 additions
and
32 deletions
+325
-32
src/main/java/com/xiaomai/cases/polar/course/CourseTools.java
+44
-0
src/main/java/com/xiaomai/cases/polar/memberCard/CardTools.java
+1
-1
src/main/java/com/xiaomai/cases/polar/reserve/ReserveTools.java
+80
-3
src/main/java/com/xiaomai/cases/polar/reserve/group/TestAddMemberReserve.java
+41
-10
src/main/java/com/xiaomai/cases/polar/reserve/group/TestAddToQueue.java
+32
-8
src/main/java/com/xiaomai/cases/polar/reserve/group/TestSignIn.java
+23
-9
src/main/java/com/xiaomai/cases/polar/reserve/personal/TestGetPersonalTimeBlocks.java
+103
-1
src/main/java/com/xiaomai/cases/polar/schedule/group/GroupScheduleTools.java
+1
-0
No files found.
src/main/java/com/xiaomai/cases/polar/course/CourseTools.java
View file @
292db45b
...
@@ -409,5 +409,49 @@ public class CourseTools extends XMBaseTest {
...
@@ -409,5 +409,49 @@ public class CourseTools extends XMBaseTest {
}
}
/**
* @description: 编辑私教课程
* @author: xuyamei
* @date: 2024/7/26 11:57
* @param categoryId 课程类型
* @param courseId 课程id
* @param courseName 课程名称
* @param duration 时长
* @param coachId 教练
* @param capacity 容量
* @param dataUserInfo
* @return: void
**/
public
void
editPersonalCourse
(
String
categoryId
,
String
courseId
,
String
courseName
,
int
duration
,
String
coachId
,
String
capacity
,
DataUserInfo
...
dataUserInfo
){
dataApi
.
setApiModule
(
ApiModule
.
Polar_Course
)
.
setApiName
(
"API_editPersonalCourse"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfo
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"categoryId"
,
categoryId
);
body
.
put
(
"courseName"
,
courseName
);
body
.
put
(
"duration"
,
duration
);
// 时长
body
.
put
(
"difficulty"
,
3
);
// 难度
body
.
put
(
"color"
,
"#AACF53"
);
body
.
put
(
"coverId"
,
"0"
);
body
.
put
(
"timeUnit"
,
"MINUTE"
);
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"sourceId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
// 来源:场馆、品牌
body
.
put
(
"sourceType"
,
"STUDIO"
);
// 来源类型:场馆、品牌
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
// 品牌
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"sizeType"
,
"ONE_TO_MANY"
);
// 私教模式
body
.
put
(
"allArea"
,
false
);
// 场地
JSONArray
coachIds
=
new
JSONArray
();
coachIds
.
add
(
coachId
);
body
.
put
(
"coachIds"
,
coachIds
);
body
.
put
(
"capacity"
,
capacity
);
// 课容量
body
.
put
(
"minCapacity"
,
1
);
// 开课人数
body
.
put
(
"brandCourseId"
,
courseId
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
}
}
}
src/main/java/com/xiaomai/cases/polar/memberCard/CardTools.java
View file @
292db45b
...
@@ -296,7 +296,7 @@ public class CardTools extends XMBaseTest {
...
@@ -296,7 +296,7 @@ public class CardTools extends XMBaseTest {
/**
/**
* @param courseId:课程id
* @param courseId:课程id
* @param courseType:课程类型 GROUP_CLASS
* @param courseType:课程类型 GROUP_CLASS
* @param accountType:账户类型 MEMBER
* @param accountType:账户类型 MEMBER
:EXPERIENCE
* @param memberId 会员id
* @param memberId 会员id
* @param reserveDate:约课时间
* @param reserveDate:约课时间
* @param dataUserInfos
* @param dataUserInfos
...
...
src/main/java/com/xiaomai/cases/polar/reserve/ReserveTools.java
View file @
292db45b
...
@@ -8,6 +8,7 @@ import com.xiaomai.enums.RequestType;
...
@@ -8,6 +8,7 @@ import com.xiaomai.enums.RequestType;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMBaseTest
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
/**
/**
...
@@ -79,6 +80,58 @@ public class ReserveTools extends XMBaseTest {
...
@@ -79,6 +80,58 @@ public class ReserveTools extends XMBaseTest {
}
}
/**
/**
* @description: 预约私教课
* @author: xuyamei
* @date: 2024/7/26 17:34
* @param areaId 场地id
* @param courseId 课程id
* @param chiefCoachId 教练id
* @param memberId 会员id
* @param benefitId 权益id
* @param spanMinutes 上课时长
* @param reserveMemberNum 预约人数
* @param scheduleId 课次id
* @param scheduleStartTime 上课开始时间
* @param success
* @param dataUserInfos
* @return: java.lang.String
**/
public
String
addPersonalReserve
(
String
areaId
,
String
courseId
,
String
chiefCoachId
,
String
memberId
,
String
benefitId
,
int
spanMinutes
,
int
reserveMemberNum
,
String
scheduleId
,
long
scheduleStartTime
,
boolean
success
,
DataUserInfo
...
dataUserInfos
)
{
dataApi
.
setApiModule
(
ApiModule
.
Polar_Reserve
)
.
setApiName
(
"API_addPersonalReserve"
)
.
setTerminal
(
Terminal
.
B
);
super
.
beforeDataRequest
(
dataUserInfos
);
JSONObject
body
=
new
JSONObject
();
JSONArray
areaIds
=
new
JSONArray
();
// 场地,私教约课会用到
if
(!
areaId
.
equals
(
""
)){
areaIds
.
add
(
areaId
);
}
body
.
put
(
"courseId"
,
courseId
);
body
.
put
(
"benefitId"
,
benefitId
);
//会员卡权益Id
body
.
put
(
"chiefCoachId"
,
chiefCoachId
);
// 主教id
body
.
put
(
"memberId"
,
memberId
);
// 会员id
body
.
put
(
"planCheckBalance"
,
1
);
// 计划扣除额度
body
.
put
(
"reserveMemberNum"
,
reserveMemberNum
);
// 预约人数
body
.
put
(
"spanMinutes"
,
spanMinutes
);
// 上课时长
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
// 操作人id
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
if
(!
scheduleId
.
equals
(
""
)){
body
.
put
(
"scheduleId"
,
scheduleId
);
// 课次id
}
body
.
put
(
"scheduleStartTime"
,
scheduleStartTime
);
// 课次id
body
.
put
(
"memo"
,
"自动化添加预约备注"
+
TimeUtils
.
getCurrentTime
());
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
success
);
if
(
success
){
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getString
(
"reserveId"
);
}
return
dataApi
.
getBodyInJSON
().
toString
();
}
/**
* @description:获取会员预约记录列表
* @description:获取会员预约记录列表
* @author: xuyamei
* @author: xuyamei
* @date: 2024/6/12 15:26
* @date: 2024/6/12 15:26
...
@@ -565,8 +618,32 @@ public class ReserveTools extends XMBaseTest {
...
@@ -565,8 +618,32 @@ public class ReserveTools extends XMBaseTest {
}
}
/**
* @param startDate
* @param endDate
* @description:查询私教课表
* @author: xuyamei
* @date: 2024/6/23 17:46
* @return: com.alibaba.fastjson.JSONArray
**/
public
JSONArray
getPersonalScheduleTable
(
Long
startDate
,
Long
endDate
,
String
courseId
)
{
setUp
(
"API_getPersonalScheduleTable"
);
JSONObject
body
=
new
JSONObject
();
body
.
put
(
"operatorId"
,
dataApi
.
getLoginInfo
().
getAdminId
());
body
.
put
(
"studioId"
,
dataApi
.
getLoginInfo
().
getStudioId
());
body
.
put
(
"brandId"
,
dataApi
.
getLoginInfo
().
getBrandId
());
if
(
courseId
.
equals
(
""
)){
body
.
put
(
"courseId"
,
courseId
);
}
body
.
put
(
"startDate"
,
startDate
);
body
.
put
(
"endDate"
,
endDate
);
dataApi
.
doRequest
(
RequestType
.
JSON
,
dataparams
,
body
.
toString
(),
dataheadrs
).
assetsSuccess
(
true
);
if
(
Integer
.
valueOf
(
XMJSONPath
.
readPath
(
dataApi
.
getApi_response
(),
"$.result.totalCount"
))
>
0
)
{
return
dataApi
.
getBodyInJSON
().
getJSONObject
(
"result"
).
getJSONArray
(
"timetableGroups"
).
getJSONObject
(
0
).
getJSONArray
(
"timetableList"
);
}
else
{
return
null
;
}
}
}
}
src/main/java/com/xiaomai/cases/polar/reserve/group/TestAddMemberReserve.java
View file @
292db45b
...
@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.reserve.group;
...
@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.reserve.group;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.clue.MemberTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.member.Tools
;
import
com.xiaomai.cases.polar.member.Tools
;
...
@@ -15,11 +16,13 @@ import com.xiaomai.enums.ApiModule;
...
@@ -15,11 +16,13 @@ import com.xiaomai.enums.ApiModule;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMJSONPath
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.core.annotation.Order
;
import
org.testng.Assert
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
org.testng.annotations.Test
;
...
@@ -51,6 +54,9 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -51,6 +54,9 @@ public class TestAddMemberReserve extends BaseTestImpl {
@Resource
(
name
=
"ruleTools"
)
@Resource
(
name
=
"ruleTools"
)
RuleTools
ruleTools
;
RuleTools
ruleTools
;
MemberTools
memberTools
=
new
MemberTools
();
OrderTools
orderTools
=
new
OrderTools
();
OrderTools
orderTools
=
new
OrderTools
();
CardTools
cardTools
=
new
CardTools
();
CardTools
cardTools
=
new
CardTools
();
...
@@ -69,7 +75,9 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -69,7 +75,9 @@ public class TestAddMemberReserve extends BaseTestImpl {
private
String
courseId
;
private
String
courseId
;
private
String
reserveId
;
private
String
reserveId
;
@BeforeClass
private
String
memberCardId
;
@BeforeMethod
@Override
@Override
public
void
beforeTest
(){
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_addReserve"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_addReserve"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
...
@@ -86,22 +94,23 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -86,22 +94,23 @@ public class TestAddMemberReserve extends BaseTestImpl {
int
[]
minuteOffset
=
{
60
,
120
,
180
,
240
,
300
,
360
,
420
,
480
,
540
,
600
,
660
,
720
,
780
,
840
,
900
,
960
,
1020
,
1080
,
1140
,
1200
,
1260
};
int
[]
minuteOffset
=
{
60
,
120
,
180
,
240
,
300
,
360
,
420
,
480
,
540
,
600
,
660
,
720
,
780
,
840
,
900
,
960
,
1020
,
1080
,
1140
,
1200
,
1260
};
Random
random
=
new
Random
();
Random
random
=
new
Random
();
//1.1-创建排课日程
//1.1-创建排课日程
groupScheduleTools
.
createGroupRuleSchedule
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
fals
e
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)]);
groupScheduleTools
.
createGroupRuleSchedule
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
tru
e
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)]);
//1.2-查询排课日程
//1.2-查询排课日程
JSONArray
getGroupRuleScheduleList
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
JSONArray
getGroupRuleScheduleList
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
//统计查询到的目标日程数量
//统计查询到的目标日程数量
ruldId
=
XMJSONPath
.
readPath
(
getGroupRuleScheduleList
.
getJSONObject
(
0
),
"$.ruleId"
);
ruldId
=
XMJSONPath
.
readPath
(
getGroupRuleScheduleList
.
getJSONObject
(
0
),
"$.ruleId"
);
System
.
out
.
println
(
"----------ruldId---------"
+
ruldId
);
Long
scheduleStartTime
=
TimeUtils
.
getTodayTime
();
Long
scheduleStartTime
=
TimeUtils
.
getTodayTime
();
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
();
Long
scheduleEndTime
=
TimeUtils
.
getTodayEndTime
();
try
{
try
{
Thread
.
sleep
(
25
00
);
Thread
.
sleep
(
30
00
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
// 查询课次id
// 查询课次id
JSONArray
getGroupScheduleTable
=
groupScheduleTools
.
getGroupScheduleTable
(
scheduleStartTime
,
scheduleEndTime
,
courseId
);
JSONArray
getGroupScheduleTable
=
groupScheduleTools
.
getGroupScheduleTable
(
scheduleStartTime
,
scheduleEndTime
,
courseId
);
for
(
int
i
=
0
;
i
<
getGroupScheduleTable
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
getGroupScheduleTable
.
size
();
i
++){
if
(
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
if
(
getGroupScheduleTable
.
getJSONObject
(
i
).
containsKey
(
"ruleId"
)
&&
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
scheduleId
=
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
scheduleId
=
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
break
;
break
;
}
}
...
@@ -112,13 +121,18 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -112,13 +121,18 @@ public class TestAddMemberReserve extends BaseTestImpl {
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
// 查询存量的学员没有则创建学员
,// todo 先手动新建
// 查询存量的学员没有则创建学员
if
(
tools
.
commonSearch
(
"约课学员sandy"
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
if
(
tools
.
commonSearch
(
"约课学员sandy"
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
"约课学员sandy"
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
"约课学员sandy"
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
"约课学员sandy"
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
}
else
if
(
tools
.
commonSearch
(
"约课学员sandy"
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
"约课学员sandy"
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
"约课学员sandy"
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
"约课学员sandy"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
"约课学员sandy"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
memberId
=
memberTools
.
create
(
"约课学员sandy"
,
RandomStringUtil
.
randomMobile
(
"203"
)).
getString
(
"result"
);
}
}
// 查询是否有可用的会员卡,没有则购买
// 查询是否有可用的会员卡,没有则购买
JSONArray
listUserReservableBenefit
=
cardTools
.
listUserReservableBenefit
(
courseId
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
TimeUtils
.
getTodayTime
());
JSONArray
listUserReservableBenefit
=
cardTools
.
listUserReservableBenefit
(
courseId
,
"GROUP_CLASS"
,
"MEMBER"
,
memberId
,
TimeUtils
.
getTodayTime
());
if
(
listUserReservableBenefit
.
size
()
==
0
)
{
if
(
listUserReservableBenefit
.
size
()
==
0
)
{
...
@@ -133,6 +147,7 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -133,6 +147,7 @@ public class TestAddMemberReserve extends BaseTestImpl {
}
}
// 查询权益
// 查询权益
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
memberCardId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"memberCardId"
);
// 查询课次详情 查课次的开始时间
// 查询课次详情 查课次的开始时间
JSONObject
getScheduleItemDetail
=
groupScheduleTools
.
getScheduleItemDetail
(
scheduleId
);
JSONObject
getScheduleItemDetail
=
groupScheduleTools
.
getScheduleItemDetail
(
scheduleId
);
...
@@ -191,11 +206,18 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -191,11 +206,18 @@ public class TestAddMemberReserve extends BaseTestImpl {
}
}
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberId
,
"查询的约课数据不是同一个会员"
);
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberId
,
"查询的约课数据不是同一个会员"
);
// check 4: 会员卡消耗记录中包含该记录锁定
// check 3: 会员卡消耗记录中包含该记录锁定
JSONArray
consumeRecord
=
cardTools
.
fetchPageOfConsumeRecord
(
benefitId
,
memberCardId
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
String
[]
result2
=
{
"resourceId"
,
"consumeType"
,
"changeOfUsablePurchaseBalance"
};
String
[]
respect
=
{
reserveId
,
"RESERVE"
,
"-1.00"
};
String
[]
message
=
{
"会员卡消耗记录中记录的资源id与实际约课记录id不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录类型不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录余额不符合"
};
for
(
int
i
=
0
;
i
<
result2
.
length
;
i
++){
Assert
.
assertEquals
(
consumeRecord
.
getJSONObject
(
0
).
getString
(
result2
[
i
]),
respect
[
i
],
message
[
i
]);
}
}
}
// todo 补充修改会员卡有效期然后继续预约
@Test
(
priority
=
1
,
description
=
"学员已经在课次中,无需重复添加"
)
@Test
(
priority
=
1
,
description
=
"学员已经在课次中,无需重复添加"
)
public
void
testAddMemberReserve2
(){
public
void
testAddMemberReserve2
(){
...
@@ -217,13 +239,15 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -217,13 +239,15 @@ public class TestAddMemberReserve extends BaseTestImpl {
// 新学员 购买卡
// 新学员 购买卡
String
memberId2
=
""
;
String
memberId2
=
""
;
// 查询存量的学员没有则创建学员
,// todo 先手动新建
// 查询存量的学员没有则创建学员
if
(
tools
.
commonSearch
(
"约课学员susan"
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
if
(
tools
.
commonSearch
(
"约课学员susan"
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId2
=
tools
.
commonSearch
(
"约课学员susan"
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId2
=
tools
.
commonSearch
(
"约课学员susan"
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
"约课学员susan"
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
}
else
if
(
tools
.
commonSearch
(
"约课学员susan"
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId2
=
tools
.
commonSearch
(
"约课学员susan"
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId2
=
tools
.
commonSearch
(
"约课学员susan"
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
}
else
if
(
tools
.
commonSearch
(
"约课学员susan"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
size
()>
0
)
{
memberId2
=
tools
.
commonSearch
(
"约课学员susan"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId2
=
tools
.
commonSearch
(
"约课学员susan"
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
memberId2
=
memberTools
.
create
(
"约课学员susan"
,
RandomStringUtil
.
randomMobile
(
"203"
)).
getString
(
"result"
);
}
}
// 查询是否有可用的会员卡,没有则购买
// 查询是否有可用的会员卡,没有则购买
...
@@ -294,7 +318,14 @@ public class TestAddMemberReserve extends BaseTestImpl {
...
@@ -294,7 +318,14 @@ public class TestAddMemberReserve extends BaseTestImpl {
}
}
Assert
.
assertTrue
(
success
,
"取消约课后在约课记录查询取消状态没有查询到相关信息"
);
Assert
.
assertTrue
(
success
,
"取消约课后在约课记录查询取消状态没有查询到相关信息"
);
// todo 查询会员卡取消后释放锁定次数
// check 3: 会员卡消耗记录中包含该记录锁定的次数释放
JSONArray
consumeRecord
=
cardTools
.
fetchPageOfConsumeRecord
(
benefitId
,
memberCardId
).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
String
[]
result2
=
new
String
[]
{
"resourceId"
,
"consumeType"
,
"changeOfUsablePurchaseBalance"
};
String
[]
respect
=
new
String
[]
{
reserveId
,
"CANCEL_RESERVE"
,
"1.00"
};
String
[]
message1
=
new
String
[]
{
"会员卡消耗记录中记录的资源id与实际约课记录id不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录类型不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录余额不符合"
};
for
(
int
i
=
0
;
i
<
consumeRecord
.
size
();
i
++){
Assert
.
assertEquals
(
consumeRecord
.
getJSONObject
(
0
).
getString
(
result2
[
i
]),
respect
[
i
],
message1
[
i
]);
}
}
}
}
}
...
...
src/main/java/com/xiaomai/cases/polar/reserve/group/TestAddToQueue.java
View file @
292db45b
...
@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.reserve.group;
...
@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.reserve.group;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.clue.MemberTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.member.Tools
;
import
com.xiaomai.cases.polar.member.Tools
;
...
@@ -15,10 +16,12 @@ import com.xiaomai.enums.ApiModule;
...
@@ -15,10 +16,12 @@ import com.xiaomai.enums.ApiModule;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMJSONPath
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
org.testng.annotations.Test
;
...
@@ -49,6 +52,8 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -49,6 +52,8 @@ public class TestAddToQueue extends BaseTestImpl {
@Resource
(
name
=
"ruleTools"
)
@Resource
(
name
=
"ruleTools"
)
RuleTools
ruleTools
;
RuleTools
ruleTools
;
MemberTools
memberTools
=
new
MemberTools
();
OrderTools
orderTools
=
new
OrderTools
();
OrderTools
orderTools
=
new
OrderTools
();
CardTools
cardTools
=
new
CardTools
();
CardTools
cardTools
=
new
CardTools
();
...
@@ -69,7 +74,7 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -69,7 +74,7 @@ public class TestAddToQueue extends BaseTestImpl {
private
Long
startTime
;
private
Long
startTime
;
private
String
courseId
;
private
String
courseId
;
@Before
Class
@Before
Method
@Override
@Override
public
void
beforeTest
(){
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_addReserve"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_addReserve"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
...
@@ -125,7 +130,14 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -125,7 +130,14 @@ public class TestAddToQueue extends BaseTestImpl {
// check 1: 预约记录、会员详情预约记录、预约详情数据check
// check 1: 预约记录、会员详情预约记录、预约详情数据check
checkReserve
(
memberId2
.
getString
(
0
),
reserveId
,
"QUEUE_PROCESS"
,
memberId2
.
getString
(
1
),
"排队"
);
checkReserve
(
memberId2
.
getString
(
0
),
reserveId
,
"QUEUE_PROCESS"
,
memberId2
.
getString
(
1
),
"排队"
);
// todo check 4: 会员卡消耗记录中包含该记录锁定
// check 2: 会员卡消耗记录中包含该记录锁定
JSONArray
consumeRecord
=
cardTools
.
fetchPageOfConsumeRecord
(
memberId2
.
getString
(
1
),
memberId2
.
getString
(
2
)).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
String
[]
result2
=
{
"resourceId"
,
"consumeType"
,
"changeOfUsablePurchaseBalance"
};
String
[]
respect
=
{
reserveId
,
"RESERVE"
,
"-1.00"
};
String
[]
message
=
{
"会员卡消耗记录中记录的资源id与实际约课记录id不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录类型不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录余额不符合"
};
for
(
int
i
=
0
;
i
<
result2
.
length
;
i
++){
Assert
.
assertEquals
(
consumeRecord
.
getJSONObject
(
0
).
getString
(
result2
[
i
]),
respect
[
i
],
message
[
i
]);
}
}
}
...
@@ -173,14 +185,22 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -173,14 +185,22 @@ public class TestAddToQueue extends BaseTestImpl {
Assert
.
assertEquals
(
getDetailById
.
getString
(
"queueSort"
),
"2"
,
"排队后排队名次应该是第二位"
);
Assert
.
assertEquals
(
getDetailById
.
getString
(
"queueSort"
),
"2"
,
"排队后排队名次应该是第二位"
);
// 操作2:将第一位"排队学员Amy"的排队取消
// 操作2:将第一位"排队学员Amy"的排队取消
reserveTools
.
cancelMemberReserve
(
memberId2
.
getString
(
2
),
true
);
reserveTools
.
cancelMemberReserve
(
memberId2
.
getString
(
3
),
true
);
try
{
try
{
Thread
.
sleep
(
2500
);
Thread
.
sleep
(
2500
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
// check 2.1: 排队学员Amy 排队记录已取消
// check 2.1: 排队学员Amy 排队记录已取消
checkReserve
(
memberId2
.
getString
(
0
),
memberId2
.
getString
(
2
),
"QUEUE_CANCEL"
,
memberId2
.
getString
(
1
),
"排队"
);
checkReserve
(
memberId2
.
getString
(
0
),
memberId2
.
getString
(
3
),
"QUEUE_CANCEL"
,
memberId2
.
getString
(
1
),
"排队"
);
// check 2.2 排队学员Amy 会员卡消耗记录中包含该记录释放
JSONArray
consumeRecord
=
cardTools
.
fetchPageOfConsumeRecord
(
memberId2
.
getString
(
1
),
memberId2
.
getString
(
2
)).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
String
[]
result2
=
new
String
[]
{
"resourceId"
,
"consumeType"
,
"changeOfUsablePurchaseBalance"
};
String
[]
respect
=
new
String
[]
{
reserveId
,
"CANCEL_QUEUE"
,
"1.00"
};
String
[]
message
=
new
String
[]
{
"会员卡消耗记录中记录的资源id与实际约课记录id不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录类型不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录余额不符合"
};
for
(
int
i
=
0
;
i
<
result2
.
length
;
i
++){
Assert
.
assertEquals
(
consumeRecord
.
getJSONObject
(
0
).
getString
(
result2
[
i
]),
respect
[
i
],
message
[
i
]);
}
//check 2.2 排队学员yaya 排在第一位
//check 2.2 排队学员yaya 排在第一位
getDetailById
=
reserveTools
.
getDetailById
(
reserveId
);
getDetailById
=
reserveTools
.
getDetailById
(
reserveId
);
...
@@ -265,7 +285,7 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -265,7 +285,7 @@ public class TestAddToQueue extends BaseTestImpl {
int
[]
minuteOffset
=
{
60
,
120
,
180
,
240
,
300
,
360
,
420
,
480
,
540
,
600
,
660
,
720
,
780
,
840
,
900
,
960
,
1020
,
1080
,
1140
,
1200
,
1260
};
int
[]
minuteOffset
=
{
60
,
120
,
180
,
240
,
300
,
360
,
420
,
480
,
540
,
600
,
660
,
720
,
780
,
840
,
900
,
960
,
1020
,
1080
,
1140
,
1200
,
1260
};
Random
random
=
new
Random
();
Random
random
=
new
Random
();
//1.1-创建排课日程
//1.1-创建排课日程
groupScheduleTools
.
createGroupRuleSchedule
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
fals
e
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)]);
groupScheduleTools
.
createGroupRuleSchedule
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
(),
todayStartTimeTamp
,
todayEndDateTimeTamp
,
new
ArrayList
(),
new
ArrayList
(),
tru
e
,
1
,
minuteOffset
[
random
.
nextInt
(
20
)]);
//1.2-查询排课日程
//1.2-查询排课日程
JSONArray
getGroupRuleScheduleList
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
JSONArray
getGroupRuleScheduleList
=
groupScheduleTools
.
getGroupRuleScheduleList
(
courseId
,
xmAppApi
.
getLoginInfo
().
getAdminId
());
//统计查询到的目标日程数量
//统计查询到的目标日程数量
...
@@ -279,7 +299,7 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -279,7 +299,7 @@ public class TestAddToQueue extends BaseTestImpl {
// 查询课次id
// 查询课次id
JSONArray
getGroupScheduleTable
=
groupScheduleTools
.
getGroupScheduleTable
(
Long
.
valueOf
(
todayStartTimeTamp
),
scheduleEndTime
,
courseId
);
JSONArray
getGroupScheduleTable
=
groupScheduleTools
.
getGroupScheduleTable
(
Long
.
valueOf
(
todayStartTimeTamp
),
scheduleEndTime
,
courseId
);
for
(
int
i
=
0
;
i
<
getGroupScheduleTable
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
getGroupScheduleTable
.
size
();
i
++){
if
(
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
if
(
getGroupScheduleTable
.
getJSONObject
(
i
).
containsKey
(
"ruleId"
)
&&
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
scheduleId
=
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
scheduleId
=
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
break
;
break
;
}
}
...
@@ -295,13 +315,15 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -295,13 +315,15 @@ public class TestAddToQueue extends BaseTestImpl {
**/
**/
public
JSONArray
createMember
(
String
memberName
){
public
JSONArray
createMember
(
String
memberName
){
String
memberId
=
""
;
String
memberId
=
""
;
// 查询存量的学员没有则创建学员
,// todo 先手动新建
// 查询存量的学员没有则创建学员
if
(
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
if
(
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
}
else
if
(
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
}
else
if
(
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
size
()>
0
)
{
memberId
=
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
memberId
=
memberTools
.
create
(
memberName
,
RandomStringUtil
.
randomMobile
(
"203"
)).
getString
(
"result"
);
}
}
// 查询是否有可用的会员卡,没有则购买
// 查询是否有可用的会员卡,没有则购买
...
@@ -318,10 +340,12 @@ public class TestAddToQueue extends BaseTestImpl {
...
@@ -318,10 +340,12 @@ public class TestAddToQueue extends BaseTestImpl {
}
}
// 查询权益
// 查询权益
String
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
String
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
String
memberCardId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"memberCardId"
);
JSONArray
members
=
new
JSONArray
();
JSONArray
members
=
new
JSONArray
();
members
.
add
(
memberId
);
members
.
add
(
memberId
);
members
.
add
(
benefitId
);
members
.
add
(
benefitId
);
members
.
add
(
memberCardId
);
return
members
;
return
members
;
}
}
...
...
src/main/java/com/xiaomai/cases/polar/reserve/group/TestSignIn.java
View file @
292db45b
...
@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.reserve.group;
...
@@ -3,6 +3,7 @@ package com.xiaomai.cases.polar.reserve.group;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.clue.MemberTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.finance.order.OrderTools
;
import
com.xiaomai.cases.polar.member.Tools
;
import
com.xiaomai.cases.polar.member.Tools
;
...
@@ -14,10 +15,12 @@ import com.xiaomai.enums.ApiModule;
...
@@ -14,10 +15,12 @@ import com.xiaomai.enums.ApiModule;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.CommUtil
;
import
com.xiaomai.utils.RandomStringUtil
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.TimeUtils
;
import
com.xiaomai.utils.XMJSONPath
;
import
com.xiaomai.utils.XMJSONPath
;
import
org.testng.Assert
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.BeforeClass
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.DataProvider
;
import
org.testng.annotations.Test
;
import
org.testng.annotations.Test
;
...
@@ -47,6 +50,7 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -47,6 +50,7 @@ public class TestSignIn extends BaseTestImpl {
@Resource
(
name
=
"groupScheduleTools"
)
@Resource
(
name
=
"groupScheduleTools"
)
GroupScheduleTools
groupScheduleTools
;
GroupScheduleTools
groupScheduleTools
;
MemberTools
memberTools
=
new
MemberTools
();
OrderTools
orderTools
=
new
OrderTools
();
OrderTools
orderTools
=
new
OrderTools
();
CardTools
cardTools
=
new
CardTools
();
CardTools
cardTools
=
new
CardTools
();
...
@@ -66,7 +70,7 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -66,7 +70,7 @@ public class TestSignIn extends BaseTestImpl {
private
String
courseId
;
private
String
courseId
;
@Before
Class
@Before
Method
@Override
@Override
public
void
beforeTest
(){
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_signIn"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_signIn"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
...
@@ -96,7 +100,7 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -96,7 +100,7 @@ public class TestSignIn extends BaseTestImpl {
throw
new
RuntimeException
(
e
);
throw
new
RuntimeException
(
e
);
}
}
// 操作签到
// 操作签到
reserveTools
.
signIn
(
true
,
memberInfo
.
getString
(
2
),
false
);
reserveTools
.
signIn
(
true
,
memberInfo
.
getString
(
3
),
false
);
try
{
try
{
Thread
.
sleep
(
2000
);
Thread
.
sleep
(
2000
);
}
catch
(
InterruptedException
e
)
{
}
catch
(
InterruptedException
e
)
{
...
@@ -150,8 +154,14 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -150,8 +154,14 @@ public class TestSignIn extends BaseTestImpl {
}
}
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的约课数据不是同一个会员"
);
Assert
.
assertEquals
(
getDetailById
.
getString
(
"memberId"
),
memberInfo
.
getString
(
0
),
"查询的约课数据不是同一个会员"
);
// check 4: 会员卡消耗记录中包含该记录锁定
// check 3: 会员卡消耗记录中包含该记录签到消耗
JSONArray
consumeRecord
=
cardTools
.
fetchPageOfConsumeRecord
(
memberInfo
.
getString
(
1
),
memberInfo
.
getString
(
2
)).
getJSONObject
(
"result"
).
getJSONArray
(
"records"
);
String
[]
result2
=
new
String
[]
{
"resourceId"
,
"consumeType"
,
"changeOfPurchaseBalance"
};
String
[]
respect
=
new
String
[]
{
reserveId
,
"SIGN_IN"
,
"-1.00"
};
String
[]
message
=
new
String
[]
{
"会员卡消耗记录中记录的资源id与实际约课记录id不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录类型不符合"
,
"会员卡消耗记录中记录的资源id与实际约课记录余额不符合"
};
for
(
int
i
=
0
;
i
<
result2
.
length
;
i
++){
Assert
.
assertEquals
(
consumeRecord
.
getJSONObject
(
0
).
getString
(
result2
[
i
]),
respect
[
i
],
message
[
i
]);
}
}
}
@DataProvider
(
name
=
"dataProvider"
)
@DataProvider
(
name
=
"dataProvider"
)
...
@@ -165,11 +175,11 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -165,11 +175,11 @@ public class TestSignIn extends BaseTestImpl {
@Test
(
description
=
"签到"
,
priority
=
1
,
dataProvider
=
"dataProvider"
)
@Test
(
description
=
"签到"
,
priority
=
1
,
dataProvider
=
"dataProvider"
)
public
void
testSignIn2
(
String
type
,
String
message
)
{
public
void
testSignIn2
(
String
type
,
String
message
)
{
if
(
type
.
equals
(
"signIn"
)){
if
(
type
.
equals
(
"signIn"
)){
reserveTools
.
signIn
(
false
,
memberInfo
.
getString
(
2
),
false
);
reserveTools
.
signIn
(
false
,
memberInfo
.
getString
(
3
),
false
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
JSONObject
response
=
dataApi
.
getBodyInJSON
();
Assert
.
assertEquals
(
response
.
getString
(
"message"
),
message
,
"已经操作签到,又操作签到提示错误"
);
Assert
.
assertEquals
(
response
.
getString
(
"message"
),
message
,
"已经操作签到,又操作签到提示错误"
);
}
else
{
}
else
{
reserveTools
.
cancelMemberReserve
(
memberInfo
.
getString
(
2
),
false
);
reserveTools
.
cancelMemberReserve
(
memberInfo
.
getString
(
3
),
false
);
JSONObject
response
=
dataApi
.
getBodyInJSON
();
JSONObject
response
=
dataApi
.
getBodyInJSON
();
Assert
.
assertEquals
(
response
.
getString
(
"message"
),
message
,
"已经操作签到,又操作取消提示错误"
);
Assert
.
assertEquals
(
response
.
getString
(
"message"
),
message
,
"已经操作签到,又操作取消提示错误"
);
}
}
...
@@ -257,7 +267,7 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -257,7 +267,7 @@ public class TestSignIn extends BaseTestImpl {
// 查询课次id
// 查询课次id
JSONArray
getGroupScheduleTable
=
groupScheduleTools
.
getGroupScheduleTable
(
Long
.
valueOf
(
todayStartTimeTamp
),
scheduleEndTime
,
courseId
);
JSONArray
getGroupScheduleTable
=
groupScheduleTools
.
getGroupScheduleTable
(
Long
.
valueOf
(
todayStartTimeTamp
),
scheduleEndTime
,
courseId
);
for
(
int
i
=
0
;
i
<
getGroupScheduleTable
.
size
();
i
++){
for
(
int
i
=
0
;
i
<
getGroupScheduleTable
.
size
();
i
++){
if
(
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
if
(
getGroupScheduleTable
.
getJSONObject
(
i
).
containsKey
(
"ruleId"
)
&&
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"ruleId"
).
equals
(
ruldId
)){
scheduleId
=
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
scheduleId
=
getGroupScheduleTable
.
getJSONObject
(
i
).
getString
(
"scheduleId"
);
break
;
break
;
}
}
...
@@ -273,13 +283,15 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -273,13 +283,15 @@ public class TestSignIn extends BaseTestImpl {
**/
**/
public
JSONArray
createMember
(
String
memberName
){
public
JSONArray
createMember
(
String
memberName
){
String
memberId
=
""
;
String
memberId
=
""
;
// 查询存量的学员没有则创建学员,
// todo 先手动新建
// 查询存量的学员没有则创建学员,
if
(
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
if
(
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
memberName
,
"NORMAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
if
(
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
}
else
if
(
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
size
()>
0
){
memberId
=
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
memberName
,
"HISTORY"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
}
else
if
(
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
size
()>
0
)
{
memberId
=
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
memberId
=
tools
.
commonSearch
(
memberName
,
"POTENTIAL"
).
getJSONArray
(
"result"
).
getJSONObject
(
0
).
getString
(
"id"
);
}
else
{
memberId
=
memberTools
.
create
(
memberName
,
RandomStringUtil
.
randomMobile
(
"203"
)).
getString
(
"result"
);
}
}
// 查询是否有可用的会员卡,没有则购买
// 查询是否有可用的会员卡,没有则购买
...
@@ -296,10 +308,12 @@ public class TestSignIn extends BaseTestImpl {
...
@@ -296,10 +308,12 @@ public class TestSignIn extends BaseTestImpl {
}
}
// 查询权益
// 查询权益
String
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
String
benefitId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"benefitId"
);
String
memberCardId
=
listUserReservableBenefit
.
getJSONObject
(
0
).
getString
(
"memberCardId"
);
JSONArray
members
=
new
JSONArray
();
JSONArray
members
=
new
JSONArray
();
members
.
add
(
memberId
);
members
.
add
(
memberId
);
members
.
add
(
benefitId
);
members
.
add
(
benefitId
);
members
.
add
(
memberCardId
);
return
members
;
return
members
;
}
}
...
...
src/main/java/com/xiaomai/cases/polar/reserve/personal/TestGetPersonalTimeBlocks.java
View file @
292db45b
package
com
.
xiaomai
.
cases
.
polar
.
reserve
.
personal
;
package
com
.
xiaomai
.
cases
.
polar
.
reserve
.
personal
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.basetest.BaseTestImpl
;
import
com.xiaomai.cases.polar.course.CourseTools
;
import
com.xiaomai.cases.polar.reserve.ReserveTools
;
import
com.xiaomai.cases.polar.reserve.ReserveTools
;
import
com.xiaomai.cases.polar.setting.courseCategory.CourseCategoryTools
;
import
com.xiaomai.enums.ApiModule
;
import
com.xiaomai.enums.LoginAccount
;
import
com.xiaomai.enums.Terminal
;
import
com.xiaomai.utils.TimeUtils
;
import
org.testng.Assert
;
import
org.testng.annotations.BeforeMethod
;
import
org.testng.annotations.Test
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.Random
;
/**
/**
* @BelongsProject: xm-sportstest
* @BelongsProject: xm-sportstest
...
@@ -17,9 +29,99 @@ public class TestGetPersonalTimeBlocks extends BaseTestImpl {
...
@@ -17,9 +29,99 @@ public class TestGetPersonalTimeBlocks extends BaseTestImpl {
@Resource
(
name
=
"reserveTools"
)
@Resource
(
name
=
"reserveTools"
)
ReserveTools
reserveTools
;
ReserveTools
reserveTools
;
@Resource
(
name
=
"courseTools"
)
CourseTools
courseTools
;
@Resource
(
name
=
"courseCategoryTools"
)
CourseCategoryTools
courseCategoryTools
;
@BeforeMethod
@Override
public
void
beforeTest
(){
setTestInfo
(
ApiModule
.
Polar_Reserve
,
"API_getPersonalTimeBlocks"
,
LoginAccount
.
GYM_PROD
,
Terminal
.
B
,
"xym"
);
super
.
beforeTest
();
}
private
String
coachedId
;
private
String
courseId
;
@Test
public
void
TestGetPersonalTimeBlocks
()
{
public
void
TestGetPersonalTimeBlocks
()
{
// 获取到员工
// 获取到员工
// 获取到
// 获取教练列表
JSONObject
pageStudioPersonalCoach
=
reserveTools
.
pageStudioPersonalCoach
(
""
);
int
total
=
pageStudioPersonalCoach
.
getInteger
(
"total"
);
Random
rand
=
new
Random
();
// 随机取1个教练
coachedId
=
pageStudioPersonalCoach
.
getJSONArray
(
"records"
).
getJSONObject
(
rand
.
nextInt
(
total
>
10
?
10
:
total
)).
getString
(
"id"
);
// 获取到相关私教课程
// 获取课程分类
String
categoryId
=
courseCategoryTools
.
getCourseCategoryPage
(
"私教课分类"
+
TimeUtils
.
getCurrentTime
());
courseId
=
courseTools
.
getPersonalOrGroupCourseId
(
"PERSONAL"
,
"普拉提器械课程"
,
categoryId
,
"STUDIO"
,
"ONE_TO_ONE"
,
1
,
1
).
getString
(
0
);
String
courseName
=
courseTools
.
getPersonalOrGroupCourseId
(
"PERSONAL"
,
"普拉提器械课程"
,
categoryId
,
"STUDIO"
,
"ONE_TO_ONE"
,
1
,
1
).
getString
(
1
);
// 编辑私教课程教练添加到课程中
courseTools
.
editPersonalCourse
(
categoryId
,
courseId
,
courseName
,
1
,
coachedId
,
"1"
);
// 创建私教特殊可约时间
JSONObject
specialTimeInfoRequest
=
new
JSONObject
();
// 可约时间类型
specialTimeInfoRequest
.
put
(
"dutyType"
,
"ON_DUTY"
);
// 设置特定日期
JSONArray
selectedDates
=
new
JSONArray
();
selectedDates
.
add
(
TimeUtils
.
getTodayTime
());
specialTimeInfoRequest
.
put
(
"selectedDates"
,
selectedDates
);
// 如果是可约时间非全天休息,则传可约时间段
// 时间段 00:00 ~ 23:59
JSONArray
timePeriodInfos
=
new
JSONArray
();
JSONObject
timeInfo
=
new
JSONObject
();
timeInfo
.
put
(
"minuteOffset"
,
0
);
timeInfo
.
put
(
"spanMinutes"
,
1380
);
timePeriodInfos
.
add
(
timeInfo
);
specialTimeInfoRequest
.
put
(
"timePeriodInfos"
,
timePeriodInfos
);
// 设置特殊可约时间
reserveTools
.
createSpecialDate
(
coachedId
,
"ON_DUTY"
,
specialTimeInfoRequest
);
// 检查可约时间块
JSONArray
personalTimeBlocks
=
reserveTools
.
getPersonalTimeBlocks
(
coachedId
,
courseId
,
TimeUtils
.
getTodayTime
());
Assert
.
assertTrue
(
personalTimeBlocks
.
size
()>
0
,
"设置老师今天时间可约,但是返回的结果是空的"
);
}
}
@Test
(
priority
=
1
)
public
void
TestGetPersonalTimeBlocks_OFF
()
{
// 创建私教特殊可约时间为休息
JSONObject
specialTimeInfoRequest
=
new
JSONObject
();
// 可约时间类型
specialTimeInfoRequest
.
put
(
"dutyType"
,
"OFF_DUTY"
);
// 设置特定日期
JSONArray
selectedDates
=
new
JSONArray
();
selectedDates
.
add
(
TimeUtils
.
getTodayTime
());
specialTimeInfoRequest
.
put
(
"selectedDates"
,
selectedDates
);
// 设置特殊可约时间
reserveTools
.
createSpecialDate
(
coachedId
,
"OFF_DUTY"
,
specialTimeInfoRequest
);
// 检查可约时间块
JSONArray
personalTimeBlocks
=
reserveTools
.
getPersonalTimeBlocks
(
coachedId
,
courseId
,
TimeUtils
.
getTodayTime
());
Assert
.
assertTrue
(
personalTimeBlocks
.
size
()==
0
,
"设置老师今天时间休息,但是返回了数据"
);
}
@Test
(
priority
=
2
)
public
void
del
(){
// 查询特殊可约时间列表
JSONArray
specialTimeVOS
=
reserveTools
.
getPersonalCoachTime
(
coachedId
,
"specialTimeVOS"
);
for
(
int
i
=
0
;
i
<
specialTimeVOS
.
size
();
i
++){
String
id
=
specialTimeVOS
.
getJSONObject
(
i
).
getJSONArray
(
"recordIds"
).
getString
(
0
);
// 删除查询到的特殊可约时间
reserveTools
.
deleteSpecialDate
(
id
);
}
}
}
}
src/main/java/com/xiaomai/cases/polar/schedule/group/GroupScheduleTools.java
View file @
292db45b
...
@@ -360,6 +360,7 @@ public class GroupScheduleTools extends XMBaseTest {
...
@@ -360,6 +360,7 @@ public class GroupScheduleTools extends XMBaseTest {
}
}
/**
/**
* 选择匹配到对应规则ID的课次
* 选择匹配到对应规则ID的课次
* @param n
* @param n
...
...
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