Skip to content

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

Merged
merged 2 commits into from
Jan 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code-gen/api-specs
Submodule api-specs added at dd60a2
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public static class Request extends Api.Request {
*/
public Request(String urlPrefix, String alias, DeletedGroupIamPoliciesParam data) {
super(urlPrefix);
this.setMethod(MethodType.PATCH);
this.setMethod(MethodType.DELETE);
this.setAuthType(AuthTypeQiniu);
this.alias = alias;
this.data = data;
Expand Down
5 changes: 4 additions & 1 deletion src/test/java/com/qiniu/audit/apis/ApiQueryLogTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,10 @@ public void testQuery() {


} catch (QiniuException e) {
throw new RuntimeException(e);
if (e.response == null || e.response.statusCode != 400) {
Copy link

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),即直接在代码中使用了没有解释的数值。这种做法可能会导致代码难以理解和维护,因为如果需要更改这个数值,可能需要在整个代码库中查找并替换。

错误用法

if (responseCode == 400) {
    // 处理错误情况
}

在这个例子中,400 是一个硬编码的数字,表示HTTP状态码“Bad Request”。

正确用法

为了避免使用魔法值,可以定义一个常量来代替这个数值。这样,如果需要更改这个数值,只需要在一个地方进行修改。

public static final int HTTP_BAD_REQUEST = 400;

if (responseCode == HTTP_BAD_REQUEST) {
    // 处理错误情况
}

通过这种方式,代码的可读性和维护性都得到了提升。


💡 以上内容由 AI 辅助生成,如有疑问欢迎反馈交流

throw new RuntimeException(e);
}
e.printStackTrace();
}
}
}
164 changes: 164 additions & 0 deletions src/test/java/com/qiniu/iam/apis/GroupPolicyApiTest.java
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 {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

【GroupPolicyApiTest】缺少包含@author的注释信息

Details

lint 解释

在Java代码中,@author 注释用于标识代码的作者。根据代码规范和最佳实践,每个类、接口或方法都应该包含 @author 注释,以便其他开发者了解代码的来源。

错误用法

public class GroupPolicyApiTest {
    // 缺少 @author 注释
}

正确用法

/**
 * @author 你的名字或团队名称
 */
public class GroupPolicyApiTest {
    // 类的内容
}

💡 以上内容由 AI 辅助生成,如有疑问欢迎反馈交流


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() {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

方法【testGroupPolicyApi】的总行数不要超过80行。

Details

lint 解释

该lint结果提示在方法 testGroupPolicyApi 中,代码的总行数超过了推荐的80行。这可能会导致代码难以阅读和维护。

错误用法

以下是一个示例,展示了可能违反此规则的代码:

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() {
    // 清理资源的代码
}

通过这种方式,可以将 testGroupPolicyApi 方法拆分为多个更小的方法,每个方法只负责一个功能,从而提高代码的可读性和可维护性。


💡 以上内容由 AI 辅助生成,如有疑问欢迎反馈交流

// 清理
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);
}

}
}
Loading