Commit 203d26a1 by DuJunLi

增加会员卡开卡case,优化会员卡相关case代码

parent edc2b7a3
......@@ -6,6 +6,7 @@ import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.CommUtil;
import com.xiaomai.utils.RandomStringUtil;
import com.xiaomai.utils.TimeUtils;
import com.xiaomai.utils.XMBaseTest;
......@@ -371,6 +372,13 @@ public class OrderTools extends XMBaseTest {
card.put("cardChange",cardChange);
card.put("deductionAmount",deductionAmount);//优惠金额(元)
card.put("activatePattern",activatePattern);
if(activatePattern.equals("FIRST_USED")){ //如果选择生效方式为 首次使用生效
card.put("maxIdlePeriod",30); //最晚生效天数
card.put("giftQuantity",2);//赠送2次
}
if(activatePattern.equals("SPECIFIC_DATE")){//选择指定日期生效
card.put("activateDate", CommUtil.oneKeyGetAddDay(7));//当前时间+7天
}
card.put("commodityCardType",commodityCardType);
jsonObject.put("card",card);
......
package com.xiaomai.cases.polar.memberCard;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.cases.polar.member.Tools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.utils.XMBaseTest;
import com.xiaomai.utils.XMJSONPath;
import org.testng.annotations.BeforeClass;
import javax.annotation.Resource;
import java.math.BigDecimal;
/**
* @author adu
* data 2024/7/24 10:15
*/
public class GetMemberCardBaseInfoForSign extends BaseTestImpl {
String memberId = "";
String memberCardId="";
@Resource(name = "tools")
Tools tools;
@Resource(name = "orderTools")
OrderTools orderTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@Resource(name = "cardTools")
CardTools cardTools;
String shelfState="";
BigDecimal quantity; //可用次数
float price; //价格
int validPeriod; //有效期
String latestSnapshotId;//最近的快照ID
@BeforeClass
public void beforeTest() {
super.beforeTest();
//搜索目标会员
String phone = "17682302508";
memberId = trainingTools.searchTargerMember(phone);
if (memberId.isEmpty()) {
memberId = tools.create("测试机吴彦祖", phone).getString("result");
}
//搜索目标会员卡-次卡
String title = "嘟嘟创建的会员卡-次卡";
cardTools.doMemberCardcommonSearch(title);
int total = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result").size();
if (total > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].id");
shelfState = XMJSONPath.readPath(dataApi.getApi_response(), "$.result[0].shelfState");//YES,上架状态:YES
if (shelfState.equals("NO")) {
cardTools.modifyMemberCardShelfState(memberCardId, "YES");
}
} else {
//创建一个新的会员卡
memberCardId = cardTools.oneKeyCreateMembershipCardNumberCard(title);
}
//获取会员卡详情
cardTools.fetchDetailById(memberCardId);
quantity=BigDecimal.valueOf(Long.valueOf(XMJSONPath.readPath(dataApi.getApi_response(),"$.result.benefitList[0].balance")));
price=Float.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.price"));
validPeriod=Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.validPeriod"));
latestSnapshotId=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.latestSnapshotId");
//给会员签单-购买会员卡
orderTools.signOrder(memberCardId,latestSnapshotId,quantity,price,validPeriod,
latestSnapshotId,0,"FIRST_USED","MEMBER_CARD",
memberId,price,price,"1");
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.finance.order.OrderTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import com.xiaomai.utils.XMJSONPath;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* 售卖记录详情-会员卡开卡
*
* @author adu
* data 2024/7/24 14:43
*/
public class TestActivateMemberCard extends GetMemberCardBaseInfoForSign {
@Resource(name = "cardTools")
CardTools cardTools;
@Resource(name = "orderTools")
OrderTools orderTools;
@BeforeClass
public void beforeTest() {
setTestInfo(ApiModule.Polar_Card, "API_activateMemberCard", LoginAccount.ADU_PROD, Terminal.B, "adu");
super.beforeTest();
}
@Test(description = "操作会员卡开卡")
public void testActivateMemberCard() {
cardTools.getUserMemberCardList(memberId);
String memberAccountCardId="";
String state;
int count= XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result").size();
if(count>0){
memberAccountCardId=XMJSONPath.readPath(dataApi.getApi_response(),"$.result[0].id");
state=XMJSONPath.readPath(dataApi.getApi_response(),"$.result[0].state");
if(state.equals("UN_ACTIVE")){
//操作开卡
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.benefitList[0].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.refundOrder(2,memberAccountCardId,quantity,price,"MEMBER_CARD",
memberId,price,price,"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"),"会员退卡后生成消耗记录不是退卡");
//check 消耗次数
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfPurchaseBalance"),"-60.00","购买次数变动不是-60");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfUsablePurchaseBalance"),"-60.00","可用次数变动不是-2");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfGiveBalance"),"-2.00","赠送次数变动不是-60");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfUsableGiveBalance"),"-2.00","可用赠送次数变动不是-2");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].changeOfBenefitAmount"),"-398.00","变动金额不是-398.00");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftBenefitAmount"),"0.00","剩余金额不是0.00");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftPurchaseBalance"),"0.00","剩余购买次数不是0");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftUsablePurchaseBalance"),"0.00","剩余可用次数不是0");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftGiveBalance"),"0.00","剩余赠送次数不是0");
Assert.assertEquals( XMJSONPath.readPath(dataApi.getApi_response(),"$.result.records[0].leftUsableGiveBalance"),"0.00","剩余可用赠送次数不是0");
}
}
}
}
\ No newline at end of file
package com.xiaomai.cases.polar.memberCard;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.cases.polar.clue.MemberTools;
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;
public class TestMemberCardSearch extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -26,25 +28,23 @@ public class TestMemberCardSearch extends XMBaseTest {
.setCase_name(Thread.currentThread().getStackTrace()[1].getFileName().split("\\.")[0]);
super.beforeTest();
}
@Test(description = "会员卡列表搜索")
@Test(description = "会员卡列表根据卡名称-全局搜索")
public void testMemberCardcommonSearch() {
CardTools Cardtools = new CardTools();
Cardtools.memberCardCreate("次卡-自动化会员卡"+ RandomStringUtil.randomString(3));//创建随机的名的次卡
Cardtools.fetchPageOfMemberCard();
String title = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].title");
String memberCardName="次卡-自动化会员卡"+ RandomStringUtil.randomString(8);
cardTools.memberCardCreate(memberCardName);//创建随机的名的次卡
cardTools.fetchPageOfMemberCard();//创建成功后查询会员卡列表(此处也可以不查询)
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(),"$.result.records").size()>=1,"创建会员卡成功后,会员卡列表数据为空");
Assert.assertEquals(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].title"),memberCardName,"创建成功后,列表中第一条数据不是显示的该卡");
JSONObject jsonObject = new JSONObject();
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("title",title);//这里需要搜索新创建的会员卡
jsonObject.put("title",memberCardName);//这里需要搜索新创建的会员卡
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
xmAppApi.doRequest(RequestType.JSON, params, jsonObject.toJSONString(), headers).assetsSuccess(true);
Assert.assertTrue(XMJSONPath.getJSONArrayByReadPath(xmAppApi.getApi_response(),"$.result").size()==1,"精确搜索后发现会搜索到的数据不等于1");
Assert.assertTrue(XMJSONPath.readPath(xmAppApi.getApi_response(),"$.result[0].title").equals(memberCardName),"精确搜索后发现会员卡名称不匹配");
}
}
......@@ -7,10 +7,15 @@ 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 javax.annotation.Resource;
public class TestModifyShelfState extends XMBaseTest {
@Resource(name = "cardTools")
CardTools cardTools;
@BeforeMethod
public void beforeTest(){
xmAppApi.setApiModule(ApiModule.Polar_Card)
......@@ -26,43 +31,60 @@ public class TestModifyShelfState extends XMBaseTest {
public void testmodifyShelfState() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
String memberCardId = "";
String shelfState;
//先检查次下列表有没有数据,有数据才会执行下面的点代码(如果是个空机构,肯定不会被执行,想从存量数据中获取,需要自己先造个数据)
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
//取出第一个数据后,要check下会员卡的启用状态,想停用,要保证卡的状态目前就是启用状态
shelfState=XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].shelfState");
//如果不是启用状态,则开启
if(shelfState.equals("NO")){
cardTools.modifyMemberCardShelfState(memberCardId,"YES");
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState","NO");
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("shelfState", "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.shelfState"),"NO","操作停用会员卡后,查看卡详情,卡启用状态没变更为NO");
}
}
@Test(description = "启用会员卡")
public void testmodifyShelfState1() {
CardTools Cardtools = new CardTools();
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
String memberCardId = "";
String shelfState;
int listDatas = XMJSONPath.getJSONArrayByReadPath(dataApi.getApi_response(), "$.result.records").size();
if (listDatas > 0) {
memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
shelfState = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].shelfState");
if (shelfState.equals("YES")) {
cardTools.modifyMemberCardShelfState(memberCardId, "NO");
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("shelfState","YES");
jsonObject.put("memberCardId",memberCardId);
jsonObject.put("brandId",xmAppApi.getLoginInfo().getBrandId());
jsonObject.put("studioId",xmAppApi.getLoginInfo().getStudioId());
jsonObject.put("operatorId",xmAppApi.getLoginInfo().getAdminId());
jsonObject.put("shelfState", "YES");
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.shelfState"), "YES", "操作启用会员卡后,查看卡详情,卡启用状态没变更为YES");
}
}
}
......@@ -28,8 +28,6 @@ public class TestModifyXcxSaleState extends XMBaseTest {
Cardtools.fetchPageOfMemberCard();
String memberCardId = XMJSONPath.readPath(dataApi.getApi_response(), "$.result.records[0].id");
JSONObject jsonObject = new JSONObject();
jsonObject.put("xcxSaleState","NO");
......@@ -37,9 +35,6 @@ public class TestModifyXcxSaleState extends XMBaseTest {
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);
}
......
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