Commit f43df321 by xuyamei

新增训练营活动case

parent 23a17183
package com.xiaomai.cases.lunar.training;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.order.OrderCTools;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.finance.order.OrderTools;
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 org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.training
* @Author: xuyamei
* @CreateTime: 2024-07-31 14:55
* @Description: 购买存量的训练营
* @Version: 1.0
*/
public class TestPurchaseCamp extends BaseTestImpl {
@Resource(name = "trainingCTools")
TrainingCTools trainTools;
@Resource(name = "userTools")
UserTools userTools;
OrderCTools orderCTools = new OrderCTools();
@Resource(name = "orderTools")
OrderTools orderTools;
private String orderId = "";
@BeforeMethod
@Override
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Training,"API_purchaseCamp", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"xym");
super.beforeTest();
}
@Test
public void testPurchaseCamp(){
// 获取存量训练营活动
String id = trainTools.getAppliableCampList("存量训练营C端报名活动").getJSONObject(0).getString("id");
// 获取的微信用户
String memberId = userTools.getMemberInfo().getString("memberId");
JSONObject body = new JSONObject();
body.put("campId", id);
body.put("memberId", memberId);
body.put("memo", "");
body.put("receivableAmount", "0.00");
body.put("studioId", xmAppApi.getLoginInfo().getStudioId());
body.put("objectId", RandomStringUtil.randomString(16));
xmAppApi.doRequest(RequestType.JSON,params, body.toString(), headers).assetsSuccess(true);
orderId = xmAppApi.getBodyInJSON().getString("result");
// check 1:订单详情
JSONArray voucherItems = orderCTools.getDetail(orderId).getJSONObject("result").getJSONArray("voucherItems");
String[] keys = new String[]{"skuId","skuType"};
String[] expect = new String[]{id,"TRAINING_CAMP"};
for (int i = 0; i < keys.length; i++) {
Assert.assertTrue(voucherItems.getJSONObject(0).getString(keys[i]).equals(expect[i]) );
}
// check 2:查询我的训练营列表
JSONArray listMyTrainingCamp = trainTools.listMyTrainingCamp(memberId);
keys = new String[]{"tradeOrderId","accountType"};
expect = new String[]{orderId,"TRAINING"};
// 生成训练营账户的id
String accountId = "";
for (int i = 0; i < listMyTrainingCamp.size(); i++){
if (listMyTrainingCamp.getJSONObject(i).getString("tenantMemberCardId").equals(id)){
for (int j = 0; j < keys.length; j++){
Assert.assertTrue(listMyTrainingCamp.getJSONObject(i).getString(keys[j]).equals(expect[j]));
accountId = listMyTrainingCamp.getJSONObject(i).getString("id");
}
}
}
// check 3:获取我的训练营详情 以及和购买的训练营内容是否一致
JSONObject findMyTrainingCampDetailById =trainTools.findMyTrainingCampDetailById(accountId);
JSONObject findDetailById = trainTools.findDetailById(id,memberId);
keys = new String[]{"id","studioId","title","courseId","openStartDate","openEndDate","totalClassHour","price","trainerIds"};
for (int i = 0; i < keys.length; i++){
Assert.assertTrue(findMyTrainingCampDetailById.getJSONObject("trainingCampInfo").getString(keys[i]).equals(findDetailById.getString(keys[i])));
}
// check 3.2 验证我的训练营订单id
Assert.assertTrue(findMyTrainingCampDetailById.getString("tradeOrderId").equals(orderId));
}
@Test(description = "作废订单数据,为了下次再购买",priority = 2)
public void delOrderData(){
DataUserInfo dataUserInfo = new DataUserInfo();
dataUserInfo.setTerminal(Terminal.B);
dataUserInfo.setLoginUser(LoginAccount.GYM_PROD);
orderTools.discard(orderId,"重复录入","作废训练营订单",dataUserInfo);
}
}
package com.xiaomai.cases.lunar.training;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.lunar.user.UserTools;
import com.xiaomai.cases.polar.training.TrainingTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.training
* @Author: xuyamei
* @CreateTime: 2024-07-31 15:03
* @Description: 小程序训练营详情
* @Version: 1.0
*/
public class TestTrainingFindDetailById extends BaseTestImpl {
@Resource(name = "trainingCTools")
TrainingCTools trainingCTools;
@Resource(name = "userTools")
UserTools userTools;
@Resource(name = "trainingTools")
TrainingTools trainingTools;
@BeforeMethod
@Override
public void beforeTest(){
setTestInfo(ApiModule.Lunar_Training,"API_findDetailById", LoginAccount.GYM_MINIAPPC, Terminal.minApp,"xym");
super.beforeTest();
}
@Test
public void testTrainingFindDetailById(){
// 获取微信学员
String memberId = userTools.getMemberInfo().getString("memberId");
// 获取训练营活动
String id = trainingCTools.getAppliableCampList("量训练营C端报名活动").getJSONObject(0).getString("id");
JSONObject findDetailById = trainingCTools.findDetailById(id,memberId);
String[] keys = {"id","studioId","state","title","courseId","openStartDate","openEndDate","totalClassHour","price","trainerIds"};
trainingTools.findTrainingDetailById(id);
JSONObject findTrainingDetailById = dataApi.getBodyInJSON().getJSONObject("result");
for (int i = 0; i < keys.length; i++){
Assert.assertEquals(findDetailById.getString(keys[i]),findTrainingDetailById.getString(keys[i]),"训练营详情返回值与B端对比内容不一致");
}
}
}
package com.xiaomai.cases.lunar.training;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.client.DataUserInfo;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import org.springframework.stereotype.Component;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.lunar.training
* @Author: xuyamei
* @CreateTime: 2024-07-31 14:48
* @Description: 训练营相关接口
* @Version: 1.0
*/
@Component("trainingCTools")
public class TrainingCTools extends BaseTestImpl {
public void setUP(String apiName, DataUserInfo... userInfo) {
dataApi.setApiModule(ApiModule.Lunar_Training)
.setApiName(apiName)
.setTerminal(Terminal.minApp);
super.beforeDataRequest(userInfo);
}
/**
* @description: 查询在售训练营
* @author: xuyamei
* @date: 2024/7/31 16:55
* @param title:训练营名称
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray getAppliableCampList(String title) {
setUP("API_fetchAppliableCampList");
JSONObject body = new JSONObject();
body.put("current",0);
body.put("size",10);
body.put("title",title);
body.put("brandId",dataApi.getLoginInfo().getBrandId());
body.put("studioId",dataApi.getLoginInfo().getStudioId());
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("records");
}
/**
* @description:查询训练营详情
* @author: xuyamei
* @date: 2024/7/31 16:55
* @param trainingCampId 训练营活动id
* @param memberId 会员id
* @return: com.alibaba.fastjson.JSONObject
**/
public JSONObject findDetailById(String trainingCampId,String memberId) {
setUP("API_findDetailById");
JSONObject body = new JSONObject();
body.put("trainingCampId",trainingCampId);
body.put("memberId",memberId);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
/**
* @description:我的训练营列表
* @author: xuyamei
* @date: 2024/7/31 16:56
* @param memberId 会员id
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray listMyTrainingCamp(String memberId) {
setUP("API_listMyTrainingCamp");
JSONObject body = new JSONObject();
body.put("memberId",memberId);
body.put("usable",true);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONArray("result");
}
/**
* @description:获取我的训练营详情
* @author: xuyamei
* @date: 2024/7/31 17:06
* @param id
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONObject findMyTrainingCampDetailById(String id) {
setUP("API_findMyTrainingCampDetailById");
JSONObject body = new JSONObject();
body.put("id",id);
dataApi.doRequest(RequestType.JSON,dataparams,body.toString(),dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON().getJSONObject("result");
}
}
...@@ -201,6 +201,33 @@ public class CampScheduleTools extends XMBaseTest { ...@@ -201,6 +201,33 @@ public class CampScheduleTools extends XMBaseTest {
} }
/** /**
* @description: 查询训练营排课课表
* @author: xuyamei
* @date: 2024/7/31 10:48
* @param startDate 开始日期
* @param endDate 结束日期
* @param campId :训练营活动id
* @return: com.alibaba.fastjson.JSONArray
**/
public JSONArray getCampScheduleTable(Long startDate, Long endDate,String campId) {
setUP("API_getCampScheduleTable");
JSONObject body = new JSONObject();
body.put("operatorId", dataApi.getLoginInfo().getAdminId());
body.put("studioId", dataApi.getLoginInfo().getStudioId());
body.put("brandId", dataApi.getLoginInfo().getBrandId());
body.put("startDate", startDate);
body.put("endDate", endDate);
body.put("campId", campId);
dataApi.doRequest(RequestType.JSON, dataparams, body.toString(), dataheadrs).assetsSuccess(true);
if (Integer.valueOf(XMJSONPath.readPath(dataApi.getApi_response(), "$.result.totalCount")) > 0) {
return dataApi.getBodyInJSON().getJSONObject("result").getJSONArray("timetableGroups").getJSONObject(0).getJSONArray("timetableList");
}
else {
return null;
}
}
/**
* 根据时间和星期查询有效循环次数 * 根据时间和星期查询有效循环次数
* @param startDate * @param startDate
* @param endDate * @param endDate
......
...@@ -33,6 +33,7 @@ public class ApiModule { ...@@ -33,6 +33,7 @@ public class ApiModule {
public static String Polar_Data ="polar_data";//数据中心 public static String Polar_Data ="polar_data";//数据中心
public static String Lunar_Order="lunar_order";//C端订单 public static String Lunar_Order="lunar_order";//C端订单
public static String Lunar_Training="lunar_training";//C端订单
......
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