Commit 28c3e28a by xyy

新增C端储值卡case

parent def973fc
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",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.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",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.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();
}
}
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;
......
......@@ -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,7 +14,6 @@ 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;
......
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.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;
DataUserInfo info = new DataUserInfo();
public String memberId;
public String cardId;
public String cardName;
public String orderId;
@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","10",info);
}
//获取会员信息
memberId = userTools.getMemberInfo().getString("memberId");
//查询会员名下的卡包数量
int cardNum = minCardTools.countMyUsableCard(memberId);
//查询会员名下的订单数量
int orderNum = XMJSONPath.getJSONArrayByReadPath(orderCTools.pageOrder(memberId), "$.result.records").size();
//获取1张0元储值卡id
cardId = minCardTools.fetchOnSaleMemberCard("0元储值卡","DEPOSIT_CARD").getJSONObject("result").getJSONArray("records").getJSONObject(0).getString("id");
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",cardId);
jsonObject.put("memberId",memberId);
jsonObject.put("memo","自动化C端购买储值卡");
jsonObject.put("receivableAmount",0);
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
orderId = XMJSONPath.readPath(xmAppApi.getBodyInJSON(), "$.result");
//check该订单的状态及名称
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(orderId),"$.result.state"),"PAID");
Assert.assertEquals(XMJSONPath.readPath(orderCTools.getDetail(orderId),"$.result.voucherItems[0].purchaseDepositSkuAttr.skuName"),cardName);
String skuId = XMJSONPath.readPath(orderCTools.getDetail(orderId),"$.result.voucherItems[0].skuId");
Thread.sleep(1000);
//check我的订单列表数据+1
// Assert.assertTrue(Integer.parseInt(XMJSONPath.readPath(orderCTools.pageOrder(memberId),"$.result.total") )== orderNum + 1);
//check我的卡包数据+1
Thread.sleep(1000);
Assert.assertTrue(minCardTools.countMyUsableCard(memberId) == cardNum + 1);
//check我的卡包里有该生效中的卡
Thread.sleep(1000);
JSONObject object = minCardTools.getMyMemberCardList(true,memberId,"DEPOSIT");
Assert.assertEquals(XMJSONPath.readPath(object,"$.result[0].tenantMemberCardId"),skuId);
}
}
......@@ -39,7 +39,7 @@ public class CardTools extends XMBaseTest {
//List itemList = new ArrayList();
//itemList.add("");
JSONObject Object = new JSONObject();
Object.put("identifier", dataApi.getLoginInfo().getUser());
Object.put("identifier", RandomStringUtil.randomString(20));
Object.put("benefitType", "BALANCE");
Object.put("targetScope", "GROUP_CLASS_AND_PERSONAL_COURSE");
Object.put("balance", "30");
......@@ -76,6 +76,60 @@ public class CardTools extends XMBaseTest {
return dataApi.getBodyInJSON();
}
/**
* @param
* @description:创建储值卡
* @author: xyy
**/
public JSONObject depositCardCreate(String title,String price,String balance, DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_create")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONArray activatePatternList = new JSONArray();
activatePatternList.add("PURCHASE");
JSONArray paymentScenarioList = new JSONArray();
paymentScenarioList.add("ALL");
JSONArray benefitList = new JSONArray();
JSONObject benefitObject = new JSONObject();
benefitObject.put("identifier", RandomStringUtil.randomString(20));
benefitObject.put("balance", balance);//赠送金额
benefitObject.put("benefitType", "STORED_VALUE");
benefitObject.put("price",price);//实充金额
benefitObject.put("targetType", "PAYMENT");
benefitObject.put("targetScope", "PAYMENT_SPECIFIC_SCENARIO");
benefitObject.put("paymentScenarioList",paymentScenarioList);
benefitObject.put("accountType","DEPOSIT");
benefitList.add(benefitObject);
JSONObject jsonObject = new JSONObject();
jsonObject.put("surfaceUrl", "https://image.xiaomaiketang.com/xm/internal/BHabA5WaNF.png");//会员卡封面图片
jsonObject.put("surfaceCornerMark", "自动化标签");
jsonObject.put("title", title);//卡名称 不能重复要加东西 "次卡-自动化会员卡"+RandomStringUtil.randomString(3)
jsonObject.put("validPeriod", "10");//有效期-10天
jsonObject.put("sharePeopleLimit", "10");//共享人数
jsonObject.put("price", price);//价格
jsonObject.put("purchaseNumberLimit", "-1");//购买数量限制
jsonObject.put("xcxSaleStatus", "YES");//小程序是否售卖
jsonObject.put("creatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("shelfState", "YES");//卡启用状态
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("description", "{\"items\":[{\"content\":\"自动化创建的卡\",\"aspect\":\"\",\"type\":\"TEXT\"}]}");
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
jsonObject.put("benefitList", benefitList);//使用权益
jsonObject.put("commodityCardType", "DEPOSIT_CARD");
jsonObject.put("activatePatternList", activatePatternList);//三种生效方式
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 快速创建会员卡次卡-存量数据: 嘟嘟创建的会员卡-次卡
......@@ -205,6 +259,30 @@ public class CardTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* 通过搜索栏查询会员卡名称获取卡
* @param commodityCardType
* @param title
* @param dataUserInfos
* @return
*/
public JSONObject tenantMemberCardCommonSearch(String commodityCardType,String title,DataUserInfo... dataUserInfos) {
dataApi.setApiModule(ApiModule.Polar_Card)
.setApiName("API_tenantMemberCard_commonSearch")
.setTerminal(Terminal.B);
super.beforeDataRequest(dataUserInfos);
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId", dataApi.getLoginInfo().getBrandId());
jsonObject.put("studioId", dataApi.getLoginInfo().getStudioId());
jsonObject.put("commodityCardType",commodityCardType);
jsonObject.put("title", title);//搜索的卡名
jsonObject.put("operatorId", dataApi.getLoginInfo().getAdminId());
dataApi.doRequest(RequestType.JSON, dataparams, jsonObject.toJSONString(), dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @param
* @description:会员卡售卖记录
......
......@@ -56,7 +56,7 @@ public class TestTenantMemberCard_update extends XMBaseTest {
//List itemList = new ArrayList();
//itemList.add("");
JSONObject Object = new JSONObject();
Object.put("identifier", xmAppApi.getLoginInfo().getUser());
Object.put("identifier", RandomStringUtil.randomString(20));
Object.put("benefitType", "BALANCE");
Object.put("targetScope", "GROUP_CLASS_AND_PERSONAL_COURSE");
Object.put("balance", "30");
......
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