Commit 765f7e34 by yangfangfang

Merge remote-tracking branch 'origin/master'

parents 2fa49087 4755d7a7
package com.xiaomai.cases.lunar.minMemberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component;
@Component("minCardTools")
public class MinCardTools extends XMBaseTest {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Lunar_Card)
.setApiName(apiName)
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfo);
}
/**
* @param
* @description:小程序查看在售会员卡
* @author: yangjian
**/
public JSONObject fetchOnSaleMemberCard(String title,DataUserInfo...userInfo) {
setUP("API_fetchOnSaleMemberCard", userInfo);
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("title",title);//卡名称
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @param
* @description:小程序查看在售体验卡/储值卡
* @author: xyy
**/
public JSONObject fetchOnSaleMemberCard(String title,String commodityCardType,DataUserInfo...userInfo) {
setUP("API_fetchOnSaleMemberCard", userInfo);
JSONObject jsonObject = new JSONObject();
//jsonObject.put("memberCardIds","");
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("title",title);//卡名称
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("commodityCardType",commodityCardType);//枚举:"EXPERIENCE_CARD","DEPOSIT_CARD"
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @param
* @description:小程序卡包数量
* @author: xyy
**/
public int countMyUsableCard(String memberId, DataUserInfo...userInfo) {
setUP("API_countMyUsableCard", userInfo);
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberId",memberId);
jsonObject.put("usable",true);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return Integer.parseInt(dataApi.getBodyInJSON().getString("result"));
}
/**
* @param
* @description:小程序我的会员卡/体验卡/储值卡
* @author: xyy
**/
public JSONObject getMyMemberCardList(Boolean usable,String memberId,String accountType,DataUserInfo...userInfo) {
setUP("API_listMyMemberCard", userInfo);
JSONObject jsonObject = new JSONObject();
jsonObject.put("usable",usable);//可用卡true、失效卡false
jsonObject.put("memberId",memberId);
jsonObject.put("accountType",accountType);//卡类型:会员卡"MEMBER"、储值卡"DEPOSIT"、体验卡"EXPERIENCE"
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 购买会员卡/体验卡时可使用的储值卡
* @param memberId
* @param paymentScenario
* @param userInfo
* @return
*/
public JSONObject listUserUsableDepositCard(String memberId,String paymentScenario,DataUserInfo...userInfo) {
setUP("API_listUserUsableDepositCard", userInfo);
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberId",memberId);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("paymentScenario",paymentScenario);//卡类型:会员卡"PURCHASE_MEMBER_CARD"、体验卡"PURCHASE_EXPERIENCE_CARD"
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序查看储值卡消耗记录
* @param userInfo
* @return
*/
public JSONObject fetchPageOfConsumeRecord(String memberCardId,String benefitId,DataUserInfo...userInfo) {
setUP("API_fetchPageOfConsumeRecord", userInfo);
JSONObject jsonObject = new JSONObject();
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("benefitId",benefitId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 小程序查看储值卡详情
* @param userInfo
* @return
*/
public JSONObject findMemberCardDetailById(String memberCardId,DataUserInfo...userInfo) {
setUP("API_findMemberCardDetailById", userInfo);
JSONObject jsonObject = new JSONObject();
jsonObject.put("id",memberCardId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
package com.xiaomai.cases.lunar.minmembercard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
public class MinCardTools extends XMBaseTest {
/**
* @param
* @description:小程序查看在售会员卡
* @author: yangjian
**/
public JSONObject fetchOnSaleMemberCard(String title, DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Lunar_Card)
.setApiName("API_fetchOnSaleMemberCard")
.setTerminal(Terminal.minApp);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
//jsonObject.put("memberCardIds","");
jsonObject.put("current",0);
jsonObject.put("size",20);
jsonObject.put("title",title);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
}
......@@ -7,9 +7,10 @@ import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
@Component("orderCTools")
public class OrderCTools extends XMBaseTest {
/**
......
......@@ -3,7 +3,7 @@ package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.minmembercard.MinCardTools;
import com.xiaomai.cases.lunar.minMemberCard.MinCardTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.client.DataUserInfo;
......
package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.minMemberCard.MinCardTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestPurchaseByDeposit extends BaseTestImpl {
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "minCardTools")
MinCardTools minCardTools;
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "orderCTools")
OrderCTools orderCTools;
@Resource(name = "orderTools")
OrderTools orderTools;
DataUserInfo info = new DataUserInfo();
public JSONObject jsonObject;
public String depositCardId;
public String voucherId;
@BeforeMethod
@Override
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Order,"API_purchaseCard", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"xyy");
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER_CARD","PURCHASE_MEMBER_CARD"},//会员卡
{"EXPERIENCE_CARD","PURCHASE_EXPERIENCE_CARD"}//体验卡
};
}
@Test(description = "C端下单时使用储值卡抵扣",dataProvider = "dataProvider")
public void testPurchaseMemberCardByDeposit(String commodityCardType,String paymentScenario)throws InterruptedException{
//获取会员信息
String memberId = userTools.getMemberInfo().getString("memberId");
Thread.sleep(1000);
//获取第1张售卖中的卡
if(commodityCardType=="MEMBER_CARD"){
jsonObject = minCardTools.fetchOnSaleMemberCard("次卡-自动化");
}else{
jsonObject = minCardTools.fetchOnSaleMemberCard("自动化脚本创建体验卡",commodityCardType);
}
Thread.sleep(1000);
//查询卡id跟价格
String memberCardId = XMJSONPath.readPath(jsonObject,"$.result.records[0].id");
String cardSnapshotId = XMJSONPath.readPath(orderCTools.findTenantCardDetailById(memberCardId,memberId),"$.result.latestSnapshotId");
String price = XMJSONPath.readPath(orderCTools.findTenantCardDetailById(memberCardId,memberId),"$.result.price");
//查询是否有可使用的储值卡,如果没有创建1张
int num = XMJSONPath.getJSONArrayByReadPath(minCardTools.listUserUsableDepositCard(memberId,paymentScenario), "$.result.applicableList").size();
if (num>1){
for(int i=0; i<num-1; i++) {
String leftBalance = XMJSONPath.readPath(minCardTools.listUserUsableDepositCard(memberId, paymentScenario), "$.result.applicableList[" + i + "].depositBenefit.leftBalance");
//遍历储值卡的可用余额是否大于等于会员卡的价格
if (Double.parseDouble(leftBalance) >= Double.parseDouble(price)) {
depositCardId = XMJSONPath.readPath(minCardTools.listUserUsableDepositCard(memberId, paymentScenario), "$.result.applicableList[" + i + "].id");
break;
}else{
//切换B端校验
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//查询启用中的储值卡,获取储值卡id
String cardId = XMJSONPath.readPath(cardTools.fetchPageOfMemberCard("DEPOSIT_CARD",info), "$.result.records[0].id");
String latestSnapshotId = XMJSONPath.readPath(cardTools.fetchDetailById(cardId,info), "$.result.latestSnapshotId");
//购买1张储值卡
cardTools.signOrderDeposit(cardId,latestSnapshotId,memberId,"0.00","1000.00",info);
//获取C端第1张可使用的储值卡
depositCardId = XMJSONPath.readPath(minCardTools.listUserUsableDepositCard(memberId, paymentScenario), "$.result.applicableList[0].id");
}
}
//查询要使用的储值卡消耗记录条数
String depositBenefitId = XMJSONPath.readPath(minCardTools.findMemberCardDetailById(depositCardId),"$.result.depositBenefit.id");
int total = Integer.parseInt(XMJSONPath.readPath(minCardTools.fetchPageOfConsumeRecord(depositCardId,depositBenefitId),"$.result.total"));
//构建接口参数
JSONObject jsonObject = new JSONObject();
jsonObject.put("activatePattern","FIRST_USED");
jsonObject.put("cardId",memberCardId);
jsonObject.put("cardSnapshotId",cardSnapshotId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo","自动化使用储值卡抵扣");
jsonObject.put("receivableAmount","0.00");
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("objectId", RandomStringUtil.randomString(16));
jsonObject.put("depositCardId",depositCardId);//储值卡id
jsonObject.put("depositAmount",price);
jsonObject.put("commodityCardType",commodityCardType);
// jsonObject.put("activityId",null);//优惠券id
// jsonObject.put("activityAmount",null);//优惠券抵扣金额
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toString(),headers).assetsSuccess(true);
voucherId = xmAppApi.getBodyInJSON().getJSONObject("result").getString("voucherId");//订单ID
Thread.sleep(3000);
//校验C端订单详情
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(voucherId),"$.result.state"),"PAID","创建签单订单成功,但订单状态不是已完成");
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(voucherId),"$.result.source"),"ONLINE_MALL","C端创建的签单订单,订单来源非会员创建");
//检验储值卡的消耗记录新增1条
JSONObject body = minCardTools.fetchPageOfConsumeRecord(depositCardId,depositBenefitId);
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(body,"$.result.total"))==total+1);
Assert.assertEquals(XMJSONPath.readPath(body,"$.result.records[0].consumeType"),"DEPOSIT_SIGN_ORDER");//消耗类型:签单
Assert.assertEquals(XMJSONPath.readPath(body,"$.result.records[0].changeOfGiveBalance"),"-"+price);//消耗赠送金额
//切换B端校验
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//作废订单
orderTools.discard(voucherId,"其他","自动化作废订单",info);
}
}
}
......@@ -3,7 +3,7 @@ package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.minmembercard.MinCardTools;
import com.xiaomai.cases.lunar.minMemberCard.MinCardTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
......@@ -14,27 +14,27 @@ import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.math.BigDecimal;
public class TestPurchaseCard extends BaseTestImpl {
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "minCardTools")
MinCardTools minCardTools;
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "orderCTools")
OrderCTools orderCTools;
@Resource(name = "orderTools")
OrderTools orderTools;
DataUserInfo dataUserInfo = new DataUserInfo();
String memberId;
String cardId;
MinCardTools minCardTools=new MinCardTools();
UserTools userTools=new UserTools();
OrderCTools orderCTools=new OrderCTools();
OrderTools orderTools=new OrderTools();
CardTools cardTools=new CardTools();
public String memberId;
public String cardId;
@BeforeMethod
@Override
......@@ -46,7 +46,6 @@ public class TestPurchaseCard extends BaseTestImpl {
@Test(description = "C端购买订单")
public void testPurchaseCard(){
//获取会员信息
memberId = userTools.getMemberInfo().getString("memberId");
......@@ -57,7 +56,7 @@ public class TestPurchaseCard extends BaseTestImpl {
}
//获取会员卡
cardId=minCardTools.fetchOnSaleMemberCard("C端0元会员卡自动化").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
cardId = minCardTools.fetchOnSaleMemberCard("C端0元会员卡自动化").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
try {
Thread.sleep(1000);
......@@ -89,7 +88,6 @@ public class TestPurchaseCard extends BaseTestImpl {
//校验C端订单详情
JSONObject getDetail=orderCTools.getDetail(signId);
String getDetailId=getDetail.getJSONObject("result").getString("id");
String getDetailBusinessNo=getDetail.getJSONObject("result").getString("businessNo");
......@@ -103,7 +101,6 @@ public class TestPurchaseCard extends BaseTestImpl {
//校验C端订单列表
JSONObject pageOrder=orderCTools.pageOrder(memberId);
int pageOrderPages=Integer.parseInt(pageOrder.getJSONObject("result").getString("pages"));
int pageOrderTotal=Integer.parseInt(pageOrder.getJSONObject("result").getString("total"));
......@@ -131,8 +128,6 @@ public class TestPurchaseCard extends BaseTestImpl {
}
//切换B端校验
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
......@@ -158,7 +153,6 @@ public class TestPurchaseCard extends BaseTestImpl {
Assert.assertEquals(getDetailBBusinessNo.equals(getDetailBusinessNo),true,"C端创建的签单订单在B端和C端展示的订单号不一致");
Assert.assertEquals(getDetailBSource,"ONLINE_MALL","C端创建的签单订单,B端展示订单来源非会员创建");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
......@@ -172,13 +166,12 @@ public class TestPurchaseCard extends BaseTestImpl {
String fetchUserCardListId=fetchUserCardListResult.getJSONArray("result").getJSONObject(0).getString("id");//权益ID
//获取售卖详情
JSONObject findDetailByIdResult=cardTools.membercardfindDetailById(fetchUserCardListId);
JSONObject findDetailByIdResult=cardTools.memberCardFindDetailById(fetchUserCardListId);
String findDetailByIdState=findDetailByIdResult.getJSONObject("result").getString("state");//卡状态
String findDetailByIdTradeOrderNumber=findDetailByIdResult.getJSONObject("result").getString("tradeOrderNumber");//订单号
Assert.assertEquals(findDetailByIdTradeOrderNumber.equals(getDetailBBusinessNo),true,"创建C端已完成订单,未生成卡包");//断言的别意:生成的卡包的订单号和上述创建订单的订单号一致不一致的校验
Assert.assertEquals(findDetailByIdState,"NORMAL","创建即时生效的已完成订单,未生成生效中卡包");
//B端退C端订单
try {
......@@ -188,13 +181,11 @@ public class TestPurchaseCard extends BaseTestImpl {
}
//查询要退的卡id 从listUserRefundableCard-查询用户可退的会员卡列表中获取
JSONObject listUserRefundableCardResult=orderTools.listUserRefundableCard("MEMBER","",getDetailBmemberId,dataUserInfo);
String listUserRefundableId=listUserRefundableCardResult.getJSONArray("result").getJSONObject(0).getString("id");
//查询订单或者收支可退流水金额(包含乐动收银状态信息)
boolean checkRefundableAmountResult=orderTools.checkRefundableAmount(getDetailBId,0,dataUserInfo).getBoolean("success");
if(checkRefundableAmountResult == true) {
......@@ -210,6 +201,4 @@ public class TestPurchaseCard extends BaseTestImpl {
}
}
package com.xiaomai.cases.lunar.order;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.minMemberCard.MinCardTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestPurchaseDeposit extends XMBaseTest {
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "minCardTools")
MinCardTools minCardTools;
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "orderCTools")
OrderCTools orderCTools;
@Resource(name = "orderTools")
OrderTools orderTools;
DataUserInfo info = new DataUserInfo();
public String memberId;
public String cardId;
public String cardName;
public String voucherId;
public String depositCardId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Order)
.setApiName("API_purchaseDeposit")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "C端购买储值卡")
public void testPurchaseDeposit() throws InterruptedException {
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//搜索0元储值卡
int num = XMJSONPath.getJSONArrayByReadPath(cardTools.tenantMemberCardCommonSearch("DEPOSIT_CARD","0元储值卡",info), "$.result").size();
//如果没有0元储值卡创建1张
if (num==0){
cardTools.depositCardCreate("0元储值卡" + RandomStringUtil.randomString(4),"0.00","100.00",info);
}
//获取会员信息
memberId = userTools.getMemberInfo().getString("memberId");
//查询会员名下的卡包数量
int cardNum = minCardTools.countMyUsableCard(memberId);
//获取1张0元储值卡id
cardId = minCardTools.fetchOnSaleMemberCard("0元储值卡","DEPOSIT_CARD").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
String cardSnapshotId = XMJSONPath.readPath(orderCTools.findTenantCardDetailById(cardId,memberId),"$.result.latestSnapshotId");
cardName = minCardTools.fetchOnSaleMemberCard("0元储值卡","DEPOSIT_CARD").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("title");
//确认订单页
orderCTools.findTenantCardDetailById(cardId,null);
//构建提交订单的参数
JSONObject jsonObject = new JSONObject();
jsonObject.put("activatePattern","PURCHASE");
jsonObject.put("cardId",cardId);
jsonObject.put("cardSnapshotId",cardSnapshotId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo","自动化C端购买储值卡");
jsonObject.put("receivableAmount","0.00");
jsonObject.put("commodityCardType","DEPOSIT_CARD");
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("objectId",RandomStringUtil.randomString(16));
//调用详情
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//获取返回值里的订单id
voucherId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.result");
//check该订单的状态及名称
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(voucherId),"$.result.state"),"PAID");
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(voucherId),"$.result.voucherItems[0].purchaseDepositSkuAttr.skuName"),cardName);
String skuId = XMJSONPath.readPath(orderCTools.getDetail(voucherId),"$.result.voucherItems[0].skuId");
//check我的卡包数据+1
Thread.sleep(1000);
Assert.assertTrue(minCardTools.countMyUsableCard(memberId) == cardNum + 1);
//check我的卡包里有该生效中的卡
Thread.sleep(1000);
JSONObject object = minCardTools.getMyMemberCardList(true,memberId,"DEPOSIT");
depositCardId = XMJSONPath.readPath(object,"$.result[0].id");
Assert.assertEquals(XMJSONPath.readPath(object,"$.result[0].tenantMemberCardId"),skuId);
}
@Test(description = "数据清理",priority = 1)
public void clearData()throws InterruptedException{
info.setTerminal(Terminal.B);
info.setLoginUser(LoginAccount.GYM_PROD);
//作废订单
orderTools.discard(voucherId,"其他","自动化作废订单",info);
Thread.sleep(3000);
//check储值卡状态为已作废
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(depositCardId,info),"$.result.state"),"DISCARD");
//check剩余金额=0
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(depositCardId,info),"$.result.depositBenefit.leftBalance"),"0.00");
//check消耗记录有1条作废订单记录
Thread.sleep(2000);
String benefitId = XMJSONPath.readPath(cardTools.memberCardFindDetailById(depositCardId,info),"$.result.depositBenefit.id");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId,info),"$.result.records[0].consumeType"),"DISCARD_ORDER");
}
}
......@@ -457,10 +457,47 @@ public class ReserveCTools extends XMBaseTest {
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* 获取可预私教老师列表
* @param memberId
* @param startDate
* @param endDate
* @param dataUserInfos
* @return
*/
public JSONObject getEnablePersonalCoachList(String memberId,String startDate,String endDate,DataUserInfo...dataUserInfos){
setUP("API_getEnablePersonalCoachList",dataUserInfos);
JSONObject body = new JSONObject();
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("startDate",startDate);
body.put("endDate",endDate);
body.put("coachId",null);
body.put("courseChooseEnum",null);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 获取私教的可约课程
* @param coachId
* @param dataUserInfos
* @return
*/
public JSONObject getCourseByPage(String coachId,DataUserInfo...dataUserInfos){
setUP("API_getCourseByPage",dataUserInfos);
JSONObject body = new JSONObject();
body.put("current",0);
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
body.put("courseType","PERSONAL");
body.put("size",10);
body.put("coachId",coachId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
......@@ -226,7 +226,7 @@ public class TestAddToQueue extends BaseTestImpl {
groupScheduleTools.editGroupSchedule(scheduleId,startTime,chiefCoachId,1,2,dataUserInfo);
try {
Thread.sleep(3000);
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......
package com.xiaomai.cases.lunar.reserve.personal;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import java.util.ArrayList;
import java.util.List;
public class ResevervePersonalTools extends XMBaseTest {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Lunar_Reserve)
.setApiName(apiName)
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfo);
}
/**
* @description:查询小程序私教课教练
* @author: yj
* @date: 2024/8/14 16:34
* @param memberId
* @param scheduleStartTime
* @param scheduleEndTime
* @param scheduleEndTime
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getEnablePersonalCoachList(String memberId, Long scheduleStartTime,String coachId, Long scheduleEndTime){
setUP("API_getEnablePersonalCoachList");
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("startDate", scheduleStartTime);
jsonObject.put("endDate",scheduleEndTime);
jsonObject.put("courseChooseEnum","ALL");
jsonObject.put("memberId",memberId);//会员ID
jsonObject.put("coachId",coachId);//教练ID
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:小程序-获取教练下的私教课
* @author: yj
* @date: 2024/8/14 16:34
* @param coachId 教练ID
* @param courseType 课程类型
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getCourseByPage(String coachId,String courseType){
setUP("API_getCourseByPage");
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("coachId",coachId);//教练ID
jsonObject.put("courseType",courseType);//课程类型:PERSONAL 私教
jsonObject.put("current",0);
jsonObject.put("size",5);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:小程序-获取私教课的预约规则
* @author: yj
* @date: 2024/8/14 16:34
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject personalBookingRules(){
setUP("API_personalBookingRules");
JSONObject jsonObject = new JSONObject();
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:查看小程序预约私教课页面的可预定时间
* @author: yj
* @date: 2024/8/14 16:34
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getPersonalTimeBlocks(String coachId, String courseId,String selectedDate){
setUP("API_getPersonalTimeBlocks");
JSONObject jsonObject = new JSONObject();
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("coachId", coachId);
jsonObject.put("courseId", courseId);
jsonObject.put("selectedDate", selectedDate);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:查看小程序,私教课的预约记录
* @author: yj
* @date: 2024/8/14 16:34
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getPageByMemberbype(String signInStateSet1, String memberId,String scheduleStartDate,String scheduleEndDate){
setUP("API_getPageByMember");
List signInStateSet = new ArrayList();
signInStateSet.add(signInStateSet1);//预约状态
JSONObject jsonObject = new JSONObject();
jsonObject.put("current", 0);
jsonObject.put("signInStateSet", signInStateSet);
jsonObject.put("size", 10);
jsonObject.put("memberId", memberId);
jsonObject.put("scheduleStartDate", scheduleStartDate);
jsonObject.put("scheduleEndDate", scheduleEndDate);
jsonObject.put("courseType", "PERSONAL");//课程类型私教
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:查看私教课的预约详情
* @author: yj
* @date: 2024/8/14 16:34
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject getDetailByIdbype(String reserveId){
setUP("API_getDetailById");
JSONObject jsonObject = new JSONObject();
jsonObject.put("reserveId", reserveId);
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:小程序私教课的取消约课
* @author: xuyamei
* @date: 2024/6/26 10:32
* @param reserveId 预约id
* @param memberId 会员id
* @param success 正常传true
* @return: void
**/
public void cancelMemberReservebype(String reserveId, String memberId, boolean success) {
setUP("API_cancelMemberReserve");
JSONArray reserveIds = new JSONArray();
reserveIds.add(reserveId);
JSONObject body = new JSONObject();
body.put("reserveIds",reserveIds);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(success);
}
/**
* @description:小程序预约私教课
* @author: xuyamei
* @date: 2024/6/26 10:32
* @return: void
**/
public JSONObject addPersonal(String areaIds1,String benefitId,String chiefCoachId,String courseId,String memberId,String planCheckBalance,String reserveMemberNum,String scheduleStartTime,String spanMinutes) {
setUP("API_addPersonal");
JSONArray areaIds = new JSONArray();
areaIds.add(areaIds1);
JSONObject jsonObject = new JSONObject();
jsonObject.put("areaIds",areaIds);
jsonObject.put("benefitId",benefitId);
jsonObject.put("chiefCoachId",chiefCoachId);
jsonObject.put("courseId",courseId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo","自动化约私教课");
jsonObject.put("planCheckBalance",planCheckBalance);
jsonObject.put("reserveMemberNum",reserveMemberNum);
jsonObject.put("scheduleStartTime",scheduleStartTime);
jsonObject.put("spanMinutes",spanMinutes);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
}
package com.xiaomai.cases.lunar.reserve.personal;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.lunar.reserve.ReserveCTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestAddPersonal extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Reserve)
.setApiName("API_addPersonal")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "使用会员卡约私教课")
public void testaddPersonal() {
UserTools userTools = new UserTools();
String memberId = userTools.getMemberInfo().getString("memberId");
ResevervePersonalTools resevervePersonalTools =new ResevervePersonalTools();
String coachId="1796482517508263938";//固定教练杨剑-杨老师教练
resevervePersonalTools.getCourseByPage(coachId,"PERSONAL");
String courseId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].brandCourseId");//拿教练的第一个私教课程
ReserveCTools reserveCTools =new ReserveCTools();
String todayStartTimeTamp = CommUtil.oneKeyGetAddDay(1);
String scheduleEndTime = CommUtil.oneKeyGetAddDay(1);
reserveCTools.listUserReservableBenefit(courseId,"PERSONAL","MEMBER",memberId,Long.parseLong(todayStartTimeTamp));
String benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].benefitId");//拿教练的第一个私教课程
JSONObject jsonObject = new JSONObject();
jsonObject.put("benefitId",benefitId);
jsonObject.put("chiefCoachId",coachId);//教练ID
jsonObject.put("courseId",courseId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo","自动化小程序约私教课");
jsonObject.put("planCheckBalance",1);
jsonObject.put("reserveMemberNum",1);
jsonObject.put("scheduleStartTime",Long.valueOf(todayStartTimeTamp));//预约0点到0点10分的私教课
jsonObject.put("spanMinutes",10);
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
String reserveId = XMJSONPath.readPath(response, "$.result.reserveId");//预约成功后,拿预约记录id
resevervePersonalTools.getPageByMemberbype("UN_SIGNED",memberId,todayStartTimeTamp,scheduleEndTime);
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].id"),reserveId,"预约记录状态异常");//查看第一条是否为正常约课的私教课记录
resevervePersonalTools.cancelMemberReservebype(reserveId,memberId,true);//取消预约的私教课
resevervePersonalTools.getDetailByIdbype(reserveId);
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.courseType"),"PERSONAL","非私教课类型");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.reserveState"),"RESERVE_CANCEL","未取消约课");
}
}
package com.xiaomai.cases.lunar.user;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/12 15:01
*/
public class TestBindGhzStatus extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_User)
.setApiName("API_bindGhzStatus")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "公众号订阅状态")//UN_AUTH_SUCCESS:品牌授权公众号未成功,UN_OPENID:未绑定公众号openId,UN_SUBSCRIBE:未关注, SUBSCRIBE:已关注
public void testBindGhzStatus(){
UserTools userTools = new UserTools();
String memberId = userTools.getMemberInfo().getString("memberId");
JSONObject object = new JSONObject();
object.put("brandId",xmAppApi.getLoginInfo().getBrandId());
object.put("memberId",memberId);
object.put("userId",xmAppApi.getLoginInfo().getUser());
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
Assert.assertEquals(xmAppApi.getBodyInJSON().getString("result"),"UN_OPENID");
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
* @Description
* @Date 2024/7/1 16:46
*/
public class TestGenerateTicket extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Lunar_Share)
.setApiName("API_generateTicket")
.setLoginUser(LoginAccount.GYM_MINIAPPC)
.setTerminal(Terminal.minApp);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "存储参数获取ticket")
public void testGenerateTicket(){
JSONObject paramJson = new JSONObject();
paramJson.put("brandId",xmAppApi.getLoginInfo().getBrandId());
paramJson.put("studioId",xmAppApi.getLoginInfo().getStudioId());
paramJson.put("id",xmAppApi.getLoginInfo().getStudioId());
JSONObject object = new JSONObject();
object.put("paramJson",paramJson);
xmAppApi.doRequest(RequestType.JSON,params,object.toString(),headers).assetsSuccess(true);
}
}
package com.xiaomai.cases.polar.applet;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
......@@ -9,7 +8,6 @@ import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/**
* @Author zxy
......@@ -32,7 +30,7 @@ public class TestSetPageConfig extends XMBaseTest {
super.beforeTest();
}
@Test(description = "修改小程序页面配置-首页")
//@Test(description = "修改小程序页面配置-首页")
public void testSetStyleConfig(){
String shareText = "自动化脚本首页分享"+RandomStringUtil.randomString(5);
......@@ -42,7 +40,7 @@ public class TestSetPageConfig extends XMBaseTest {
Assert.assertEquals(appletTools.getPageConfig("HOME").getJSONObject("result").getJSONObject("shareSetting").getString("shareText"),shareText);
}
@Test(description = "修改小程序页面配置-约课")
//@Test(description = "修改小程序页面配置-约课")
public void testSetStyleConfig_1(){
String shareText = "自动化脚本约课页面分享"+RandomStringUtil.randomString(5);
......@@ -52,12 +50,14 @@ public class TestSetPageConfig extends XMBaseTest {
}
@Test(description = "修改小程序页面配置-我的")
// @Test(description = "修改小程序页面配置-我的")//json一直在更新,每次上线后脚本的json不更新就会产生脏数据,先注释掉
public void testSetStyleConfig_2(){
String shareText = "自动化脚本我的页面分享"+RandomStringUtil.randomString(5);
String body = "{\"tenantId\":\"1800375402938871809\",\"tenantType\":\"STUDIO\",\"config\":{\"shareSetting\":{\"shareText\":\""+shareText+"\",\"shareUrl\":\"\"},\"memberAssets\":[{\"code\":\"MEMBER_CARD\",\"visible\":true,\"title\":\"会员卡\"},{\"code\":\"EXPERIENCE_CARD\",\"visible\":true,\"title\":\"体验卡\"},{\"code\":\"TRAINING_CAMP\",\"visible\":true,\"title\":\"训练营\"}],\"bgSetting\":{\"selected\":\"DEFAULT\",\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\"},\"commonlyEntry\":[{\"code\":\"MY_ORDER\",\"visible\":true,\"title\":\"我的订单\"},{\"code\":\"MY_BOOKING\",\"visible\":true,\"title\":\"我的预约\"},{\"code\":\"SCAN_CODE_SIGNIN\",\"visible\":true,\"title\":\"扫码签到\"}]},\"pageKey\":\"MINE\"}";
// String body = "{\"tenantId\":\"1800375402938871809\",\"tenantType\":\"STUDIO\",\"config\":{\"shareSetting\":{\"shareText\":\""+shareText+"\",\"shareUrl\":\"\"},\"memberAssets\":[{\"code\":\"MEMBER_CARD\",\"visible\":true,\"title\":\"会员卡\"},{\"code\":\"EXPERIENCE_CARD\",\"visible\":true,\"title\":\"体验卡\"},{\"code\":\"TRAINING_CAMP\",\"visible\":true,\"title\":\"训练营\"}],\"bgSetting\":{\"selected\":\"DEFAULT\",\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\"},\"commonlyEntry\":[{\"code\":\"MY_ORDER\",\"visible\":true,\"title\":\"我的订单\"},{\"code\":\"MY_BOOKING\",\"visible\":true,\"title\":\"我的预约\"},{\"code\":\"SCAN_CODE_SIGNIN\",\"visible\":true,\"title\":\"扫码签到\"}]},\"pageKey\":\"MINE\"}";
String body ="{\"tenantId\":\"1800375402938871809\",\"tenantType\":\"STUDIO\",\"config\":{\"shareSetting\":{\"shareText\":\"一起来运动,探索更好的自己吧~\",\"shareUrl\":\"\"},\"memberAssets\":[{\"code\":\"CARD_PACKAGE\",\"visible\":true,\"title\":\"卡包\"},{\"code\":\"COUPON\",\"visible\":false,\"title\":\"优惠券\"},{\"code\":\"TRAINING_CAMP\",\"visible\":true,\"title\":\"训练营\"}],\"bgSetting\":{\"selected\":\"DEFAULT\",\"bgUrl\":\"https://image.xiaomaiketang.com/xm/internal/TRcJHBMjyj.png\"},\"commonlyEntry\":[{\"code\":\"MY_ORDER\",\"visible\":true,\"title\":\"我的订单\"},{\"code\":\"MY_BOOKING\",\"visible\":true,\"title\":\"我的预约\"},{\"code\":\"MY_ELECONTRACT\",\"visible\":true,\"title\":\"我的合同\"},{\"code\":\"SCAN_CODE_SIGNIN\",\"visible\":true,\"title\":\"扫码签到\"},{\"code\":\"BODY_RECORD\",\"visible\":true,\"title\":\"体测记录\"},{\"code\":\"FACE_INFO\",\"visible\":true,\"title\":\"人脸信息\"}]},\"pageKey\":\"MINE\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
Assert.assertEquals(appletTools.getPageConfig("MINE").getJSONObject("result").getJSONObject("shareSetting").getString("shareText"),shareText);
......
......@@ -23,7 +23,7 @@ public class TestBrandMerchantList extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_brandMerchant_list")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -17,7 +17,7 @@ public class TestCheckUnbind extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_checkUnbind")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -28,7 +28,7 @@ public class TestGetApply extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_getApply")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......@@ -57,8 +57,7 @@ public class TestGetApply extends XMBaseTest {
//若有数据,检验详情里的场馆信息跟品牌信息匹配;若无返回报错
if (total != 0) {
Assert.assertEquals(XMJSONPath.readPath(response, "$.message"), "操作成功!");
Assert.assertEquals(XMJSONPath.readPath(response, "$.result.companyType"), "PRIVATE");
Assert.assertEquals(XMJSONPath.readPath(response, "$.result.openState"), "SUCCESS");
Assert.assertEquals(XMJSONPath.readPath(response, "$.result.openState"), "SUCCESS");//检验开通状态
} else {
Assert.assertEquals(XMJSONPath.readPath(response, "$.message"), "数据不存在");
}
......
......@@ -23,7 +23,7 @@ public class TestGetLatestApply extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_getLatestApply")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -17,7 +17,7 @@ public class TestGetLatestSuccessApply extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_getLatestSuccessApply")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -23,7 +23,7 @@ public class TestGetMerchant extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_getMerchant")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -17,7 +17,7 @@ public class TestGetStudioJoinBrandInfo extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_getStudioJoinBrandInfo")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestPageApply extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Merchant)
.setApiName("API_pageApply")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -9,6 +9,7 @@ import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
......@@ -19,6 +20,7 @@ import java.util.Random;
* @Description
* @Date 2024/3/14 16:03
*/
@Component("memberTools")
public class MemberTools extends BaseTestImpl {
//创建潜在会员
......
......@@ -61,7 +61,7 @@ public class TestCreate extends XMBaseTest {
Random random = new Random();
String name = "自动化潜在会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("666");
String[] idCardType = {"IDENTITY","SAR_PERMIT","idCardType"};//身份证、港澳通行证、护照
String[] idCardType = {"IDENTITY","SAR_PERMIT","PASSPORT"};//身份证、港澳通行证、护照
String[] intention = {"HIGH","MIDDLE","LOW"};//意向度:高、中、低
String code = memberTools.findByObjectId().getJSONObject(random.nextInt(13)).getString("code");//线索来源列表
......
......@@ -24,7 +24,7 @@ public class TestBatchModifyStudioConfig extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_batchModifyStudioConfig")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -23,7 +23,7 @@ public class TestCurrentUser extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_currentUser")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestGetFailTenantSmsRecordDetail extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getFailTenantSmsRecordDetail")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestGetSmsRechargeOrderStatus extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getSmsRechargeOrderStatus")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -25,7 +25,7 @@ public class TestGetSmsRechargePage extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getSmsRechargePage")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestGetSmsType extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getSmsType")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestGetStudioMessageConfigs extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getStudioMessageConfigs")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestGetStudioSmsInfo extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getStudioSmsInfo")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -23,7 +23,7 @@ public class TestGetSuitList extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getSuitList")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -24,7 +24,7 @@ public class TestGetTenantSmsRecordDetail extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getTenantSmsRecordDetail")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -23,7 +23,7 @@ public class TestGetTenantSmsRecordPage extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_getTenantSmsRecordPage")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -23,7 +23,7 @@ public class TestSmsRecharge extends XMBaseTest {
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Config)
.setApiName("API_smsRecharge")
.setLoginUser(LoginAccount.XYY_PROD)
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
......
......@@ -10,7 +10,6 @@ import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -454,7 +453,46 @@ public class CourseTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
/**
* 编辑私教课的单次约课价格
* @param categoryId 课程分类
* @param courseId 课程id
* @param courseName 课程名称
* @param coachId 私教id
* @param price 设置单次约课价格
* @param dataUserInfo
*/
public void editPersonalCourse(String categoryId,String courseId,String courseName,String coachId,String price,DataUserInfo...dataUserInfo){
dataApi.setApiModule(ApiModule.Polar_Course)
.setApiName("API_editPersonalCourse")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfo);
JSONObject body = new JSONObject();
body.put("courseName", courseName);
body.put("duration", 10); // 时长
body.put("difficulty", 3); // 难度
body.put("color", "#AACF53");
body.put("coverId", "0");
body.put("timeUnit", "MINUTE");
body.put("categoryId", categoryId);
body.put("sourceId", dataApi.getLoginInfo().getStudioId()); // 来源:场馆、品牌
body.put("sourceType", "STUDIO"); // 来源类型:场馆、品牌
body.put("sizeType", "ONE_TO_MANY"); // 私教模式
body.put("allArea", false); // 场地
JSONArray coachIds = new JSONArray();
coachIds.add(coachId);
body.put("coachIds", coachIds);
body.put("capacity", 20); // 课容量
body.put("singleReserve", true); // 允许单次约课
body.put("minCapacity", 1); // 开课人数
body.put("reservePrice", price); // 单次约课的价格
body.put("brandCourseId", courseId);
body.put("brandId", dataApi.getLoginInfo().getBrandId()); // 品牌
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
}
/**
* @description:编辑团课
......
......@@ -8,7 +8,8 @@ import org.apache.commons.lang3.StringUtils;
* @Date 2024/7/2 17:48
*/
public enum ExcelImportEnum {
MEMBER_INFO("memberInfo",3,0,1);
MEMBER_INFO("memberInfo",3,0,1),
DEPOSIT_INFO("depositInfo",3,0,1);
/**业务 */
private String value;
......
package com.xiaomai.cases.polar.experienceCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.math.BigDecimal;
/**
* @Author zxy
* @Description
* @Date 2024/8/31 14:40
*/
public class TestActiveExperienceCard extends XMBaseTest {
Tools tools = new Tools();
CardTools cardTools = new CardTools();
OrderTools orderTools = new OrderTools();
String memberCardId;
String title;
BigDecimal quantity; //可用次数
float price; //价格
int validPeriod; //有效期
String latestSnapshotId;//最近的快照ID
BigDecimal entryQuantity;//入场权益
float entryPrice;//入场权益价格
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_activateMemberCard")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "操作体验卡开卡")
public void testActivateMemberCard() {
//先检查下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
cardTools.doMemberCardcommonSearch("课程次数入场次数","EXPERIENCE_CARD");
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");
} else {
for (int i = 0; i < 3; i++) {
title = "课程次数入场次数" + RandomStringUtil.randomString(3) + "-自动化创建";
//check是否存在同名的体验卡,不存在则新建
Boolean duplicate = tools.checkTitleDuplicate(title, "EXPERIENCE_CARD").getBoolean("result");
if (duplicate == false) {
memberCardId = tools.create("EXPERIENCE_CARD", title, "全部", "YES", "课程次数入场次数").getString("result");
break;
}
}
}
//获取体验卡详情
cardTools.fetchDetailById(memberCardId);
quantity= new BigDecimal(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[0].balance"));
entryQuantity = new BigDecimal(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[1].balance"));
price=Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.benefitList[0].price"));
entryPrice = Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.benefitList[1].price"));
validPeriod=Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.validPeriod"));
latestSnapshotId=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.latestSnapshotId");
//给会员签单-购买体验卡
orderTools.signOrder1(memberCardId,latestSnapshotId,quantity,entryQuantity,price,entryPrice,validPeriod,latestSnapshotId,0,"FIRST_USED","EXPERIENCE_CARD", "1805435813468483586",price+entryPrice,price+entryPrice,"1");
//获取该会员名下的体验卡列表
cardTools.getUserMemberCardList("1805435813468483586","EXPERIENCE");
String memberAccountCardId = "";
memberAccountCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");
//操作开卡
JSONObject body = new JSONObject();
body.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("brandId", xmAppApi.getLoginInfo().getBrandId());
body.put("memberCardId", memberAccountCardId);
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
//查看售卖记录详情
cardTools.memberCardFindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "NORMAL", "开卡后卡状态没变更为生效状态");
String benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.courseBenefit.id");
//check生成一条变动记录
cardTools.getMemberCardAccountOperateRecord(memberAccountCardId);
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].operateType").equals("ACTIVATE"), "手动开卡后生成的变动记录第一条备注不是手动开卡ACTIVATE");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].remark").equals("手动开卡"), "手动开卡后生成的变动记录第一条备注不是手动开卡");
//查看消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId, memberAccountCardId);
int totalBefore = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
Assert.assertTrue(totalBefore == 1, "会员购卡后没生成购买的消耗记录");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].consumeType").equals("PURCHASE"), "会员购卡后生成消耗记录不是购买");
//操作退卡
orderTools.refundOrder1(2, 1,memberAccountCardId, quantity, entryQuantity,price, entryPrice,"EXPERIENCE_CARD", "1805435813468483586", "1");
String refundOrderId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result");
//退卡成功后check 售卖记录详情状态:已退卡
cardTools.memberCardFindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "REFUNDED", "退卡后卡卡账户状态没变更为已退卡状态");
//退卡后check是否生成一条退卡的消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId, memberAccountCardId);
int totalAfter = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
Assert.assertTrue(totalAfter == 2, "会员退卡后没生成购买的消耗记录");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].consumeType").equals("REFUND"), "会员退卡后生成消耗记录不是退卡");
}
}
......@@ -42,8 +42,7 @@ public class TestUpdateExperienceCard extends XMBaseTest {
@Test(description = "编辑体验卡")
public void testUpdateExperienceCard(){
//先检查次下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
//先检查下列表有没有数据,有数据才会执行下面的点代码,无数据则新建一个
cardTools.fetchPageOfMemberCard("EXPERIENCE_CARD");
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
......
......@@ -13,6 +13,7 @@ import com.xiaomai.utils.XMBaseTest;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.UUID;
@Component("orderTools")
public class OrderTools extends XMBaseTest {
......@@ -427,6 +428,50 @@ public class OrderTools extends XMBaseTest {
}
/**
* 创建订单使用储值卡抵扣
* @param dataUserInfos
* @return
**/
public String signOrder(String memberId,String memberCardId,String cardSnapshotId,String price,String depositCardId,String depositCardName,DataUserInfo...dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_signOrder")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject cardChange = new JSONObject();
cardChange.put("quantity","10");//课程可使用次数
cardChange.put("entryQuantity","30");//30天有效期
cardChange.put("price",price);
cardChange.put("validPeriod","30");
cardChange.put("totalPrice",price);
cardChange.put("latestSnapshotId",cardSnapshotId);
JSONObject card = new JSONObject();
card.put("cardId",memberCardId);
card.put("cardSnapshotId",cardSnapshotId);
card.put("cardChange",cardChange);
card.put("activatePattern","PURCHASE");//
card.put("commodityCardType","MEMBER_CARD");
JSONObject jsonObject = new JSONObject();
jsonObject.put("card",card);
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",0);
jsonObject.put("paymentWays",new JSONArray());
jsonObject.put("depositCardId",depositCardId);
jsonObject.put("depositCardName",depositCardName);
jsonObject.put("depositAmount",price);
jsonObject.put("salesmanId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
jsonObject.put("objectId", UUID.randomUUID().toString());
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams,jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getString("result");
}
/**
* @param
* @description: 获取订单详情
* @param id:主键ID(创建订单获取的result)
......@@ -502,6 +547,73 @@ public class OrderTools extends XMBaseTest {
return response;
}
//双权益的订单
public JSONObject signOrder1(String cardId,String cardSnapshotId,BigDecimal quantity,BigDecimal entryQuantity,float price,float entryPrice,int validPeriod,String latestSnapshotId,float deductionAmount,String activatePattern,
String commodityCardType,String memberId,float receivableAmount,float amount,String paymentWay,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_signOrder")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("salesmanId",dataApi.getLoginInfo().getAdminId());
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
JSONObject card=new JSONObject();
card.put("cardId",cardId);
card.put("cardSnapshotId",cardSnapshotId);
JSONObject cardChange=new JSONObject();
cardChange.put("quantity",quantity);
cardChange.put("entryQuantity",entryQuantity);
cardChange.put("price",price);
cardChange.put("entryPrice",entryPrice);
cardChange.put("validPeriod",validPeriod);
cardChange.put("totalPrice",price+entryPrice);
cardChange.put("latestSnapshotId",latestSnapshotId);
card.put("cardChange",cardChange);
card.put("deductionAmount",deductionAmount);//优惠金额(元)
card.put("activatePattern",activatePattern);
card.put("giftQuantity",2);//课程赠送2次
card.put("entryGiftQuantity",1);//入场赠送
if(activatePattern.equals("FIRST_USED")){ //如果选择生效方式为 首次使用生效
card.put("maxIdlePeriod",30); //最晚生效天数
}
if(activatePattern.equals("SPECIFIC_DATE")){//选择指定日期生效
card.put("activateDate", CommUtil.oneKeyGetAddDay(7));//当前时间+7天
}
card.put("commodityCardType",commodityCardType);
jsonObject.put("card",card);
jsonObject.put("objectId", RandomStringUtil.randomString(20));
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",receivableAmount);//应收金额
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
JSONArray paymentWays=new JSONArray();
JSONObject object=new JSONObject();
object.put("amount",amount);//支付金额
object.put("paymentWay",paymentWay);
JSONArray voucherResourceIds=new JSONArray();//支付凭证
voucherResourceIds.add("");
object.put("voucherResourceIds",voucherResourceIds);
paymentWays.add(object);
jsonObject.put("paymentWays",paymentWays);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
* @description:修改对外备注
......@@ -692,7 +804,56 @@ public class OrderTools extends XMBaseTest {
return response;
}
//双权益退卡
public JSONObject refundOrder1(int giftQuantity,int entryGiftQuantity, String memberCardId,BigDecimal quantity,BigDecimal entryQuantity,float refundAmount,float entryRefundAmount,String commodityCardType,String memberId,
String paymentWay,DataUserInfo...dataUserInfos){
dataApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_refundOrder")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject=new JSONObject();
jsonObject.put("operationTime",TimeUtils.getCurrentTime());
JSONObject card=new JSONObject();
card.put("giftQuantity",giftQuantity);
card.put("memberCardId",memberCardId);
card.put("quantity",quantity);
card.put("entryQuantity",entryQuantity);
card.put("entryGiftQuantity",entryGiftQuantity);
card.put("refundAmount",refundAmount);
card.put("entryRefundAmount",entryRefundAmount);
card.put("commodityCardType",commodityCardType);
jsonObject.put("card",card);
jsonObject.put("objectId", RandomStringUtil.randomString(20));
jsonObject.put("studioId",dataApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",refundAmount+entryRefundAmount);
jsonObject.put("operatorId",dataApi.getLoginInfo().getAdminId());
JSONArray paymentWays=new JSONArray();
JSONObject jsonObject1=new JSONObject();
jsonObject1.put("amount",refundAmount+entryRefundAmount);
jsonObject1.put("paymentWay",paymentWay);
JSONArray voucherResourceIds=new JSONArray();
voucherResourceIds.add("");
jsonObject1.put("voucherResourceIds",voucherResourceIds);
paymentWays.add(jsonObject1);
jsonObject.put("paymentWays",paymentWays);
jsonObject.put("brandId",dataApi.getLoginInfo().getBrandId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
JSONObject response=dataApi.getBodyInJSON();
return response;
}
/**
* @param
......
......@@ -220,7 +220,7 @@ public class TestRefundOrder extends XMBaseTest {
String fetchUserCardListId=fetchUserCardListResult.getJSONArray("result").getJSONObject(0).getString("id");//权益ID
//获取售卖详情
JSONObject findDetailByIdResult=cardTools.membercardfindDetailById(fetchUserCardListId);
JSONObject findDetailByIdResult=cardTools.memberCardFindDetailById(fetchUserCardListId);
String findDetailByIdState=findDetailByIdResult.getJSONObject("result").getString("state");//卡状态
String findDetailByIdTradeOrderNumber=findDetailByIdResult.getJSONObject("result").getString("tradeOrderNumber");//所关联的签单订单号
Assert.assertEquals(findDetailByIdTradeOrderNumber.equals(signBusinessNo),true,"创建已完成退单订单,未生成已退卡卡包");//断言的别意:生成的卡包所关联的签单订单号和上述创建签单订单的订单号一致不一致的校验
......
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.UUID;
public class TestRefundOrderByDeposit extends XMBaseTest {
String memberId;
@Resource(name = "tools")
Tools tools;
@Resource(name = "orderTools")
OrderTools orderTools;
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_refundOrder")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "购买储值卡->使用储值购买会员卡->退会员卡->作废退会员卡->作废会员卡->作废储值卡")
public void testRefundOrder_memberCard() throws InterruptedException{
//定义会员名称和手机号
String name = "储值卡会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("266");
//获取会员id,没有则新建一个
int memberTotal = Integer.parseInt(tools.search("NORMAL","NORMAL").getJSONObject("result").getString("total"));
if (memberTotal == 0) {
memberId = tools.create(name,phone).getString("result");
}
memberId = tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
//获取启用中的会员卡id及价格
String memberCardId = XMJSONPath.readPath(cardTools.fetchPageOfMemberCard("MEMBER_CARD"), "$.result.records[0].id") ;
String price = XMJSONPath.readPath(cardTools.fetchPageOfMemberCard("MEMBER_CARD"), "$.result.records[0].price");
String cardSnapshotId = XMJSONPath.readPath(cardTools.fetchDetailById(memberCardId), "$.result.latestSnapshotId");
//获取启用中的储值卡id
String cardId = XMJSONPath.readPath(cardTools.fetchPageOfMemberCard("DEPOSIT_CARD"), "$.result.records[0].id");
String latestSnapshotId = XMJSONPath.readPath(cardTools.fetchDetailById(cardId), "$.result.latestSnapshotId");
//1.购储值卡,获取购卡订单id
String voucherId = cardTools.signOrderDeposit(cardId,latestSnapshotId,memberId,"0.00",price);
Thread.sleep(3000);
//通过搜索接口查询该会员名下第1张已售卖的储值卡
String benefitId = XMJSONPath.readPath(orderTools.fetchUserCardList("DEPOSIT",memberId,"NORMAL"),"$.result[0].depositBenefit.id");
String depositCardId = XMJSONPath.readPath(orderTools.fetchUserCardList("DEPOSIT",memberId,"NORMAL"),"$.result[0].id");
String depositCardName = XMJSONPath.readPath(orderTools.fetchUserCardList("DEPOSIT",memberId,"NORMAL"),"$.result[0].title");
//先查询消耗记录的条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId),"$.result.total"));
//2.使用储值卡购买会员卡产生的订单id
String orderId = orderTools.signOrder(memberId,memberCardId,cardSnapshotId,price,depositCardId,depositCardName);
String memberCardNo = XMJSONPath.readPath(orderTools.fetchUserCardList("MEMBER",memberId,"NORMAL"),"$.result[0].id");
//储值卡消耗记录新增1条,类型为签单,消耗金额
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.total")) ==num+1);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].consumeType"),"DEPOSIT_SIGN_ORDER");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].changeOfGiveBalance"),"-"+price);
//3.退会员卡
JSONObject card = new JSONObject();
card.put("giftQuantity",0);
card.put("memberCardId",memberCardNo);
card.put("quantity",10);
card.put("entryQuantity",0);
card.put("entryGiftQuantity",0);
card.put("refundAmount",0);
card.put("entryRefundAmount",0);
card.put("commodityCardType","MEMBER_CARD");
JSONObject jsonObject = new JSONObject();
jsonObject.put("operationTime", TimeUtils.getCurrentTime());
jsonObject.put("card",card);
jsonObject.put("objectId", UUID.randomUUID().toString());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",0);
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("paymentWays",new JSONArray());
jsonObject.put("depositRechargeAmount",0);
jsonObject.put("depositGiveAmount",price);
jsonObject.put("depositCardId",depositCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
String refundOrderId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.result");
//储值卡消耗记录新增1条,类型为退单,增加金额
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.total")) ==num+2);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].consumeType"),"DEPOSIT_REFUND_ORDER");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].changeOfGiveBalance"),price);
//4.作废退会员卡
orderTools.discard(refundOrderId,"其他","自动化作废退会员卡订单");
//储值卡消耗记录新增1条,类型为作废退单,消耗金额
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.total")) ==num+3);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].consumeType"),"DEPOSIT_DISCARD_REFUND_ORDER");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].changeOfGiveBalance"),"-"+price);
//5.作废会员卡
orderTools.discard(orderId,"其他","自动化作废会员卡订单");
//储值卡消耗记录新增1条,类型为作废签单,增加金额
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.total")) ==num+4);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].consumeType"),"DEPOSIT_DISCARD_SIGN_ORDER");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].changeOfGiveBalance"),price);
//6.作废储值卡
orderTools.discard(voucherId,"其他","自动化作废储值卡订单");
//储值卡消耗记录新增1条,类型为退单,消耗金额
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.total")) ==num+5);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].consumeType"),"DISCARD_ORDER");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,depositCardId), "$.result.records[0].changeOfGiveBalance"),"-"+price);
}
}
package com.xiaomai.cases.polar.finance.order;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.memberCard.CardTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import java.util.UUID;
public class TestRefundOrderDeposit extends XMBaseTest {
String memberId;
String price = "100.00";//储值卡价格
@Resource(name = "tools")
Tools tools;
@Resource(name = "orderTools")
OrderTools orderTools;
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Finance)
.setApiName("API_refundOrderDeposit")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "购买储值卡->退储值卡->作废退卡->作废购卡")
public void testRefundOrderDeposit() throws InterruptedException {
//定义会员名称和手机号
String name = "储值卡会员"+ RandomStringUtil.randomString(3);
String phone = RandomStringUtil.randomMobile("266");
//获取会员id,没有则新建一个
int memberTotal = Integer.parseInt(tools.search("NORMAL","NORMAL").getJSONObject("result").getString("total"));
if (memberTotal == 0) {
memberId = tools.create(name,phone).getString("result");
}
memberId = tools.search("NORMAL","NORMAL").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
//查询启用中的储值卡,获取储值卡id
String cardId = XMJSONPath.readPath(cardTools.fetchPageOfMemberCard("DEPOSIT_CARD"), "$.result.records[0].id");
String latestSnapshotId = XMJSONPath.readPath(cardTools.fetchDetailById(cardId), "$.result.latestSnapshotId");
//1.购储值卡,获取购卡订单id
String voucherId = cardTools.signOrderDeposit(cardId,latestSnapshotId,memberId,"0.00",price);
Thread.sleep(3000);
//通过搜索接口查询该会员名下第1张已售卖的储值卡
String benefitId = XMJSONPath.readPath(orderTools.fetchUserCardList("DEPOSIT",memberId,"NORMAL"),"$.result[0].depositBenefit.id");
String memberCardId = XMJSONPath.readPath(orderTools.fetchUserCardList("DEPOSIT",memberId,"NORMAL"),"$.result[0].id");
//先查询消耗记录的条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.total"));
//2.退储值卡
JSONObject card = new JSONObject();
card.put("giftAmount",price);
card.put("memberCardId",memberCardId);
card.put("rechargeAmount",0);
card.put("refundAmount",0);
card.put("commodityCardType","DEPOSIT_CARD");
JSONObject jsonObject = new JSONObject();
jsonObject.put("operationTime",System.currentTimeMillis());
jsonObject.put("card",card);
jsonObject.put("objectId", UUID.randomUUID().toString());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("memberId",memberId);
jsonObject.put("receivableAmount",0);
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("paymentWays",new JSONArray());
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
//调用请求
xmAppApi.doRequest(RequestType.JSON,params,jsonObject.toJSONString(),headers).assetsSuccess(true);
String refundOrderId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.result");
//订单状态为已退款
Assert.assertEquals(XMJSONPath.readPath(orderTools.getDetail(refundOrderId), "$.result.state"), "PAID");
Assert.assertEquals(XMJSONPath.readPath(orderTools.getDetail(refundOrderId),"$.result.type"),"REFUND");
//储值卡状态=已退卡,剩余金额=0
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.state"),"REFUNDED");
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.price"),"0.00");
//储值卡消耗记录新增1条,并且类型为退卡,退款金额=购买金额
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.total")) ==num+1);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.records[0].consumeType"),"REFUND");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.records[0].changeOfGiveBalance"),"-"+price);
//3.作废退卡
orderTools.discard(refundOrderId,"其他","自动化作废退储值卡订单");
Thread.sleep(3000);
//储值卡状态生效中
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.state"),"NORMAL");
//储值卡消耗记录新增1条,并且类型为取消退卡
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.total")) ==num+2);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.records[0].consumeType"),"CANCEL_REFUND");
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.records[0].changeOfGiveBalance"),price);
//4.作废购卡
orderTools.discard(voucherId,"其他","自动化作废储值卡订单");
Thread.sleep(3000);
//check储值卡状态为已作废
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.state"),"DISCARD");
//check剩余金额=0
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.depositBenefit.leftBalance"),"0.00");
//check消耗记录有1条作废订单记录
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.total")) ==num+3);
Assert.assertEquals(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.records[0].consumeType"),"DISCARD_ORDER");
}
}
......@@ -186,7 +186,7 @@ public class TestSignOrder extends XMBaseTest {
String fetchUserCardListId=fetchUserCardListResult.getJSONArray("result").getJSONObject(0).getString("id");//权益ID
//获取售卖详情
JSONObject findDetailByIdResult=cardTools.membercardfindDetailById(fetchUserCardListId);
JSONObject findDetailByIdResult=cardTools.memberCardFindDetailById(fetchUserCardListId);
String findDetailByIdState=findDetailByIdResult.getJSONObject("result").getString("state");//卡状态
String findDetailByIdTradeOrderNumber=findDetailByIdResult.getJSONObject("result").getString("tradeOrderNumber");//订单号
Assert.assertEquals(findDetailByIdTradeOrderNumber.equals(businessNo),true,"创建已完成订单,未生成卡包");//断言的别意:生成的卡包的订单号和上述创建订单的订单号一致不一致的校验
......
package com.xiaomai.cases.polar.importExcel;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.enums.ExcelImportEnum;
import com.xiaomai.cases.polar.utils.Entity.SignatureVO;
import com.xiaomai.cases.polar.utils.ModifyExcelContentUtil;
import com.xiaomai.cases.polar.utils.ResourceUtil;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class TestImportDeposit extends XMBaseTest {
ImportTools importTools = new ImportTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_ImportTask)
.setApiName("API_webTokenWithAccessUrl")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "导入售出储值卡")
public void testImportMember()throws IOException, InterruptedException{
//导入任务列表
int total = Integer.parseInt(importTools.pageImportTask().getJSONObject("result").getString("total"));
//1.更新excel文档
String filePathName = "excelFile/depositInfo.xls";
ModifyExcelContentUtil.modifyExcel(filePathName, "售出储值卡导入", ExcelImportEnum.DEPOSIT_INFO);
Thread.sleep(1000);
//2、获取签名
JSONObject object = new JSONObject();
object.put("tenantId", xmAppApi.getLoginInfo().getBrandId());
object.put("tenantType", "BRAND");
object.put("resourceName",filePathName);
object.put("resourceNameToMD5",false);
object.put("bizCode","IMPORT_TASK");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(true);
JSONObject result1 = xmAppApi.getBodyInJSON();
String resourceId = XMJSONPath.readPath(result1, "$.result.resourceId");
String accessId = XMJSONPath.readPath(result1, "$.result.accessId");
String policy = XMJSONPath.readPath(result1, "$.result.policy");
String signature = XMJSONPath.readPath(result1, "$.result.signature");
String key = XMJSONPath.readPath(result1, "$.result.key");
String callback = XMJSONPath.readPath(result1, "$.result.callback");
String host = XMJSONPath.readPath(result1, "$.result.host");
String time = XMJSONPath.readPath(result1, "$.result.extAttrs");
JSONObject time1 = JSONObject.parseObject(time);
String url = XMJSONPath.readPath(result1, "$.result.url");
//3.腾讯云上传
InputStream inputStream = new FileInputStream(filePathName);
SignatureVO signatureVO = new SignatureVO();
signatureVO.setAlgorithm("sha1");
signatureVO.setKey(key);
signatureVO.setAccessId(accessId);
signatureVO.setPolicy(policy);
signatureVO.setSignature(signature);
signatureVO.setCallback(callback);
signatureVO.setExtAttrs(time1.getString("q-key-time"));
signatureVO.setHost(host);
signatureVO.setResourceId(Long.valueOf(resourceId));
String result = String.valueOf(ResourceUtil.uploadFileContentToTencent(inputStream, filePathName, signatureVO, 5000,"multipart/form-data"));
Assert.assertEquals(result, "true");
//4.创建任务
JSONObject result2 = importTools.createImportTask("DEPOSIT_CARD_ORDER",resourceId,null,"");
String recordId = XMJSONPath.readPath(result2, "$.result");
//5.获取上传进度
Thread.sleep(6000);
importTools.getTask(recordId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "SUCCESS");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.successRowNum"), "1");
//上传成功后导入记录列表新增一条数据
JSONObject res = importTools.pageImportTask().getJSONObject("result");
Assert.assertEquals(Integer.parseInt(res.getString("total")),total+1);
Assert.assertEquals(res.getJSONArray("records").getJSONObject(0).getString("resourceId"),resourceId);
Assert.assertEquals(res.getJSONArray("records").getJSONObject(0).getString("state"),"SUCCESS");
}
}
package com.xiaomai.cases.polar.importExcel;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.utils.Entity.SignatureVO;
import com.xiaomai.cases.polar.utils.ResourceUtil;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @Author zxy
* @Description
* @Date 2024/8/30 13:59
*/
public class TestImportMemberCard extends XMBaseTest {
ImportTools importTools = new ImportTools();
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_ImportTask)
.setApiName("API_webTokenWithAccessUrl")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("zyx")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "导入售出会员卡信息")
public void testImportMemberCard()throws IOException, InterruptedException{
//导入任务列表
int total = Integer.parseInt(importTools.pageImportTask().getJSONObject("result").getString("total"));
String filePathName = "excelFile/memberCardInfo.xls";
//2、获取签名
JSONObject object = new JSONObject();
object.put("tenantId", xmAppApi.getLoginInfo().getBrandId());
object.put("tenantType", "BRAND");
object.put("resourceName",filePathName);
object.put("resourceNameToMD5",false);
object.put("bizCode","IMPORT_TASK");
xmAppApi.doRequest(RequestType.JSON, params, object.toString(), headers).assetsSuccess(true);
JSONObject result1 = xmAppApi.getBodyInJSON();
String resourceId = XMJSONPath.readPath(result1, "$.result.resourceId");
String accessId = XMJSONPath.readPath(result1, "$.result.accessId");
String policy = XMJSONPath.readPath(result1, "$.result.policy");
String signature = XMJSONPath.readPath(result1, "$.result.signature");
String key = XMJSONPath.readPath(result1, "$.result.key");
String callback = XMJSONPath.readPath(result1, "$.result.callback");
String host = XMJSONPath.readPath(result1, "$.result.host");
String time = XMJSONPath.readPath(result1, "$.result.extAttrs");
JSONObject time1 = JSONObject.parseObject(time);
String url = XMJSONPath.readPath(result1, "$.result.url");
//3.腾讯云上传
InputStream inputStream = new FileInputStream(filePathName);
SignatureVO signatureVO = new SignatureVO();
signatureVO.setAlgorithm("sha1");
signatureVO.setKey(key);
signatureVO.setAccessId(accessId);
signatureVO.setPolicy(policy);
signatureVO.setSignature(signature);
signatureVO.setCallback(callback);
signatureVO.setExtAttrs(time1.getString("q-key-time"));
signatureVO.setHost(host);
signatureVO.setResourceId(Long.valueOf(resourceId));
String result = String.valueOf(ResourceUtil.uploadFileContentToTencent(inputStream, filePathName, signatureVO, 5000,"multipart/form-data"));
Assert.assertEquals(result, "true");
//4.创建任务
JSONObject result2 = importTools.createImportTask("MEMBER_CARD_ORDER",resourceId,null,"");
String recordId = XMJSONPath.readPath(result2, "$.result");
//5.获取上传进度
Thread.sleep(6000);
importTools.getTask(recordId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.state"), "SUCCESS");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.successRowNum"), "1");
//上传成功后导入记录列表新增一条数据
JSONObject res = importTools.pageImportTask().getJSONObject("result");
Assert.assertEquals(Integer.parseInt(res.getString("total")),total+1);
Assert.assertEquals(res.getJSONArray("records").getJSONObject(0).getString("resourceId"),resourceId);
Assert.assertEquals(res.getJSONArray("records").getJSONObject(0).getString("state"),"SUCCESS");
//获取导入资源-下载导入文件
String url1 = importTools.getImportResource(resourceId).getString("result");
Assert.assertEquals(url1,url);
}
}
......@@ -34,7 +34,7 @@ public class TestActivateMemberCard extends GetMemberCardBaseInfoForSign {
@Test(description = "操作会员卡开卡")
public void testActivateMemberCard() {
cardTools.getUserMemberCardList(memberId);
cardTools.getUserMemberCardList(memberId,"MEMBER");
String memberAccountCardId="";
String state;
int count= XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size();
......@@ -51,7 +51,7 @@ public class TestActivateMemberCard extends GetMemberCardBaseInfoForSign {
xmAppApi.doRequest(RequestType.JSON, params, body.toString(), headers).assetsSuccess(true);
//查看售卖记录详情
cardTools.membercardfindDetailById(memberAccountCardId);
cardTools.memberCardFindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.state"),"NORMAL","开卡后卡状态没变更为生效状态");
String benefitId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result.courseBenefit.id");
......@@ -73,7 +73,7 @@ public class TestActivateMemberCard extends GetMemberCardBaseInfoForSign {
String refundOrderId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result");
//退卡成功后check 售卖记录详情状态:已退卡
cardTools.membercardfindDetailById(memberAccountCardId);
cardTools.memberCardFindDetailById(memberAccountCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.state"),"REFUNDED","退卡后卡卡账户状态没变更为已退卡状态");
//退卡后check是否生成一条退卡的消耗记录
cardTools.fetchPageOfConsumeRecord(benefitId,memberAccountCardId);
......
......@@ -5,14 +5,21 @@ import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestCancelSuspend extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
public String memberCardId = "";
public String memberCardState;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -24,48 +31,48 @@ public class TestCancelSuspend extends XMBaseTest {
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "会员卡售卖记录详情-取消停用")
public void testcancelSuspend() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch("NORMAL");
String benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].courseBenefit.id");//拿售卖记录第一张【生效中】售卖的会员卡的ID;
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张【生效中】会员卡的ID;
Cardtools.modifyExpireDate(benefitId,memberCardId);//修改有效期
Cardtools.getMemberCardAccountOperateRecord(memberCardId);//查看售卖记录变动记录
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].operateType").equals("CHANGE_EFFECTIVE_DATE"),"操作修改有效期,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].remark").equals("自动化修改会员卡有效期"),"操作修改有效期,变动记录第一条的备注");
//Cardtools.membercardfindDetailById(memberCardId);//获取售卖记录详情
//long expireDate = TimeUtils.getAfterDayDate(1);
//System.out.println(expireDate);
//Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].expireDate").equals(expireDate));//校验售卖记录,有效期是否修改正确
//Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].expireDate")..equals(expireDate),substring(0, 5););
Cardtools.membercard_suspend(benefitId,memberCardId);//会员卡操作停卡
Cardtools.membercardfindDetailById(memberCardId);//获取售卖记录详情
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.state").equals("SUSPEND"),"校验停卡后,售卖记录详情-状态变更为已停用");
Cardtools.getMemberCardAccountOperateRecord(memberCardId);//查看售卖记录变动记录
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].operateType").equals("SUSPEND_CARD"),"操作停卡,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].remark").equals("自动化停卡"),"操作停卡,变动记录第一条的备注");
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER"},//会员卡
{"DEPOSIT"},//储值卡
{"EXPERIENCE"}//体验卡
};
}
@Test(description = "取消停用的已售卡",dataProvider = "dataProvider")
public void testMemberCardCancelSuspend(String cardType) {
//查询生效中的卡列表
cardTools.memberCardSearch(cardType,"SUSPEND");
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
memberCardState=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].state");
//如果不是启用状态,则开启
if(memberCardState.equals("NORMAL")){
cardTools.memberCardSuspend(memberCardId);
}
//获取该卡的变动记录条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"));
JSONObject jsonObject = new JSONObject();
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("memo","自动化取消停卡");
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Cardtools.getMemberCardAccountOperateRecord(memberCardId);//查看售卖记录变动记录
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].operateType").equals("CANCEL_SUSPEND_CARD"),"操作取消停卡,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].remark").equals("自动化取消停卡"),"操作取消停卡,变动记录第一条的备注");
//check 会员卡详情,查看状态是否是生效中状态
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.state"),"NORMAL");
//check 变动记录新增1条数据
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"))==num+1);
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].operateType").equals("CANCEL_SUSPEND_CARD"),"操作停卡,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].remark").equals("自动化取消停卡"),"操作停卡,变动记录第一条的备注");
}
}
}
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
public class TestCreateTerm extends XMBaseTest {
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_create")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "创建期限卡")
public void testCreateTerm() {
CardTools Cardtools = new CardTools();
JSONArray activatePatternList = new JSONArray();
activatePatternList.add("PURCHASE");
activatePatternList.add("SPECIFIC_DATE");
activatePatternList.add("FIRST_USED");
List benefitList = new ArrayList();
//List itemList = new ArrayList();
//itemList.add("");
JSONObject Object = new JSONObject();
Object.put("identifier", RandomStringUtil.randomString(20));
Object.put("benefitType", "PERIOD");//期限卡
Object.put("targetScope", "GROUP_CLASS_AND_PERSONAL_COURSE");
Object.put("balance", "30");
Object.put("reserveLimitType", "UN_LIMIT");
Object.put("reserveLimitNumber", 0);
Object.put("defaultConsumeBalance", 1);
//Object.put("itemList", itemList);
Object.put("targetType", "COURSE");
Object.put("price","1");
benefitList.add(Object);
String title="期限-自动化会员卡"+RandomStringUtil.randomString(3);
JSONObject jsonObject = new JSONObject();
jsonObject.put("surfaceUrl", "https://image.xiaomaiketang.com/xm/internal/HpRiJpFnTC.png");//会员卡封面图片
jsonObject.put("surfaceCornerMark", "自动化标签");
jsonObject.put("title", title);//会员卡名称 不能重复要加东西 "次卡-自动化会员卡"+RandomStringUtil.randomString(3)
jsonObject.put("validPeriod", "3");//有效期-3天
jsonObject.put("activatePatternList", activatePatternList);//三种生效方式
jsonObject.put("sharePeopleLimit", "2");//共享人数
jsonObject.put("benefitList", benefitList);//使用权益
jsonObject.put("price", "1");//价格
jsonObject.put("underlinePrice", "10");//划线价
jsonObject.put("purchaseNumberLimit", "-1");//购买数量限制
jsonObject.put("xcxSaleStatus", "YES");//小程序是否售卖
jsonObject.put("creatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("shelfState", "YES");//卡启用状态
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("description", "{\"items\":[{\"content\":\"自动化创建的期限卡\",\"aspect\":\"\",\"type\":\"TEXT\"}]}");
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("commodityCardType","MEMBER_CARD");
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");//会员卡第一张
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].benefitList[0].benefitType"), "PERIOD", "创建的非期限卡");//类型为期限卡
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
Cardtools.modifyMemberCardShelfState(memberCardId,"NO");//停卡
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");//会员卡第一张
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].shelfState"), "NO", "停卡未成功");//类型为期限卡
}
}
......@@ -5,14 +5,23 @@ import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestDiscardManualDeduct extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
public String benefitId;
public String memberCardId = "";
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -20,46 +29,61 @@ public class TestDiscardManualDeduct extends XMBaseTest {
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("yj")
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "撤销手动扣次")
public void testDiscardManualDeduct() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch("NORMAL");
String benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].courseBenefit.id");//拿售卖记录第一张【生效中】售卖的会员卡的ID;
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张【生效中】会员卡的ID;
//JSONObject bodyJson1 =Cardtools.membercardfindDetailById(memberCardId);
//int num1 = Integer.parseInt(XMJSONPath.readPath(bodyJson1,"$.result.courseBenefit.leftPurchaseBalance"));
Cardtools.manualDeduct(benefitId,memberCardId);//手动扣次
Cardtools.fetchPageOfConsumeRecord(benefitId,memberCardId);
String consumeRecordId=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿第一条消耗记录
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].consumeType").equals("MANUAL_DEDUCT"),"操作手动扣次,消耗记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfPurchaseBalance").equals("-1.00"),"操作手动扣次,消耗次数");
//JSONObject bodyJson2 =Cardtools.membercardfindDetailById(memberCardId);
//int num2 = Integer.parseInt(XMJSONPath.readPath(bodyJson2,"$.result.courseBenefit.leftPurchaseBalance"));
//Assert.assertTrue(num1 == num2+1);//手动扣次后减少一次
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER","1.00"},//会员卡,扣整数
{"EXPERIENCE","1.00"},//体验卡,扣整数
{"DEPOSIT","0.01"}//储值卡,扣小数
};
}
@Test(description = "手动扣次-->撤销手动扣次",dataProvider = "dataProvider")
public void testDiscardManualDeduct(String cardType,String balance) throws InterruptedException {
//查询生效中的卡列表
cardTools.memberCardSearch(cardType,"NORMAL");
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
if(cardType=="DEPOSIT"){
//取最后一张导入有实充金额的卡,不然会取到0元卡,检验扣款金额时购买金额的次数不准确
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[-1].id");//拿售卖记录最后一张【生效中】会员卡的ID;
benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[-1].depositBenefit.id");//储值卡权益id;
}else{
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张【生效中】会员卡的ID;
benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].courseBenefit.id");//会员卡/体验卡权益id;
}
//先查询消耗记录的条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.total"));
//对卡操作手动扣次
cardTools.manualDeduct(benefitId,memberCardId,balance);
//获取手动扣次生成的消耗记录id
String consumeRecordId = XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId), "$.result.records[0].id");
//check卡的消耗记录新增1条记录,并且校验消耗记录的类型及扣除次数的准确性
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.total"))==num+1);
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.records[0].consumeType").equals("MANUAL_DEDUCT"),"操作手动扣次,消耗记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.records[0].changeOfPurchaseBalance").equals("-" + balance),"操作手动扣次,消耗次数");
//构建参数
JSONObject jsonObject = new JSONObject();
jsonObject.put("consumeRecordId",consumeRecordId);
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Cardtools.fetchPageOfConsumeRecord(benefitId,memberCardId);
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].consumeType").equals("DISCARD_MANUAL_DEDUCT"),"操作手动扣次,消耗记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfPurchaseBalance").equals("1.00"),"操作撤销手动扣次,消耗次数");
//调用请求
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//JSONObject bodyJson3 =Cardtools.membercardfindDetailById(memberCardId);
//int num3 = Integer.parseInt(XMJSONPath.readPath(bodyJson2,"$.result.courseBenefit.leftPurchaseBalance"));
//Assert.assertTrue(num1 == num3);//撤销后和原来一样的次数
//check卡的消耗记录再次新增1条记录,并且校验消耗记录的类型及扣除次数的准确性
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.total"))==num+2);
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.records[0].consumeType").equals("DISCARD_MANUAL_DEDUCT"),"操作手动扣次,消耗记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfConsumeRecord(benefitId,memberCardId),"$.result.records[0].changeOfPurchaseBalance").equals(balance),"操作手动扣次,消耗次数");
Thread.sleep(3000);
}
}
}
......@@ -11,7 +11,11 @@ import com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestFetchPageOfConsumeRecord extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -25,8 +29,7 @@ public class TestFetchPageOfConsumeRecord extends XMBaseTest {
}
@Test(description = "查看售卖记录-会员卡消耗记录")
public void testfetchPageOfConsumeRecord() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch("NORMAL");
cardTools.memberCardSearch("NORMAL");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID
String benefitId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].courseBenefit.id");
......
......@@ -11,7 +11,11 @@ import com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestFetchPageOfOperateRecord extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -25,8 +29,7 @@ public class TestFetchPageOfOperateRecord extends XMBaseTest {
}
@Test(description = "售卖记录详情-查看变动记录")
public void testFetchPageOfOperateRecord() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch("NORMAL");
cardTools.memberCardSearch("NORMAL");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID
JSONObject jsonObject = new JSONObject();
......
......@@ -31,7 +31,7 @@ public class TestFindHistoryDetailById extends XMBaseTest {
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID
Cardtools.fetchPageOfHistory(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].operateType"), "NEW", "第一条非新建的编辑记录");//断言第一条编辑记录-新建的编辑记录
//Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].operateType"), "NEW", "第一条非新建的编辑记录");//断言第一条编辑记录-新建的编辑记录
String id = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].snapshotId");//
......
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestMemberCardSuspend extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
public String memberCardId = "";
public String memberCardState;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_membercard_suspend")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER"},//会员卡
{"DEPOSIT"},//储值卡
{"EXPERIENCE"}//体验卡
};
}
@Test(description = "停用已售卡",dataProvider = "dataProvider")
public void testMemberCardSuspend(String cardType) {
//查询生效中的卡列表
cardTools.memberCardSearch(cardType,"NORMAL");
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
memberCardState=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].state");
//如果不是启用状态,则开启
if(memberCardState.equals("SUSPEND")){
cardTools.memberCardCancelSuspend(memberCardId);
}
//获取该卡的变动记录条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"));
JSONObject jsonObject = new JSONObject();
jsonObject.put("planRestoreDate", TimeUtils.getAfterDayDate(1));//恢复使用时间
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("memo","自动化停卡");
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//check 会员卡详情,查看状态是否是已停用状态
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.state"),"SUSPEND");
//check 变动记录新增1条数据
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"))==num+1);
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].operateType").equals("SUSPEND_CARD"),"操作停卡,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].remark").equals("自动化停卡"),"操作停卡,变动记录第一条的备注");
}
}
}
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestModifyExpireDate extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
public String memberCardId = "";
public String memberCardState;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_modifyExpireDate")
.setLoginUser(LoginAccount.GYM_PROD)
.setTerminal(Terminal.B);
dal.setCase_owner("xyy")
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER"},//会员卡
{"DEPOSIT"},//储值卡
{"EXPERIENCE"}//体验卡
};
}
@Test(description = "修改卡有效期",dataProvider = "dataProvider")
public void testModifyExpireDate(String cardType) {
//查询生效中的卡列表
cardTools.memberCardSearch(cardType,"NORMAL");
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
memberCardState=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].state");
//如果不是启用状态,则开启
if(memberCardState.equals("SUSPEND")){
cardTools.memberCardCancelSuspend(memberCardId);
}
//获取该卡的变动记录条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"));
//构建接口参数
JSONObject jsonObject = new JSONObject();
jsonObject.put("confirm",false);
jsonObject.put("expireDate", TimeUtils.getAfterDayDate(7));//修改到期时间:当前时间后7天
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("memo","自动化修改卡有效期");
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//check 会员卡详情,卡到期时间为当前时间后7天
Assert.assertEquals(XMJSONPath.readPath(cardTools.memberCardFindDetailById(memberCardId),"$.result.expireTime"),String.valueOf(TimeUtils.getAfterDayDate(7)));
//check 变动记录新增1条数据
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"))==num+1);
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].operateType").equals("CHANGE_EFFECTIVE_DATE"),"操作修改有效期,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].remark").equals("自动化修改卡有效期"),"操作修改有效期,变动记录第一条的备注");
}
}
}
......@@ -2,6 +2,8 @@ package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.clue.MemberTools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
......@@ -10,9 +12,25 @@ import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestModifySharers extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Resource(name = "memberTools")
MemberTools memberTools;
public String memberCardId = "";
public String sharePeopleLimit;
public String memberId;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -24,55 +42,73 @@ public class TestModifySharers extends XMBaseTest {
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "添加移除共享人")
public void testmodifySharers() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch("NORMAL");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID;
JSONArray sharerIds=new JSONArray();
sharerIds.add("1807334217474027521");
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER"},//会员卡
{"DEPOSIT"}//储值卡
};
}
@Test(description = "添加共享人-->移除共享人",dataProvider = "dataProvider")
public void testModifySharers(String cardType) {
//查询生效中的卡列表
cardTools.memberCardSearch(cardType,"NORMAL");
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
// sharePeopleLimit = Integer.parseInt(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].sharePeopleLimit"));
//如果共享人数=0,设置共享人=2
// if(sharePeopleLimit == 0){
// cardTools.memberCardCancelSuspend(memberCardId);//进行卡编辑,共享人设置=2
// }
//获取该卡的变动记录条数
int num = Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"));
//获取该卡当前的共享人数
int sharerNum = XMJSONPath.getJSONArrayByReadPath(cardTools.memberCardFindDetailById(memberCardId), "$.result.sharers").size();
//获取共享人列表里其中是「流失会员」的会员id
memberId = trainingTools.searchTargerMember("自动化流失会员");
Assert.assertEquals(XMJSONPath.readPath(memberTools.findStudioMemberDetail(memberId), "$.result.status"),"HISTORY");
//查询该会员名下卡数据
cardTools.getUserMemberCardList(memberId,cardType);
int cardNum = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size();
//构建接口参数
JSONArray sharerIds = new JSONArray();
sharerIds.add(memberId);
JSONObject jsonObject = new JSONObject();
jsonObject.put("sharerIds",sharerIds);
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("sharerIds", sharerIds);
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
//调用请求
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Cardtools.membercardfindDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.sharers.id"),"[\"1807334217474027521\"]","添加共享人后,核对会员卡有对应共享人");
}
@Test(description = "移除移除共享人")
public void testmodifySharers1() {
CardTools Cardtools = new CardTools();
Cardtools.membercardsearch("NORMAL");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");//拿售卖记录第一张会员卡的ID;
//JSONArray sharerIds=new JSONArray();
//sharerIds.add();
JSONObject jsonObject = new JSONObject();
//jsonObject.put("sharerIds",sharerIds);//空共享人
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
//check 会员卡详情,共享人新增1条
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(cardTools.memberCardFindDetailById(memberCardId), "$.result.sharers").size()==sharerNum+1);
//check 变动记录新增1条数据
Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.total"))==num+1);
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].operateType").equals("CHANGE_SHARER"),"操作添加共享人,变动记录第一条操作类型");
Assert.assertTrue(XMJSONPath.readPath(cardTools.fetchPageOfOperateRecord(memberCardId),"$.result.records[0].content").contains("添加"),"操作添加共享人,变动记录第一条的备注");
//check 会员状态从流失->正式
Assert.assertEquals(XMJSONPath.readPath(memberTools.findStudioMemberDetail(memberId), "$.result.status"),"NORMAL");
//check 会员已购卡新增1张
cardTools.getUserMemberCardList(memberId,cardType);
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size()==cardNum+1);
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Cardtools.membercardfindDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.sharers.id"),"[]","移除共享人后,核对会员卡下无共享人");
//数据清理:移除共享人
cardTools.modifySharers(memberCardId);
//check 会员状态从正式->流失
Assert.assertEquals(XMJSONPath.readPath(memberTools.findStudioMemberDetail(memberId), "$.result.status"),"HISTORY");
}
}
}
......@@ -9,6 +9,7 @@ import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
......@@ -16,6 +17,9 @@ import javax.annotation.Resource;
public class TestModifyShelfState extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
public String memberCardId = "";
public String shelfState;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -27,13 +31,20 @@ public class TestModifyShelfState extends XMBaseTest {
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "停用会员卡")
public void testmodifyShelfState() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = "";
String shelfState;
//先检查次下列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER_CARD"},//会员卡
{"DEPOSIT_CARD"},//储值卡
{"EXPERIENCE_CARD"}//体验卡
};
}
@Test(description = "停用卡",dataProvider = "dataProvider")
public void testModifyShelfState_NO(String cardType) {
cardTools.fetchPageOfMemberCard(cardType);
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
......@@ -58,12 +69,9 @@ public class TestModifyShelfState extends XMBaseTest {
}
}
@Test(description = "启用会员卡")
public void testmodifyShelfState1() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = "";
String shelfState;
@Test(description = "启用卡",dataProvider = "dataProvider")
public void testModifyShelfState_YES(String cardType) {
cardTools.fetchPageOfMemberCard(cardType);
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
......
......@@ -9,9 +9,18 @@ import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import javax.annotation.Resource;
public class TestModifyXcxSaleState extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
public String memberCardId = "";
public String xcxSaleState;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -23,27 +32,29 @@ public class TestModifyXcxSaleState extends XMBaseTest {
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "关闭会员卡售卖")
public void testmodifyXcxSaleState() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = "";
String xcxSaleStatus;
//先检查次下列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
@DataProvider
public Object[][] dataProvider(){
return new Object[][]{
{"MEMBER_CARD"},//会员卡
{"DEPOSIT_CARD"},//储值卡
{"EXPERIENCE_CARD"}//体验卡
};
}
@Test(description = "关闭卡售卖",dataProvider = "dataProvider")
public void testModifyXcxSaleState_NO(String cardType) {
cardTools.fetchPageOfMemberCard(cardType);
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的售卖状态,想停用,要保证卡的状态目前就是停售状态
xcxSaleStatus=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].xcxSaleStatus");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
xcxSaleState = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].xcxSaleState");
//如果不是启用状态,则开启
if(xcxSaleStatus.equals("NO")){
Cardtools.modifyXcxSaleState(memberCardId,"YES");
if (xcxSaleState.equals("NO")) {
cardTools.modifyXcxSaleState(memberCardId, "YES");
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("xcxSaleState","NO");
jsonObject.put("xcxSaleState", "NO");
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
......@@ -51,40 +62,37 @@ public class TestModifyXcxSaleState extends XMBaseTest {
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//check 会员卡详情,查看状态是否是下架状态
Cardtools.fetchDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.xcxSaleStatus"),"NO","操作停用会员卡后,查看卡详情,卡启用状态没变更为NO");
cardTools.fetchDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.xcxSaleStatus"), "NO", "操作关闭小程序售卖后,查看卡详情,卡售卖状态没变更为NO");
}
}
@Test(description = "启用会员卡")
public void testmodifyShelfState1() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = "";
String xcxSaleStatus;
@Test(description = "开启卡售卖", dataProvider = "dataProvider")
public void testModifyXcxSaleState_YES(String cardType){
cardTools.fetchPageOfMemberCard(cardType);
//先检查列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
xcxSaleStatus = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].xcxSaleStatus");
if (xcxSaleStatus.equals("YES")) {
Cardtools.modifyXcxSaleState(memberCardId,"NO");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
xcxSaleState = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].xcxSaleState");
//如果不是启用状态,则开启
if (xcxSaleState.equals("NO")) {
cardTools.modifyXcxSaleState(memberCardId, "YES");
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("xcxSaleState", "YES");
jsonObject.put("xcxSaleState", "NO");
jsonObject.put("memberCardId", memberCardId);
jsonObject.put("brandId", xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId", xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
//check 会员卡详情,查看状态是否是上架状态
Cardtools.fetchDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.xcxSaleStatus"), "YES", "操作启用会员卡后,查看卡详情,卡启用状态没变更为YES");
//check 会员卡详情,查看状态是否是下架状态
cardTools.fetchDetailById(memberCardId);
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.xcxSaleStatus"), "NO", "操作启用小程序售卖后,查看卡详情,卡售卖状态没变更为YES");
}
}
}
\ No newline at end of file
......@@ -39,10 +39,19 @@ public class TestTenantMemberCard_update extends XMBaseTest {
e.printStackTrace();
}
Cardtools.memberCardCreate("次卡-自动化会员卡"+ RandomStringUtil.randomString(3));//创建随机的名的次卡
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
Cardtools.fetchPageOfMemberCard("MEMBER_CARD");
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
Cardtools.fetchDetailById(memberCardId);
String id = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.benefitList[0].id");
String identifier = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.benefitList[0].identifier");
JSONObject bodyJson2 =Cardtools.fetchPageOfHistory(memberCardId);
int count = Integer.parseInt(XMJSONPath.readPath(bodyJson2,"$.result.total"));
......@@ -56,7 +65,8 @@ public class TestTenantMemberCard_update extends XMBaseTest {
//List itemList = new ArrayList();
//itemList.add("");
JSONObject Object = new JSONObject();
Object.put("identifier", xmAppApi.getLoginInfo().getUser());
Object.put("id", id);
Object.put("identifier", identifier);
Object.put("benefitType", "BALANCE");
Object.put("targetScope", "GROUP_CLASS_AND_PERSONAL_COURSE");
Object.put("balance", "30");
......
......@@ -231,8 +231,9 @@ public class TestAddMemberReserve extends BaseTestImpl {
public void testAddMemberReserve3(){
// 修改课次人数上限为1
groupScheduleTools.editGroupSchedule(scheduleId,startTime,xmAppApi.getLoginInfo().getAdminId(),1,1);
try {
Thread.sleep(2000);
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
......@@ -242,7 +243,11 @@ public class TestAddMemberReserve extends BaseTestImpl {
Random random = new Random();
int bookingSeatCount = random.nextInt(10)+1; // 席位
ruleTools.saveGroupBookingRules(id,false,bookingSeatCount,true,true,random.nextInt(30)+10,true,random.nextInt(100)+10,random.nextInt(5)+1,true,random.nextInt(100)+10,"minutes",true,random.nextInt(100)+10,"minutes");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 新学员 购买卡
String memberId2 = "";
// 查询存量的学员没有则创建学员
......
......@@ -26,9 +26,10 @@ public class ApiModule {
public static String Polar_EleContract="polar_eleContract";//训练营活动
public static String Polar_Coupon="polar_coupon";//优惠券
public static String Lunar_Coupon="lunar_coupon";//小程序优惠券
public static String Polar_Reserve="polar_reserve";//预约
public static String Lunar_Reserve="lunar_reserve";//预约
public static String Lunar_Reserve="lunar_reserve";//小程序预约
public static String Lunar_User="lunar_user";//预约
public static String Lunar_Card ="lunar_card";//小程序会员卡
public static String Polar_Data ="polar_data";//数据中心
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment