|
| 1 | +package test.com.qiniu.iam.apis; |
| 2 | + |
| 3 | +import com.qiniu.common.QiniuException; |
| 4 | +import com.qiniu.iam.apis.*; |
| 5 | +import com.qiniu.storage.Api; |
| 6 | +import org.junit.jupiter.api.Assertions; |
| 7 | +import org.junit.jupiter.api.Tag; |
| 8 | +import org.junit.jupiter.api.Test; |
| 9 | + |
| 10 | +import static org.junit.jupiter.api.Assertions.*; |
| 11 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 12 | + |
| 13 | +public class GroupsApiTest { |
| 14 | + |
| 15 | + String groupAlias = ApiTestConfig.userAlias + "AAAAAAA"; |
| 16 | + String userAlias = ApiTestConfig.userAlias; |
| 17 | + String userPWD = ApiTestConfig.userPWD; |
| 18 | + String baseUrl = ApiTestConfig.baseUrl; |
| 19 | + Api.Config config = ApiTestConfig.config; |
| 20 | + |
| 21 | + |
| 22 | + @Test |
| 23 | + @Tag("IntegrationTest") |
| 24 | + public void testGroups() { |
| 25 | + // 先删除,流程开始先清理历史数据 |
| 26 | + ApiDeleteUser.Request deleteRequest = new ApiDeleteUser.Request(baseUrl, userAlias); |
| 27 | + ApiDeleteUser deleteApi = new ApiDeleteUser(null, config); |
| 28 | + try { |
| 29 | + deleteApi.request(deleteRequest); |
| 30 | + } catch (QiniuException e) { |
| 31 | + // 删除失败时预期的 |
| 32 | + e.printStackTrace(); |
| 33 | + } |
| 34 | + |
| 35 | + String groupDescription = "JavaTestGroupDescription"; |
| 36 | + try { |
| 37 | + |
| 38 | + // 1. 创建分组 |
| 39 | + ApiCreateGroup.Request.CreateGroupParam createGroupParam = new ApiCreateGroup.Request.CreateGroupParam(); |
| 40 | + createGroupParam.setAlias(groupAlias); |
| 41 | + createGroupParam.setDescription(groupDescription); |
| 42 | + ApiCreateGroup.Request createGroupRequest = new ApiCreateGroup.Request(baseUrl, createGroupParam); |
| 43 | + ApiCreateGroup createGroupApi = new ApiCreateGroup(null, config); |
| 44 | + ApiCreateGroup.Response createGroupResponse = createGroupApi.request(createGroupRequest); |
| 45 | + Assertions.assertNotNull(createGroupResponse, "1. 创建分组失败:" + createGroupResponse); |
| 46 | + Assertions.assertTrue(createGroupResponse.isOK(), "1.1 创建分组失败:" + createGroupResponse); |
| 47 | + ApiCreateGroup.Response.CreatedGroupData createGroupResponseData = createGroupResponse.getData().getData(); |
| 48 | + Assertions.assertNotNull(createGroupResponseData.getId(), "1.2 创建分组失败:" + createGroupResponse); |
| 49 | + Assertions.assertNotNull(createGroupResponseData.getRootUid(), "1.3 创建分组失败:" + createGroupResponse); |
| 50 | + Assertions.assertNotNull(createGroupResponseData.getAlias(), "1.4 创建分组失败:" + createGroupResponse); |
| 51 | + Assertions.assertEquals(createGroupResponseData.getDescription(), groupDescription, "1.5 创建分组失败:" + createGroupResponse); |
| 52 | + Assertions.assertEquals(createGroupResponseData.getEnabled(), true, "1.6 创建分组失败:" + createGroupResponse); |
| 53 | + Assertions.assertNotNull(createGroupResponseData.getCreatedAt(), "1.7 创建分组失败:" + createGroupResponse); |
| 54 | + Assertions.assertNotNull(createGroupResponseData.getUpdatedAt(), "1.8 创建分组失败:" + createGroupResponse); |
| 55 | + |
| 56 | + // 2. 获取分组详情 |
| 57 | + ApiGetGroup.Request getRequest = new ApiGetGroup.Request(baseUrl, groupAlias); |
| 58 | + ApiGetGroup getApi = new ApiGetGroup(null, config); |
| 59 | + ApiGetGroup.Response getResponse = getApi.request(getRequest); |
| 60 | + Assertions.assertNotNull(getResponse, "2. 获取分组详情失败:" + getResponse); |
| 61 | + Assertions.assertTrue(getResponse.isOK(), "2.1 获取分组详情失败:" + getResponse); |
| 62 | + ApiGetGroup.Response.GetGroupData getResponseData = getResponse.getData().getData(); |
| 63 | + Assertions.assertNotNull(getResponseData, "2.2 获取分组详情失败:" + getResponse); |
| 64 | + Assertions.assertEquals(getResponseData.getId(), createGroupResponseData.getId(), "2.3 获取分组详情失败:" + getResponse); |
| 65 | + Assertions.assertEquals(getResponseData.getRootUid(), createGroupResponseData.getRootUid(), "2.4 获取分组详情失败:" + getResponse); |
| 66 | + Assertions.assertEquals(getResponseData.getAlias(), createGroupResponseData.getAlias(), "2.5 获取分组详情失败:" + getResponse); |
| 67 | + Assertions.assertEquals(getResponseData.getDescription(), createGroupResponseData.getDescription(), "2.6 获取分组详情失败:" + getResponse); |
| 68 | + Assertions.assertEquals(getResponseData.getEnabled(), createGroupResponseData.getEnabled(), "2.7 获取分组详情失败:" + getResponse); |
| 69 | + Assertions.assertNotNull(getResponseData.getCreatedAt(), "2.8 获取分组详情失败:" + getResponse); |
| 70 | + Assertions.assertNotNull(getResponseData.getUpdatedAt(), "2.9 获取分组详情失败:" + getResponse); |
| 71 | + |
| 72 | + |
| 73 | + // 3. 列举所有分组 |
| 74 | + ApiGetGroups.Request getGroupsRequest = new ApiGetGroups.Request(baseUrl); |
| 75 | + ApiGetGroups getGroupsApi = new ApiGetGroups(null, config); |
| 76 | + ApiGetGroups.Response getGroupsResponse = getGroupsApi.request(getGroupsRequest); |
| 77 | + Assertions.assertNotNull(getGroupsResponse, "3. 列举所有分组失败:" + getResponse); |
| 78 | + Assertions.assertTrue(getGroupsResponse.isOK(), "3.1 列举所有分组详情失败:" + getResponse); |
| 79 | + ApiGetGroups.Response.GetGroupsData getGroupsResponseData = getGroupsResponse.getData().getData(); |
| 80 | + Assertions.assertNotNull(getGroupsResponseData, "3.2 列举所有分组失败:" + getResponse); |
| 81 | + Assertions.assertTrue(getGroupsResponseData.getCount() > 0, "3.3 列举所有分组失败:" + getResponse); |
| 82 | + Assertions.assertNotNull(getGroupsResponseData.getList(), "3.4 列举所有分组失败:" + getResponse); |
| 83 | + ApiGetGroups.Response.GetGroup group = null; |
| 84 | + for (ApiGetGroups.Response.GetGroup g : getGroupsResponseData.getList()) { |
| 85 | + if (g.getId().equals(getResponseData.getId())) { |
| 86 | + group = g; |
| 87 | + } |
| 88 | + } |
| 89 | + Assertions.assertNotNull(group, "3.5 列举所有分组失败:" + getResponse); |
| 90 | + Assertions.assertEquals(group.getId(), getResponseData.getId(), "3.6 列举所有分组失败:" + getResponse); |
| 91 | + Assertions.assertEquals(group.getRootUid(), getResponseData.getRootUid(), "3.7 列举所有分组失败:" + getResponse); |
| 92 | + Assertions.assertEquals(group.getAlias(), getResponseData.getAlias(), "3.8 列举所有分组失败:" + getResponse); |
| 93 | + Assertions.assertEquals(group.getDescription(), getResponseData.getDescription(), "3.9 列举所有分组失败:" + getResponse); |
| 94 | + Assertions.assertEquals(group.getEnabled(), getResponseData.getEnabled(), "3.10 列举所有分组失败:" + getResponse); |
| 95 | + Assertions.assertNotNull(group.getCreatedAt(), "3.11 列举所有分组失败:" + getResponse); |
| 96 | + Assertions.assertNotNull(group.getUpdatedAt(), "3.12 列举所有分组失败:" + getResponse); |
| 97 | + |
| 98 | + |
| 99 | + // 4. 更新用户分组详情 |
| 100 | + String newGroupAlias = groupAlias + "New"; |
| 101 | + groupDescription = groupDescription + "New"; |
| 102 | + ApiModifyGroup.Request.ModifyGroupParam modifyGroupParam = new ApiModifyGroup.Request.ModifyGroupParam(); |
| 103 | + modifyGroupParam.setNewAlias(newGroupAlias); |
| 104 | + modifyGroupParam.setDescription(groupDescription); |
| 105 | + ApiModifyGroup.Request modifyGroupRequest = new ApiModifyGroup.Request(baseUrl, groupAlias, modifyGroupParam); |
| 106 | + ApiModifyGroup modifyGroupApi = new ApiModifyGroup(null, config); |
| 107 | + ApiModifyGroup.Response modifyGroupResponse = modifyGroupApi.request(modifyGroupRequest); |
| 108 | + Assertions.assertNotNull(modifyGroupResponse, "4. 创建分组失败:" + modifyGroupRequest); |
| 109 | + Assertions.assertTrue(modifyGroupResponse.isOK(), "4.1 创建分组失败:" + modifyGroupRequest); |
| 110 | + |
| 111 | + groupAlias = newGroupAlias; |
| 112 | + |
| 113 | + // 5. 验证用户分组详情更新 |
| 114 | + getRequest = new ApiGetGroup.Request(baseUrl, groupAlias); |
| 115 | + getApi = new ApiGetGroup(null, config); |
| 116 | + getResponse = getApi.request(getRequest); |
| 117 | + Assertions.assertNotNull(getResponse, "5. 获取分组详情失败:" + getResponse); |
| 118 | + Assertions.assertTrue(getResponse.isOK(), "5.1 获取分组详情失败:" + getResponse); |
| 119 | + getResponseData = getResponse.getData().getData(); |
| 120 | + Assertions.assertNotNull(getResponseData, "5.2 获取分组详情失败:" + getResponse); |
| 121 | + Assertions.assertEquals(getResponseData.getId(), createGroupResponseData.getId(), "5.3 获取分组详情失败:" + getResponse); |
| 122 | + Assertions.assertEquals(getResponseData.getRootUid(), createGroupResponseData.getRootUid(), "5.4 获取分组详情失败:" + getResponse); |
| 123 | + Assertions.assertEquals(getResponseData.getAlias(), groupAlias, "5.5 获取分组详情失败:" + getResponse); |
| 124 | + Assertions.assertEquals(getResponseData.getDescription(), groupDescription, "5.6 获取分组详情失败:" + getResponse); |
| 125 | + Assertions.assertEquals(getResponseData.getEnabled(), createGroupResponseData.getEnabled(), "5.7 获取分组详情失败:" + getResponse); |
| 126 | + Assertions.assertNotNull(getResponseData.getCreatedAt(), "5.8 获取分组详情失败:" + getResponse); |
| 127 | + Assertions.assertNotNull(getResponseData.getUpdatedAt(), "5.9 获取分组详情失败:" + getResponse); |
| 128 | + |
| 129 | + // 用户相关 |
| 130 | + // 6. 创建群组的用户 |
| 131 | + ApiCreateUser.Request.CreateIamUserParam createUserParam = new ApiCreateUser.Request.CreateIamUserParam(); |
| 132 | + createUserParam.setAlias(userAlias); |
| 133 | + createUserParam.setPassword(userPWD); |
| 134 | + ApiCreateUser.Request createUserRequest = new ApiCreateUser.Request(baseUrl, createUserParam); |
| 135 | + ApiCreateUser createApi = new ApiCreateUser(null, config); |
| 136 | + ApiCreateUser.Response createUserResponse = createApi.request(createUserRequest); |
| 137 | + assertNotNull(createUserResponse, "6. 创建 User 失败:" + createUserResponse); |
| 138 | + assertTrue(createUserResponse.isOK(), "6.1 创建 User 失败:" + createUserResponse); |
| 139 | + ApiCreateUser.Response.CreatedIamUserData createUser = createUserResponse.getData().getData(); |
| 140 | + |
| 141 | + // 6.1 群组添加用户 |
| 142 | + ApiModifyGroupUsers.Request.ModifyGroupIamUsersParam modifyGroupUserParam = new ApiModifyGroupUsers.Request.ModifyGroupIamUsersParam(); |
| 143 | + modifyGroupUserParam.setUserAliases(new String[]{userAlias}); |
| 144 | + ApiModifyGroupUsers.Request modifyGroupUserRequest = new ApiModifyGroupUsers.Request(baseUrl, groupAlias, modifyGroupUserParam); |
| 145 | + ApiModifyGroupUsers modifyGroupUserApi = new ApiModifyGroupUsers(null, config); |
| 146 | + ApiModifyGroupUsers.Response modifyGroupUserResponse = modifyGroupUserApi.request(modifyGroupUserRequest); |
| 147 | + assertNotNull(modifyGroupUserResponse, "6.1 创建 User 失败:" + modifyGroupUserResponse); |
| 148 | + assertTrue(modifyGroupUserResponse.isOK(), "6.1.1 创建 User 失败:" + modifyGroupUserResponse); |
| 149 | + |
| 150 | + // 7. 列举群组的用户,验证创建是否成功 |
| 151 | + ApiGetGroupUsers.Request getGroupUsersRequest = new ApiGetGroupUsers.Request(baseUrl, groupAlias); |
| 152 | + ApiGetGroupUsers getGroupUsersApi = new ApiGetGroupUsers(null, config); |
| 153 | + ApiGetGroupUsers.Response getGroupUsersResponse = getGroupUsersApi.request(getGroupUsersRequest); |
| 154 | + assertNotNull(getGroupUsersResponse, "7. 列举群组的用户失败:" + getGroupUsersResponse); |
| 155 | + assertTrue(getGroupUsersResponse.isOK(), "7.1 列举群组的用户失败:" + getGroupUsersResponse); |
| 156 | + assertEquals(1, (int) getGroupUsersResponse.getData().getData().getCount(), "7.2 列举群组的用户失败:" + getGroupUsersResponse); |
| 157 | + ApiGetGroupUsers.Response.GroupIamUser groupUser = getGroupUsersResponse.getData().getData().getList()[0]; |
| 158 | + assertEquals(groupUser.getId(), createUser.getId(), "7.3 列举群组的用户失败:" + getGroupUsersResponse); |
| 159 | + assertEquals(groupUser.getRootUid(), createUser.getRootUid(), "7.4 列举群组的用户失败:" + getGroupUsersResponse); |
| 160 | + assertEquals(groupUser.getIuid(), createUser.getIuid(), "7.5 列举群组的用户失败:" + getGroupUsersResponse); |
| 161 | + assertEquals(groupUser.getAlias(), createUser.getAlias(), "7.6 列举群组的用户失败:" + getGroupUsersResponse); |
| 162 | + assertNotNull(groupUser.getCreatedAt(), "7.7 列举群组的用户失败:" + getGroupUsersResponse); |
| 163 | + assertNotNull(groupUser.getUpdatedAt(), "7.8 列举群组的用户失败:" + getGroupUsersResponse); |
| 164 | + assertNotNull(groupUser.getLastLoginTime(), "7.9 列举群组的用户失败:" + getGroupUsersResponse); |
| 165 | + assertEquals(groupUser.getEnabled(), createUser.getEnabled(), "7.10 列举群组的用户失败:" + getGroupUsersResponse); |
| 166 | + |
| 167 | + // 8. 删除群组的用户 |
| 168 | + ApiDeleteGroupUsers.Request.DeletedGroupIamUsersParam deleteGroupUserParam = new ApiDeleteGroupUsers.Request.DeletedGroupIamUsersParam(); |
| 169 | + deleteGroupUserParam.setUserAliases(new String[]{userAlias}); |
| 170 | + ApiDeleteGroupUsers.Request deleteGroupUserRequest = new ApiDeleteGroupUsers.Request(baseUrl, groupAlias, deleteGroupUserParam); |
| 171 | + ApiDeleteGroupUsers deleteGroupUserApi = new ApiDeleteGroupUsers(null, config); |
| 172 | + ApiDeleteGroupUsers.Response deleteGroupUserResponse = deleteGroupUserApi.request(deleteGroupUserRequest); |
| 173 | + assertNotNull(deleteGroupUserResponse, "8. 删除群组的用户失败:" + deleteGroupUserResponse); |
| 174 | + assertTrue(deleteGroupUserResponse.isOK(), "8.1 删除群组的用户失败:" + deleteGroupUserResponse); |
| 175 | + |
| 176 | + // 9. 列举群组的用户,验证删除 |
| 177 | + getGroupUsersRequest = new ApiGetGroupUsers.Request(baseUrl, groupAlias); |
| 178 | + getGroupUsersApi = new ApiGetGroupUsers(null, config); |
| 179 | + getGroupUsersResponse = getGroupUsersApi.request(getGroupUsersRequest); |
| 180 | + assertNotNull(getGroupUsersResponse, "9. 列举群组的用户失败:" + getGroupUsersResponse); |
| 181 | + assertTrue(getGroupUsersResponse.isOK(), "9.1 列举群组的用户失败:" + getGroupUsersResponse); |
| 182 | + assertEquals(0, (int) getGroupUsersResponse.getData().getData().getCount(), "9.2 列举群组的用户失败:" + getGroupUsersResponse); |
| 183 | + |
| 184 | + // 10. 重新分配 User |
| 185 | + ApiUpdateGroupUsers.Request.UpdatedGroupIamUsersParam updateGroupUsersRequestParam = new ApiUpdateGroupUsers.Request.UpdatedGroupIamUsersParam(); |
| 186 | + updateGroupUsersRequestParam.setUserAliases(new String[]{userAlias}); |
| 187 | + ApiUpdateGroupUsers.Request updateGroupUsersRequest = new ApiUpdateGroupUsers.Request(baseUrl, groupAlias, updateGroupUsersRequestParam); |
| 188 | + ApiUpdateGroupUsers updateGroupUsersApi = new ApiUpdateGroupUsers(null, config); |
| 189 | + ApiUpdateGroupUsers.Response updateGroupUsersResponse = updateGroupUsersApi.request(updateGroupUsersRequest); |
| 190 | + assertNotNull(updateGroupUsersResponse, "10. 分组增加 User 失败:" + updateGroupUsersResponse); |
| 191 | + assertTrue(updateGroupUsersResponse.isOK(), "10.1 分组增加 User 失败:" + updateGroupUsersResponse); |
| 192 | + |
| 193 | + // 11. 列举群组的用户,验证重置 |
| 194 | + getGroupUsersRequest = new ApiGetGroupUsers.Request(baseUrl, groupAlias); |
| 195 | + getGroupUsersApi = new ApiGetGroupUsers(null, config); |
| 196 | + getGroupUsersResponse = getGroupUsersApi.request(getGroupUsersRequest); |
| 197 | + assertNotNull(getGroupUsersResponse, "11. 列举群组的用户失败:" + getGroupUsersResponse); |
| 198 | + assertTrue(getGroupUsersResponse.isOK(), "11.1 列举群组的用户失败:" + getGroupUsersResponse); |
| 199 | + assertEquals(1, (int) getGroupUsersResponse.getData().getData().getCount(), "11.2 列举群组的用户失败:" + getGroupUsersResponse); |
| 200 | + groupUser = getGroupUsersResponse.getData().getData().getList()[0]; |
| 201 | + assertEquals(groupUser.getId(), createUser.getId(), "11.3 列举群组的用户失败:" + getGroupUsersResponse); |
| 202 | + assertEquals(groupUser.getRootUid(), createUser.getRootUid(), "11.4 列举群组的用户失败:" + getGroupUsersResponse); |
| 203 | + assertEquals(groupUser.getIuid(), createUser.getIuid(), "11.5 列举群组的用户失败:" + getGroupUsersResponse); |
| 204 | + assertEquals(groupUser.getAlias(), createUser.getAlias(), "11.6 列举群组的用户失败:" + getGroupUsersResponse); |
| 205 | + assertNotNull(groupUser.getCreatedAt(), "11.7 列举群组的用户失败:" + getGroupUsersResponse); |
| 206 | + assertNotNull(groupUser.getUpdatedAt(), "11.8 列举群组的用户失败:" + getGroupUsersResponse); |
| 207 | + assertNotNull(groupUser.getLastLoginTime(), "11.9 列举群组的用户失败:" + getGroupUsersResponse); |
| 208 | + assertEquals(groupUser.getEnabled(), createUser.getEnabled(), "11.10 列举群组的用户失败:" + getGroupUsersResponse); |
| 209 | + |
| 210 | + |
| 211 | + } catch (QiniuException e) { |
| 212 | + throw new RuntimeException(e); |
| 213 | + } |
| 214 | + |
| 215 | + } |
| 216 | +} |
0 commit comments