public async Task CleanUpResourcesTest()

in dotnetv3/IAM/IAMUserExample/IAMUserExampleTests/IAMUserTests.cs [272:388]


        public async Task CleanUpResourcesTest()
        {
            var mockIAMClient = new Mock<AmazonIdentityManagementServiceClient>();
            var mockS3Client = new Mock<AmazonS3Client>();

            mockIAMClient.Setup(client => client.RemoveUserFromGroupAsync(
                It.IsAny<RemoveUserFromGroupRequest>(),
                It.IsAny<CancellationToken>()
            )).Callback<RemoveUserFromGroupRequest, CancellationToken>((request, token) =>
            {
                if (!string.IsNullOrEmpty(request.GroupName))
                {
                    Assert.Equal(request.GroupName, GroupName);
                }
            }).Returns((RemoveUserFromGroupRequest r, CancellationToken token) =>
            {
                return Task.FromResult(new RemoveUserFromGroupResponse()
                {
                    HttpStatusCode = System.Net.HttpStatusCode.OK,
                });
            });

            mockIAMClient.Setup(client => client.DeleteAccessKeyAsync(
                It.IsAny<DeleteAccessKeyRequest>(),
                It.IsAny<CancellationToken>()
            )).Callback<DeleteAccessKeyRequest, CancellationToken>((request, token) =>
            {
                if (!string.IsNullOrEmpty(request.UserName))
                {
                    Assert.Equal(request.UserName, UserName);
                }
                if (!string.IsNullOrEmpty(request.AccessKeyId))
                {
                    Assert.Equal(request.AccessKeyId, AccessKeyId);
                }
            }).Returns((DeleteAccessKeyRequest r, CancellationToken token) =>
            {
                return Task.FromResult(new DeleteAccessKeyResponse()
                {
                    HttpStatusCode = System.Net.HttpStatusCode.OK,
                });
            });

            mockIAMClient.Setup(client => client.DeleteUserAsync(
                It.IsAny<DeleteUserRequest>(),
                It.IsAny<CancellationToken>()
            )).Callback<DeleteUserRequest, CancellationToken>((request, token) =>
            {
                if (!string.IsNullOrEmpty(request.UserName))
                {
                    Assert.Equal(request.UserName, UserName);
                }
            }).Returns((DeleteUserRequest r, CancellationToken token) =>
            {
                return Task.FromResult(new DeleteUserResponse()
                {
                    HttpStatusCode = System.Net.HttpStatusCode.OK,
                });
            });

            mockIAMClient.Setup(client => client.DeleteGroupPolicyAsync(
                It.IsAny<DeleteGroupPolicyRequest>(),
                It.IsAny<CancellationToken>()
            )).Callback<DeleteGroupPolicyRequest, CancellationToken>((request, token) =>
            {
                if (!string.IsNullOrEmpty(request.GroupName))
                {
                    Assert.Equal(request.GroupName, GroupName);
                }
            }).Returns((DeleteGroupPolicyRequest r, CancellationToken token) =>
            {
                return Task.FromResult(new DeleteGroupPolicyResponse()
                {
                    HttpStatusCode = System.Net.HttpStatusCode.OK,
                });
            });

            mockIAMClient.Setup(client => client.DeleteGroupAsync(
                It.IsAny<DeleteGroupRequest>(),
                It.IsAny<CancellationToken>()
            )).Callback<DeleteGroupRequest, CancellationToken>((request, token) =>
            {
                if (!string.IsNullOrEmpty(request.GroupName))
                {
                    Assert.Equal(request.GroupName, GroupName);
                }
            }).Returns((DeleteGroupRequest r, CancellationToken token) =>
            {
                return Task.FromResult(new DeleteGroupResponse()
                {
                    HttpStatusCode = System.Net.HttpStatusCode.OK,
                });
            });

            var iamClient = mockIAMClient.Object;

            mockS3Client.Setup(client => client.DeleteBucketAsync(
                It.IsAny<string>(),
                It.IsAny<CancellationToken>()
            )).Callback<string, CancellationToken>((bucketName, token) =>
            {
                if (!string.IsNullOrEmpty(bucketName))
                {
                    Assert.Equal(bucketName, BucketName);
                }
            }).Returns((string bucketName, CancellationToken token) =>
            {
                return Task.FromResult(new DeleteBucketResponse()
                {
                    HttpStatusCode = System.Net.HttpStatusCode.OK,
                });
            });

            var s3Client = mockS3Client.Object;

            await IAMUserExample.IAMUser.CleanUpResources(iamClient, s3Client, UserName, GroupName, BucketName, AccessKeyId);
        }