Commit 143dbfe6 by xuyamei

新增员工角色接口

parent 6ac63db1
......@@ -139,4 +139,84 @@ public class AdminTools extends XMBaseTest {
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
/**
* @description:删除角色
* @author: xuyamei
* @date: 2024/4/19 17:25
* @param code
* @return: void
**/
public void studioRoleRemove(String code){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_studioRole_remove")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String body = "{\"roleCode\":\""+code+"\"}";
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
}
/**
* @description:角色列表
* @author: xuyamei
* @date: 2024/4/19 17:45
* @return:
**/
public JSONObject studioRoleListByStudioId(){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_studioRole_listByStudioId")
.setTerminal(Terminal.B);
super.beforeDataRequest();
dataApi.doRequest(RequestType.JSON,dataparams,"",dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
public JSONObject getDetailStudioRole(String code){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_studioRole_getDetail")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String url= dataApi.getUrl()+"&roleCode="+code;
dataApi.setUrl(url);
dataApi.doRequest(RequestType.JSON,dataparams,"",dataheadrs).assetsSuccess(true);
return dataApi.getBodyInJSON();
}
public void createStudioRole(String name){
dataApi.setApiModule(ApiModule.Polar_Admin)
.setApiName("API_studioRole_create")
.setTerminal(Terminal.B);
super.beforeDataRequest();
String body = "{\"roleName\": \""+name+"\",\n" +
" \"permissions\":\n" +
" [\"FitHeadPage\", \"FitViewExperienceCard\", \"FitManageExperienceCard\", \"FitViewSoldExperienceCard\", \"FitManageSoldExperienceCard\", \"FitSeeMember\", \"FitLoseMember\", \"FitEditMember\", \"FitAllocateMember\", \"FitSeeMemberCard\", \"FitManageMemberCard\", \"FitSeeSoldMemberCard\", \"FitManageSoldMemberCard\", \"FitSeeTrainingCamp\", \"FitEditTrainingCamp\", \"FitSeeSoldTrainingCamp\", \"FitEditSoldTrainingCamp\", \"FitSeeGroupSchedule\", \"FitManageGroupSchedule\", \"FitSeePersonalSchedule\", \"FitManagePersonalSchedule\", \"FitManageTrainingCampSchedule\", \"FitBooking\", \"FitCancelBooking\", \"FitSign\", \"FitSeeBookingRecord\", \"FitIncomeExpense\", \"FitSeeOrder\", \"FitEditOrder\", \"FitSeeXmPay\", \"FitManageXmPay\", \"FitLog\", \"FitSeeAdmin\", \"FitInfo\", \"FitBrandInfo\", \"FitReminderSet\", \"FitSms\", \"FitLabel\", \"FitCourseCategory\", \"FitVenue\", \"FitBookingRuleSet\", \"FitSaleRule\", \"FitPayment\"],\n" +
" \"configMap\": {\n" +
" \"memberAccess\": false,\n" +
" \"scheduleAccess\": false,\n" +
" \"reserveAccess\": false,\n" +
" \"followUpAccess\": true,\n" +
" \"importAccess\": true,\n" +
" \"exportAccess\": true,\n" +
" \"taskAccess\": false,\n" +
" \"potentialPhoneMask\": true,\n" +
" \"memberPhoneMask\": true,\n" +
" \"historyPhoneMask\": false\n" +
" }}";
dataApi.doRequest(RequestType.JSON,dataparams,body,dataheadrs).assetsSuccess(true);
}
}
......@@ -11,7 +11,6 @@ import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
import javax.swing.*;
import java.util.Random;
/**
......
package com.xiaomai.cases.polar.admin;
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 org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-04-19 16:09
* @Description: 校验角色权限配置是否重复
* @Version: 1.0
*/
public class TestCheckPermConfigDup extends BaseTestImpl {
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_checkPermConfigDup", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@DataProvider()
public Object[][] data(){
return new Object[][]{
{"{\"permCodes\": [\"FitHeadPage\", \"FitCluePrivate\", \"FitSeeValidMember\", \"FitCluePublic\", \"FitAddClue\", \"FitEditClue\", \"FitReleaseClue\"],\n" +
" \"configMap\": {\n" +
" \"memberAccess\": false,\n" +
" \"scheduleAccess\": false,\n" +
" \"reserveAccess\": false,\n" +
" \"followUpAccess\": false,\n" +
" \"importAccess\": false,\n" +
" \"exportAccess\": false,\n" +
" \"taskAccess\": false,\n" +
" \"potentialPhoneMask\": true,\n" +
" \"memberPhoneMask\": false,\n" +
" \"historyPhoneMask\": true}}",true}, // 存在有相同权限的角色
{"{\n" +
" \"permCodes\": [\"FitHeadPage\", \"FitCluePublic\", \"FitAddClue\", \"FitEditClue\", \"FitReleaseClue\"],\n" +
" \"configMap\": {\n" +
" \"memberAccess\": false,\n" +
" \"scheduleAccess\": false,\n" +
" \"reserveAccess\": false,\n" +
" \"followUpAccess\": false,\n" +
" \"importAccess\": false,\n" +
" \"exportAccess\": false,\n" +
" \"taskAccess\": false,\n" +
" \"potentialPhoneMask\": true,\n" +
" \"memberPhoneMask\": false,\n" +
" \"historyPhoneMask\": true}}",false} // 不存在的角色
};
}
@Test(dataProvider = "data")
public void testCheckPermConfigDup(String body,boolean flag){
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
Assert.assertEquals(response.getJSONArray("result").size()>0,flag,"校验角色权限配置是否重复");
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
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 org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-04-19 15:55
* @Description: 校验角色名称是否重复
* @Version: 1.0
*/
public class TestCheckRoleNameDup extends BaseTestImpl {
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_checkRoleNameDup", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@DataProvider()
public Object[][] data(){
return new Object[][]{
{"店长",true},
{"店长24843585",false}
};
}
@Test(dataProvider = "data")
public void testCheckRoleNameDup(String name,boolean flag){
String body = "{\"roleName\": \""+name+"\"}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
Assert.assertEquals(Boolean.parseBoolean(response.getString("result")),flag,"校验角色名称是否重复");
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-04-19 17:22
* @Description:
* @Version: 1.0
*/
public class TestStudioRoleCreate extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@Resource(name = "configTools")
ConfigTools configTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_studioRole_create", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test(description = "新建角色 --> 查询列表是否有该角色 --> 删除新建的角色")
public void testStudioRoleCreate(){
String body = "{\"roleName\": \"角#色设定##\",\n" +
" \"permissions\":\n" +
" [\"FitHeadPage\", \"FitViewExperienceCard\", \"FitManageExperienceCard\", \"FitViewSoldExperienceCard\", \"FitManageSoldExperienceCard\", \"FitSeeMember\", \"FitLoseMember\", \"FitEditMember\", \"FitAllocateMember\", \"FitSeeMemberCard\", \"FitManageMemberCard\", \"FitSeeSoldMemberCard\", \"FitManageSoldMemberCard\", \"FitSeeTrainingCamp\", \"FitEditTrainingCamp\", \"FitSeeSoldTrainingCamp\", \"FitEditSoldTrainingCamp\", \"FitSeeGroupSchedule\", \"FitManageGroupSchedule\", \"FitSeePersonalSchedule\", \"FitManagePersonalSchedule\", \"FitManageTrainingCampSchedule\", \"FitBooking\", \"FitCancelBooking\", \"FitSign\", \"FitSeeBookingRecord\", \"FitIncomeExpense\", \"FitSeeOrder\", \"FitEditOrder\", \"FitSeeXmPay\", \"FitManageXmPay\", \"FitLog\", \"FitSeeAdmin\", \"FitInfo\", \"FitBrandInfo\", \"FitReminderSet\", \"FitSms\", \"FitLabel\", \"FitCourseCategory\", \"FitVenue\", \"FitBookingRuleSet\", \"FitSaleRule\", \"FitPayment\"],\n" +
" \"configMap\": {\n" +
" \"memberAccess\": false,\n" +
" \"scheduleAccess\": false,\n" +
" \"reserveAccess\": false,\n" +
" \"followUpAccess\": true,\n" +
" \"importAccess\": false,\n" +
" \"exportAccess\": true,\n" +
" \"taskAccess\": false,\n" +
" \"potentialPhoneMask\": true,\n" +
" \"memberPhoneMask\": true,\n" +
" \"historyPhoneMask\": true\n" +
" }}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
JSONObject result = adminTools.studioRoleListByStudioId();
JSONArray jsonArray = result.getJSONObject("result").getJSONArray("studioRoles");
boolean flag = false;
// 角色id
String id = "";
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
if (jsonObject.getString("name").equals("角#色设定##")){
flag = true;
String roleCode = jsonObject.getString("code");
id = jsonObject.getString("id");
JSONObject response = adminTools.getDetailStudioRole(roleCode);
adminTools.studioRoleRemove(roleCode);
Assert.assertEquals(response.getJSONObject("result").getString("name"),"角#色设定##","查询角色详情时新建与详情不一致");
break;
}
}
// 校验1:创建角色是否成功
Assert.assertEquals(flag,true,"创建角色失败");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 校验2:查询日志是否有创建员工角色记录
body = "{\"current\":0,\"size\":10,\"domainId\":\""+xmAppApi.getLoginInfo().getStudioId()+"\",\"opEventKey\":\"ADD_ROLE\"}";
JSONObject response = configTools.getOpauditPage(body);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),id,"添加角色未生成操作日志");
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xiaomai.basetest.BaseTestImpl;
import com.xiaomai.cases.polar.studioConfig.ConfigTools;
import com.xiaomai.enums.ApiModule;
import com.xiaomai.enums.LoginAccount;
import com.xiaomai.enums.RequestType;
import com.xiaomai.enums.Terminal;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-04-22 14:13
* @Description: 编辑角色
* @Version: 1.0
*/
public class TestStudioRoleEdit extends BaseTestImpl {
@Resource(name = "adminTools")
AdminTools adminTools;
@Resource(name = "configTools")
ConfigTools configTools;
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_studioRole_edit", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
private String roleCode;
private boolean flag;
@Test(description = "创建角色-->编辑角色 --> 删除角色")
public void testStudioRoleEdit(){
// 创建角色
adminTools.createStudioRole("准备角色");
JSONObject result = adminTools.studioRoleListByStudioId();
JSONArray jsonArray = result.getJSONObject("result").getJSONArray("studioRoles");
// 角色id
String id = "";
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
if (jsonObject.getString("name").equals("准备角色")){
roleCode = jsonObject.getString("code");
id = jsonObject.getString("id");
flag = true;
break;
}
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 编辑角色
String body = "{\"roleCode\": \""+roleCode+"\",\n" +
" \"roleName\": \"编辑角色名称\",\n" +
" \"permissions\": [\"FitHeadPage\", \"FitSeeFollowUpRecord\", \"FitViewExperienceCard\", \"FitSeeMember\", \"FitSeeMemberCard\"],\n" +
" \"configMap\": {\n" +
" \"memberAccess\": false,\n" +
" \"scheduleAccess\": false,\n" +
" \"reserveAccess\": false,\n" +
" \"followUpAccess\": true,\n" +
" \"importAccess\": false,\n" +
" \"exportAccess\": true,\n" +
" \"taskAccess\": true,\n" +
" \"potentialPhoneMask\": true,\n" +
" \"memberPhoneMask\": true,\n" +
" \"historyPhoneMask\": true\n" +
" }}";
xmAppApi.doRequest(RequestType.JSON,params,body,headers).assetsSuccess(true);
// 查看详情
JSONObject response = adminTools.getDetailStudioRole(roleCode);
adminTools.studioRoleRemove(roleCode); // 删除角色
flag = false; // 角色删除标识
Assert.assertEquals(response.getJSONObject("result").getString("name"),"编辑角色名称","编辑角色名称失败");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// 校验2:查询日志是否有编辑员工角色记录
body = "{\"current\":0,\"size\":10,\"domainId\":\""+xmAppApi.getLoginInfo().getStudioId()+"\",\"opEventKey\":\"EDIT_ROLE\"}";
response = configTools.getOpauditPage(body);
Assert.assertEquals(response.getJSONObject("result").getJSONArray("records").getJSONObject(0).getJSONObject("target").getString("targetId"),id,"编辑角色未生成操作日志");
}
@Test(description = "清除增量数据,防止没有删除的情况",priority = 1)
public void del(){
if (flag){
adminTools.studioRoleRemove(roleCode);
}
}
}
package com.xiaomai.cases.polar.admin;
import com.alibaba.fastjson.JSONArray;
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 org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import javax.annotation.Resource;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-04-23 08:26
* @Description: 获取可用于新建角色的功能权限列表
* @Version: 1.0
*/
public class TestStudioRoleGetPermList extends BaseTestImpl {
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_studioRole_getPermList", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test
public void testStudioRoleGetPermList(){
xmAppApi.doRequest(RequestType.JSON,params,"",headers).assetsSuccess(true);
JSONArray jsonArray = xmAppApi.getBodyInJSONArray("$.result");
// 校验1:校验返回结果是否包含8个功能权限
Assert.assertEquals(jsonArray.size()>=8,true,"功能权限缺失" );
String[] arr = {"FitHeadPageCenter","FitBrandCenter","FitSalesCenter","FitMarketingTool","FitMemberCenter","FitBusinessCenter","FitFinanceCenter","FitManage"};
JSONArray arr1 = new JSONArray();
for (String s : arr){
arr1.add(s);
}
JSONArray result = new JSONArray();
for (int i = 0; i < jsonArray.size(); i++) {
result.add(jsonArray.getJSONObject(i).getString("code"));
}
// 校验2:校验返回结果是否包含既定的功能权限
Assert.assertEquals(result.equals(arr1),true,"功能权限模块缺失" );
}
}
package com.xiaomai.cases.polar.admin;
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 org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* @BelongsProject: xm-sportstest
* @BelongsPackage: com.xiaomai.cases.polar.admin
* @Author: xuyamei
* @CreateTime: 2024-04-19 13:56
* @Description: 查询场馆角色列表
* @Version: 1.0
*/
public class TestStudioRoleListByStudioId extends BaseTestImpl {
@BeforeClass
public void beforeTest(){
setTestInfo(ApiModule.Polar_Admin,"API_studioRole_listByStudioId", LoginAccount.XYM_DEV, Terminal.B,"xym");
super.beforeTest();
}
@Test
public void testStudioRoleListByStudioId(){
xmAppApi.doRequest(RequestType.JSON,params,"",headers).assetsSuccess(true);
JSONObject response = xmAppApi.getBodyInJSON();
Assert.assertEquals(response.getJSONObject("result").getJSONArray("systemRoles").size(),6,"系统角色缺失或增加");
}
}
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