增加单元测试用例,及其代码的优化

This commit is contained in:
lqyan
2024-02-21 12:57:20 +08:00
parent fdeaa95cd7
commit 62a163ba5d
7 changed files with 129 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="SmartInputSourceJavaSceneConfigState"> <component name="SmartInputSourceJavaSceneConfigState">
<option name="customChineseScenes" value="{&quot;capsLockState&quot;:false,&quot;code&quot;:&quot;;ArgsException(errorMessage)&quot;,&quot;enable&quot;:true,&quot;languageType&quot;:&quot;CHINESE&quot;,&quot;name&quot;:&quot;自定义中文切换&quot;,&quot;tip&quot;:&quot;&quot;}" /> <option name="customChineseScenes" value="{&quot;capsLockState&quot;:false,&quot;code&quot;:&quot;;ArgsException(errorMessage);setUserNameCn(userNameCn)&quot;,&quot;enable&quot;:true,&quot;languageType&quot;:&quot;CHINESE&quot;,&quot;name&quot;:&quot;自定义中文切换&quot;,&quot;tip&quot;:&quot;&quot;}" />
</component> </component>
</project> </project>

View File

@@ -1,9 +1,11 @@
package com.jhinno.sdk.openapi.api.organization; package com.jhinno.sdk.openapi.api.organization;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.jhinno.sdk.openapi.ArgsException;
import com.jhinno.sdk.openapi.api.JHApiExecution; import com.jhinno.sdk.openapi.api.JHApiExecution;
import com.jhinno.sdk.openapi.api.ResponseResult; import com.jhinno.sdk.openapi.api.ResponseResult;
import com.jhinno.sdk.openapi.client.JHApiClient; import com.jhinno.sdk.openapi.client.JHApiClient;
import org.apache.commons.lang3.StringUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -47,8 +49,7 @@ public class JHDepartmentApiExecution extends JHApiExecution {
* @param departmentInfo 部门信息 * @param departmentInfo 部门信息
*/ */
public void addDepartment(String username, AddUpdateDepartment departmentInfo) { public void addDepartment(String username, AddUpdateDepartment departmentInfo) {
String path = DepartmentPathConstant.DEPARTMENT_NAME_PATH.replace("{depName}", departmentInfo.getDepName()); post(DepartmentPathConstant.DEPARTMENT_PATH, username, departmentInfo);
post(path, username, departmentInfo);
} }
@@ -59,6 +60,9 @@ public class JHDepartmentApiExecution extends JHApiExecution {
* @param departmentInfo 部门信息 * @param departmentInfo 部门信息
*/ */
public void updateDepartment(String username, AddUpdateDepartment departmentInfo) { public void updateDepartment(String username, AddUpdateDepartment departmentInfo) {
if (StringUtils.isBlank(departmentInfo.getDepName())) {
throw new ArgsException("departmentInfo中的depName不能为空");
}
String path = DepartmentPathConstant.DEPARTMENT_NAME_PATH.replace("{depName}", departmentInfo.getDepName()); String path = DepartmentPathConstant.DEPARTMENT_NAME_PATH.replace("{depName}", departmentInfo.getDepName());
put(path, username, departmentInfo); put(path, username, departmentInfo);
} }
@@ -71,6 +75,9 @@ public class JHDepartmentApiExecution extends JHApiExecution {
* @param departmentName 部门名称 * @param departmentName 部门名称
*/ */
public void deleteDepartment(String username, String departmentName) { public void deleteDepartment(String username, String departmentName) {
if (StringUtils.isBlank(departmentName)) {
throw new ArgsException("departmentName不能为空");
}
String path = DepartmentPathConstant.DEPARTMENT_NAME_PATH.replace("{depName}", departmentName); String path = DepartmentPathConstant.DEPARTMENT_NAME_PATH.replace("{depName}", departmentName);
delete(path, username); delete(path, username);
} }

View File

@@ -1,6 +1,7 @@
package com.jhinno.sdk.openapi.api.organization; package com.jhinno.sdk.openapi.api.organization;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.jhinno.sdk.openapi.ArgsException;
import com.jhinno.sdk.openapi.api.JHApiExecution; import com.jhinno.sdk.openapi.api.JHApiExecution;
import com.jhinno.sdk.openapi.api.PageResult; import com.jhinno.sdk.openapi.api.PageResult;
import com.jhinno.sdk.openapi.api.ResponseResult; import com.jhinno.sdk.openapi.api.ResponseResult;
@@ -71,6 +72,9 @@ public class JHUserApiExecution extends JHApiExecution {
* @param userInfo 用户信息 * @param userInfo 用户信息
*/ */
public void updateUser(String username, AddUpdateUserInfo userInfo) { public void updateUser(String username, AddUpdateUserInfo userInfo) {
if (StringUtils.isBlank(userInfo.getUserName())) {
throw new ArgsException("userInfo中userName的值不能为空");
}
String path = UserPathConstant.USERS_USERNAME_PATH.replace("{username}", userInfo.getUserName()); String path = UserPathConstant.USERS_USERNAME_PATH.replace("{username}", userInfo.getUserName());
put(path, username, userInfo); put(path, username, userInfo);
} }
@@ -80,9 +84,9 @@ public class JHUserApiExecution extends JHApiExecution {
* 修改或重置用户密码 * 修改或重置用户密码
* *
* <ul> * <ul>
* <li>当type值为{@link UpdateUserPasswordType#FORCE_UPDATE_PASSWORD_TYPE} 时会怎样</li> * <li>当type值为{@link UpdateUserPasswordType#FORCE_UPDATE_PASSWORD_TYPE}重置密码后用户再次登录需要修改密码</li>
* <li>当type值为{@link UpdateUserPasswordType#RESET_UPDATE_PASSWORD_TYPE} 时会怎样</li> * <li>当type值为{@link UpdateUserPasswordType#RESET_UPDATE_PASSWORD_TYPE}重置用户的密码</li>
* <li>当type值为空时会怎样</li> * <li>当type值为空时修改用户密码</li>
* </ul> * </ul>
* 参数怎么传,还需进一步确认,此处需要增加三个重构,方便开发者调用 * 参数怎么传,还需进一步确认,此处需要增加三个重构,方便开发者调用
* *
@@ -93,6 +97,9 @@ public class JHUserApiExecution extends JHApiExecution {
* @param type 类型,(非必填,取值见{@link UpdateUserPasswordType} * @param type 类型,(非必填,取值见{@link UpdateUserPasswordType}
*/ */
public void updateUserPassword(String username, String updatePasswordUsername, String oldPassword, String password, String type) { public void updateUserPassword(String username, String updatePasswordUsername, String oldPassword, String password, String type) {
if (StringUtils.isBlank(updatePasswordUsername)) {
throw new ArgsException("updatePasswordUsername不能为空");
}
String path = UserPathConstant.USERS_RESET_PASSWORD_PATH.replace("{username}", updatePasswordUsername); String path = UserPathConstant.USERS_RESET_PASSWORD_PATH.replace("{username}", updatePasswordUsername);
Map<String, Object> params = new HashMap<>(4); Map<String, Object> params = new HashMap<>(4);
if (StringUtils.isNotBlank(oldPassword)) { if (StringUtils.isNotBlank(oldPassword)) {
@@ -148,6 +155,9 @@ public class JHUserApiExecution extends JHApiExecution {
* @param deleteUsername 被删除的用户名 * @param deleteUsername 被删除的用户名
*/ */
public void deleteUser(String username, String deleteUsername) { public void deleteUser(String username, String deleteUsername) {
if (StringUtils.isBlank(deleteUsername)) {
throw new ArgsException("deleteUsername不能为空");
}
delete(UserPathConstant.USERS_USERNAME_PATH.replace("{username}", deleteUsername), username); delete(UserPathConstant.USERS_USERNAME_PATH.replace("{username}", deleteUsername), username);
} }

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.jhinno.sdk.openapi.ArgsException;
import com.jhinno.sdk.openapi.ClientErrorCode; import com.jhinno.sdk.openapi.ClientErrorCode;
import com.jhinno.sdk.openapi.ClientException; import com.jhinno.sdk.openapi.ClientException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -102,6 +103,7 @@ public class JHApiClient {
/** /**
* 通过{@link DefaultHttpClientConfig默认配置的最大连接数和服务每次能并行接收的请求数量构建一个JHApiClient实例 * 通过{@link DefaultHttpClientConfig默认配置的最大连接数和服务每次能并行接收的请求数量构建一个JHApiClient实例
* <p> * <p>
*
* @param baseUrl 景行接口服务的基础地址 * @param baseUrl 景行接口服务的基础地址
* @return JHApiClient的实例 * @return JHApiClient的实例
*/ */
@@ -112,6 +114,7 @@ public class JHApiClient {
/** /**
* 通过外部传入的{@link CloseableHttpClient构建一个请求客户端. * 通过外部传入的{@link CloseableHttpClient构建一个请求客户端.
* <p> * <p>
*
* @param httpClient 请求连接池 * @param httpClient 请求连接池
* @param baseUrl 景行接口服务的基础地址 * @param baseUrl 景行接口服务的基础地址
* @return JHApiClient的实例 * @return JHApiClient的实例
@@ -254,7 +257,7 @@ public class JHApiClient {
*/ */
public <T> T get(String path, Map<String, String> headers, TypeReference<T> type) { public <T> T get(String path, Map<String, String> headers, TypeReference<T> type) {
if (StringUtils.isBlank(path)) { if (StringUtils.isBlank(path)) {
throw new RuntimeException("url不能为空"); throw new ArgsException("url不能为空");
} }
HttpGet httpGet = new HttpGet(getUrl(path)); HttpGet httpGet = new HttpGet(getUrl(path));
return request(httpGet, headers, type); return request(httpGet, headers, type);
@@ -336,7 +339,7 @@ public class JHApiClient {
*/ */
public <T, K> T post(String path, K body, Map<String, String> headers, TypeReference<T> type) { public <T, K> T post(String path, K body, Map<String, String> headers, TypeReference<T> type) {
if (StringUtils.isBlank(path)) { if (StringUtils.isBlank(path)) {
throw new RuntimeException("path不能为空"); throw new ArgsException("path不能为空");
} }
HttpPost httpPost = new HttpPost(getUrl(path)); HttpPost httpPost = new HttpPost(getUrl(path));
try { try {
@@ -346,7 +349,7 @@ public class JHApiClient {
} }
return request(httpPost, headers, type); return request(httpPost, headers, type);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e.getMessage()); throw new ClientException(e.getMessage());
} }
} }
@@ -364,7 +367,7 @@ public class JHApiClient {
*/ */
public <T, K> T put(String path, K body, Map<String, String> headers, TypeReference<T> type) { public <T, K> T put(String path, K body, Map<String, String> headers, TypeReference<T> type) {
if (StringUtils.isBlank(path)) { if (StringUtils.isBlank(path)) {
throw new RuntimeException("url不能为空"); throw new ArgsException("url不能为空");
} }
HttpPut httpPost = new HttpPut(getUrl(path)); HttpPut httpPost = new HttpPut(getUrl(path));
try { try {
@@ -374,7 +377,7 @@ public class JHApiClient {
} }
return request(httpPost, headers, type); return request(httpPost, headers, type);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e.getMessage()); throw new ClientException(e.getMessage());
} }
} }
@@ -417,7 +420,7 @@ public class JHApiClient {
*/ */
public <T> T delete(String path, Map<String, String> headers, TypeReference<T> type) { public <T> T delete(String path, Map<String, String> headers, TypeReference<T> type) {
if (StringUtils.isBlank(path)) { if (StringUtils.isBlank(path)) {
throw new RuntimeException("url不能为空"); throw new ArgsException("url不能为空");
} }
HttpDelete httpDelete = new HttpDelete(getUrl(path)); HttpDelete httpDelete = new HttpDelete(getUrl(path));
return request(httpDelete, headers, type); return request(httpDelete, headers, type);

View File

@@ -99,7 +99,7 @@ public class FileApiTest {
/** /**
* 测试上传文件不覆盖源文件如果isCover是true上传后的文件有数字下标 * 测试上传文件不覆盖源文件如果isCover是true上传后的文件有数字下标
*/ */
@Test @Test
public void testUploadFileNoCover() throws IOException { public void testUploadFileNoCover() throws IOException {

View File

@@ -1,7 +1,9 @@
package com.jhinno.sdk.openapi.test.organization; package com.jhinno.sdk.openapi.test.organization;
import com.jhinno.sdk.openapi.api.organization.AddUpdateDepartment;
import com.jhinno.sdk.openapi.api.organization.JHDepartmentApiExecution; import com.jhinno.sdk.openapi.api.organization.JHDepartmentApiExecution;
import com.jhinno.sdk.openapi.test.JHClientConfig; import com.jhinno.sdk.openapi.test.JHClientConfig;
import org.junit.Test;
/** /**
* 组织接口相关单元测试 * 组织接口相关单元测试
@@ -12,4 +14,45 @@ import com.jhinno.sdk.openapi.test.JHClientConfig;
public class DepartmentApiTest { public class DepartmentApiTest {
private static final JHDepartmentApiExecution execution = new JHDepartmentApiExecution(JHClientConfig.client); private static final JHDepartmentApiExecution execution = new JHDepartmentApiExecution(JHClientConfig.client);
/**
* 测试获取部门
*/
@Test
public void testGetDepartment() {
System.out.println(execution.getDepartmentList("jhadmin"));
}
/**
* 测试添加部门
*/
@Test
public void testAddDepartment() {
AddUpdateDepartment addUpdateDepartment = new AddUpdateDepartment();
addUpdateDepartment.setDepName("test2");
addUpdateDepartment.setDepNameCN("测试部门2");
addUpdateDepartment.setParentDepName("defaultDep");
execution.addDepartment("jhadmin", addUpdateDepartment);
}
/**
* 测试修改部门
*/
@Test
public void testUpdateDepartment() {
AddUpdateDepartment addUpdateDepartment = new AddUpdateDepartment();
addUpdateDepartment.setDepName("test2");
addUpdateDepartment.setDepNameCN("测试部门2111");
addUpdateDepartment.setParentDepName("defaultDep");
execution.updateDepartment("jhadmin", addUpdateDepartment);
}
/**
* 测试删除部门
*/
@Test
public void testDeleteDepartment() {
execution.deleteDepartment("jhadmin", "test2");
}
} }

View File

@@ -1,6 +1,7 @@
package com.jhinno.sdk.openapi.test.organization; package com.jhinno.sdk.openapi.test.organization;
import com.jhinno.sdk.openapi.api.PageResult; import com.jhinno.sdk.openapi.api.PageResult;
import com.jhinno.sdk.openapi.api.organization.AddUpdateUserInfo;
import com.jhinno.sdk.openapi.api.organization.JHUserApiExecution; import com.jhinno.sdk.openapi.api.organization.JHUserApiExecution;
import com.jhinno.sdk.openapi.api.organization.UserInfo; import com.jhinno.sdk.openapi.api.organization.UserInfo;
import com.jhinno.sdk.openapi.test.JHClientConfig; import com.jhinno.sdk.openapi.test.JHClientConfig;
@@ -25,4 +26,56 @@ public class UserApiTest {
PageResult<UserInfo> result = execution.getUserList("jhadmin", null, null, null); PageResult<UserInfo> result = execution.getUserList("jhadmin", null, null, null);
System.out.println("result = " + result); System.out.println("result = " + result);
} }
/**
* 测试添加用户,密码可以不传
*/
@Test
public void addUser() {
AddUpdateUserInfo addUpdateUserInfo = new AddUpdateUserInfo();
addUpdateUserInfo.setUserName("zhangsan3");
addUpdateUserInfo.setUserNameCn("张三3");
addUpdateUserInfo.setUserPassword("Jhadmin123");
addUpdateUserInfo.setDepName("defaultDep");
execution.addUser("jhadmin", addUpdateUserInfo);
}
/**
* 测试修改用户,需要修改,只传我需要修改的值,并且用户修改的接口报错
*/
@Test
public void updateUser() {
AddUpdateUserInfo addUpdateUserInfo = new AddUpdateUserInfo();
addUpdateUserInfo.setUserName("zhangsan");
addUpdateUserInfo.setUserNameCn("张三1");
addUpdateUserInfo.setDepName("defaultDep");
addUpdateUserInfo.setUserPassword("Jhadmin123");
execution.updateUser("jhadmin", addUpdateUserInfo);
}
/**
* 测试删除用户
*/
@Test
public void testDeleteUser() {
execution.deleteUser("jhadmin", "zhangsan1");
}
/**
* 测试修改用户密码
*/
@Test
public void testUpdateUserPassword() {
// 修改用户密码应该是自己的密码需要自己的token修改
execution.updateUserPassword("jhadmin", "zhangsan1", "Jhadmin123", "Jhadmin124");
// 管理员重置密码
execution.resetPassword("jhadmin", "zhangsan2", "Jhadmin125");
// 管理员重置密码后,强制让用户修改密码(改接口调用报错,不应该传入旧密码)
execution.resetForceUpdatePassword("jhadmin", "zhangsan3", "Jhadmin127");
}
} }