-
Notifications
You must be signed in to change notification settings - Fork 475
fix: ApiDeleteGroupPolicies #613
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,164 @@ | ||
package com.qiniu.iam.apis; | ||
|
||
import com.qiniu.common.QiniuException; | ||
import com.qiniu.storage.Api; | ||
import org.junit.jupiter.api.Assertions; | ||
import org.junit.jupiter.api.Tag; | ||
import org.junit.jupiter.api.Test; | ||
|
||
import static org.junit.jupiter.api.Assertions.assertNotNull; | ||
import static org.junit.jupiter.api.Assertions.assertTrue; | ||
|
||
public class GroupPolicyApiTest { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 【GroupPolicyApiTest】缺少包含@author的注释信息 Detailslint 解释在Java代码中, 错误用法public class GroupPolicyApiTest {
// 缺少 @author 注释
} 正确用法/**
* @author 你的名字或团队名称
*/
public class GroupPolicyApiTest {
// 类的内容
}
|
||
|
||
String groupAlias = ApiTestConfig.groupAlias; | ||
String policyAliasA = ApiTestConfig.policyAlias + "A"; | ||
String policyAliasB = ApiTestConfig.policyAlias + "B"; | ||
String baseUrl = ApiTestConfig.baseUrl; | ||
Api.Config config = ApiTestConfig.config; | ||
|
||
@Test | ||
@Tag("IntegrationTest") | ||
public void testGroupPolicyApi() { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 方法【testGroupPolicyApi】的总行数不要超过80行。 Detailslint 解释该lint结果提示在方法 错误用法以下是一个示例,展示了可能违反此规则的代码: public void testGroupPolicyApi() {
// 假设这里有很多行代码
for (int i = 0; i < 100; i++) {
System.out.println("Line " + i);
}
// 更多代码...
} 正确用法为了遵守此规则,可以将代码拆分为多个方法或提取公共逻辑到单独的方法中。以下是一个改进的示例: public void testGroupPolicyApi() {
setupTestEnvironment();
performAssertions();
cleanUpResources();
}
private void setupTestEnvironment() {
// 设置测试环境的代码
for (int i = 0; i < 50; i++) {
System.out.println("Setup Line " + i);
}
}
private void performAssertions() {
// 执行断言的代码
for (int i = 50; i < 100; i++) {
System.out.println("Assertion Line " + i);
}
}
private void cleanUpResources() {
// 清理资源的代码
} 通过这种方式,可以将
|
||
// 清理 | ||
try { | ||
ApiDeletePolicy.Request deleteRequest = new ApiDeletePolicy.Request(baseUrl, policyAliasA); | ||
ApiDeletePolicy deleteApi = new ApiDeletePolicy(null, config); | ||
deleteApi.request(deleteRequest); | ||
} catch (QiniuException e) { | ||
} | ||
|
||
try { | ||
ApiDeletePolicy.Request deleteRequest = new ApiDeletePolicy.Request(baseUrl, policyAliasB); | ||
ApiDeletePolicy deleteApi = new ApiDeletePolicy(null, config); | ||
deleteApi.request(deleteRequest); | ||
} catch (QiniuException e) { | ||
} | ||
|
||
try { | ||
ApiDeleteGroup.Request deleteGroupRequest = new ApiDeleteGroup.Request(baseUrl, groupAlias); | ||
ApiDeleteGroup deleteGroupApi = new ApiDeleteGroup(null, config); | ||
deleteGroupApi.request(deleteGroupRequest); | ||
} catch (QiniuException e) { | ||
} | ||
|
||
try { | ||
// 1. 创建分组 | ||
String groupDescription = "JavaTestGroupDescription"; | ||
ApiCreateGroup.Request.CreateGroupParam createGroupParam = new ApiCreateGroup.Request.CreateGroupParam(); | ||
createGroupParam.setAlias(groupAlias); | ||
createGroupParam.setDescription(groupDescription); | ||
ApiCreateGroup.Request createGroupRequest = new ApiCreateGroup.Request(baseUrl, createGroupParam); | ||
ApiCreateGroup createGroupApi = new ApiCreateGroup(null, config); | ||
ApiCreateGroup.Response createGroupResponse = createGroupApi.request(createGroupRequest); | ||
Assertions.assertNotNull(createGroupResponse, "1. 创建用户分组失败:" + createGroupResponse); | ||
Assertions.assertTrue(createGroupResponse.isOK(), "1.1 创建用户分组失败:" + createGroupResponse); | ||
|
||
String policyDesc = policyAliasA + "Desc"; | ||
String policyAction = "cdn/DownloadCDNLog"; | ||
String policyEffect = "Allow"; | ||
String policyResource = "qrn:product:::/a/b/c.txt"; | ||
ApiCreatePolicy.Request.CreateStatement createStatement = new ApiCreatePolicy.Request.CreateStatement(); | ||
createStatement.setActions(new String[]{policyAction}); | ||
createStatement.setEffect(policyEffect); | ||
createStatement.setResources(new String[]{policyResource}); | ||
ApiCreatePolicy.Request.CreatePolicyParam createPolicyRequestParam = new ApiCreatePolicy.Request.CreatePolicyParam(); | ||
createPolicyRequestParam.setEditType(1); | ||
createPolicyRequestParam.setAlias(policyAliasA); | ||
createPolicyRequestParam.setDescription(policyDesc); | ||
createPolicyRequestParam.setStatement(new ApiCreatePolicy.Request.CreateStatement[]{createStatement}); | ||
ApiCreatePolicy.Request createPolicyRequest = new ApiCreatePolicy.Request(baseUrl, createPolicyRequestParam); | ||
ApiCreatePolicy createPolicyApi = new ApiCreatePolicy(null, config); | ||
ApiCreatePolicy.Response createPolicyResponse = createPolicyApi.request(createPolicyRequest); | ||
assertNotNull(createPolicyResponse, "2. 创建 Policy 失败:" + createPolicyResponse); | ||
assertTrue(createPolicyResponse.isOK(), "2.1 创建 Policy 失败:" + createPolicyResponse); | ||
|
||
policyDesc = policyAliasB + "Desc"; | ||
createStatement = new ApiCreatePolicy.Request.CreateStatement(); | ||
createStatement.setActions(new String[]{policyAction}); | ||
createStatement.setEffect(policyEffect); | ||
createStatement.setResources(new String[]{policyResource}); | ||
createPolicyRequestParam = new ApiCreatePolicy.Request.CreatePolicyParam(); | ||
createPolicyRequestParam.setEditType(1); | ||
createPolicyRequestParam.setAlias(policyAliasB); | ||
createPolicyRequestParam.setDescription(policyDesc); | ||
createPolicyRequestParam.setStatement(new ApiCreatePolicy.Request.CreateStatement[]{createStatement}); | ||
createPolicyRequest = new ApiCreatePolicy.Request(baseUrl, createPolicyRequestParam); | ||
createPolicyApi = new ApiCreatePolicy(null, config); | ||
createPolicyResponse = createPolicyApi.request(createPolicyRequest); | ||
assertNotNull(createPolicyResponse, "3. 创建 Policy 失败:" + createPolicyResponse); | ||
assertTrue(createPolicyResponse.isOK(), "3.1 创建 Policy 失败:" + createPolicyResponse); | ||
|
||
ApiModifyGroupPolicies.Request.ModifiedGroupIamPoliciesParam modifyParam = new ApiModifyGroupPolicies.Request.ModifiedGroupIamPoliciesParam(); | ||
modifyParam.setPolicyAliases(new String[]{policyAliasA}); | ||
ApiModifyGroupPolicies.Request modifyRequest = new ApiModifyGroupPolicies.Request(baseUrl, groupAlias, modifyParam); | ||
ApiModifyGroupPolicies modifyApi = new ApiModifyGroupPolicies(null, config); | ||
ApiModifyGroupPolicies.Response modifyResponse = modifyApi.request(modifyRequest); | ||
Assertions.assertNotNull(modifyResponse, "4. 用户分组添加 Policies 失败:" + modifyResponse); | ||
Assertions.assertTrue(modifyResponse.isOK(), "4.1 创建用户分组添加 Policies 失败:" + modifyResponse); | ||
|
||
ApiGetGroupPolicies.Request getRequest = new ApiGetGroupPolicies.Request(baseUrl, groupAlias); | ||
ApiGetGroupPolicies getApi = new ApiGetGroupPolicies(null, config); | ||
ApiGetGroupPolicies.Response getResponse = getApi.request(getRequest); | ||
Assertions.assertNotNull(getResponse, "5. 获取用户分组 Policies 失败:" + getResponse); | ||
Assertions.assertTrue(getResponse.isOK(), "5.1 获取用户分组失败 Policies :" + getResponse); | ||
ApiGetGroupPolicies.Response.GetGroupPoliciesData getResponsePoliciesData = getResponse.getData().getData(); | ||
Assertions.assertNotNull(getResponsePoliciesData, "5.2 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
Assertions.assertTrue(getResponsePoliciesData.getCount() == 1, "5.3 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
Assertions.assertTrue(getResponsePoliciesData.getList().length == 1, "5.4 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
ApiGetGroupPolicies.Response.GroupPolicy getResponsePolicy = getResponsePoliciesData.getList()[0]; | ||
Assertions.assertEquals(getResponsePolicy.getAlias(), policyAliasA, "5.5 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
|
||
ApiUpdateGroupPolicies.Request.UpdatedGroupIamPoliciesParam updateParam = new ApiUpdateGroupPolicies.Request.UpdatedGroupIamPoliciesParam(); | ||
updateParam.setPolicyAliases(new String[]{policyAliasA, policyAliasB}); | ||
ApiUpdateGroupPolicies.Request updateRequest = new ApiUpdateGroupPolicies.Request(baseUrl, groupAlias, updateParam); | ||
ApiUpdateGroupPolicies updateApi = new ApiUpdateGroupPolicies(null, config); | ||
ApiUpdateGroupPolicies.Response updateResponse = updateApi.request(updateRequest); | ||
Assertions.assertNotNull(updateResponse, "6. 用户分组更新 Policies 失败:" + updateResponse); | ||
Assertions.assertTrue(updateResponse.isOK(), "6.1 用户分组更新 Policies 失败:" + updateResponse); | ||
|
||
getRequest = new ApiGetGroupPolicies.Request(baseUrl, groupAlias); | ||
getApi = new ApiGetGroupPolicies(null, config); | ||
getResponse = getApi.request(getRequest); | ||
Assertions.assertNotNull(getResponse, "7. 获取用户分组 Policies 失败:" + getResponse); | ||
Assertions.assertTrue(getResponse.isOK(), "7.1 获取用户分组失败 Policies :" + getResponse); | ||
getResponsePoliciesData = getResponse.getData().getData(); | ||
Assertions.assertNotNull(getResponsePoliciesData, "7.2 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
Assertions.assertTrue(getResponsePoliciesData.getCount() == 2, "7.3 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
Assertions.assertTrue(getResponsePoliciesData.getList().length == 2, "7.4 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
ApiGetGroupPolicies.Response.GroupPolicy[] groupPolicies = getResponsePoliciesData.getList(); | ||
for (ApiGetGroupPolicies.Response.GroupPolicy policy : groupPolicies) { | ||
if (policy.getAlias().equals(policyAliasA)) { | ||
continue; | ||
} | ||
if (policy.getAlias().equals(policyAliasB)) { | ||
continue; | ||
} | ||
Assertions.fail("7.5 获取用户分组失败 Policies"); | ||
} | ||
|
||
ApiDeleteGroupPolicies.Request.DeletedGroupIamPoliciesParam deleteParam = new ApiDeleteGroupPolicies.Request.DeletedGroupIamPoliciesParam(); | ||
deleteParam.setPolicyAliases(new String[]{policyAliasA}); | ||
ApiDeleteGroupPolicies.Request deleteRequest = new ApiDeleteGroupPolicies.Request(baseUrl, groupAlias, deleteParam); | ||
ApiDeleteGroupPolicies deleteApi = new ApiDeleteGroupPolicies(null, config); | ||
ApiDeleteGroupPolicies.Response deleteResponse = deleteApi.request(deleteRequest); | ||
Assertions.assertNotNull(deleteResponse, "8. 用户分组删除 Policies 失败:" + deleteResponse); | ||
Assertions.assertTrue(deleteResponse.isOK(), "8.1 用户分组删除 Policies 失败:" + deleteResponse); | ||
|
||
getRequest = new ApiGetGroupPolicies.Request(baseUrl, groupAlias); | ||
getApi = new ApiGetGroupPolicies(null, config); | ||
getResponse = getApi.request(getRequest); | ||
Assertions.assertNotNull(getResponse, "9. 获取用户分组 Policies 失败:" + getResponse); | ||
Assertions.assertTrue(getResponse.isOK(), "9.1 获取用户分组失败 Policies :" + getResponse); | ||
getResponsePoliciesData = getResponse.getData().getData(); | ||
Assertions.assertNotNull(getResponsePoliciesData, "9.2 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
Assertions.assertTrue(getResponsePoliciesData.getCount() == 1, "9.3 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
Assertions.assertTrue(getResponsePoliciesData.getList().length == 1, "9.4 获取用户分组失败 Policies :" + getResponsePoliciesData); | ||
groupPolicies = getResponsePoliciesData.getList(); | ||
Assertions.assertEquals(groupPolicies[0].getAlias(), policyAliasB, "9.5 获取用户分组失败 Policies"); | ||
} catch (QiniuException e) { | ||
throw new RuntimeException(e); | ||
} | ||
|
||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
魔法值【400】
Details
lint 解释
在代码中使用了硬编码的数字(magic number),即直接在代码中使用了没有解释的数值。这种做法可能会导致代码难以理解和维护,因为如果需要更改这个数值,可能需要在整个代码库中查找并替换。
错误用法
在这个例子中,
400
是一个硬编码的数字,表示HTTP状态码“Bad Request”。正确用法
为了避免使用魔法值,可以定义一个常量来代替这个数值。这样,如果需要更改这个数值,只需要在一个地方进行修改。
通过这种方式,代码的可读性和维护性都得到了提升。