Пример #1
0
        public async Task <string> Execute(IBoxClient client)
        {
            var retentionPolicyRequest = new BoxRetentionPolicyRequest
            {
                PolicyName        = _policyName,
                PolicyType        = "finite",
                RetentionLength   = 1,
                DispositionAction = DispositionAction.permanently_delete.ToString(),
            };

            var response = await client.RetentionPoliciesManager.CreateRetentionPolicyAsync(retentionPolicyRequest);

            Policy   = response;
            PolicyId = Policy.Id;

            var assignmentRequest = new BoxRetentionPolicyAssignmentRequest()
            {
                PolicyId = PolicyId,
                AssignTo = new BoxRequestEntity()
                {
                    Type = BoxType.folder,
                    Id   = _folderId
                }
            };

            await client.RetentionPoliciesManager.CreateRetentionPolicyAssignmentAsync(assignmentRequest);

            return(PolicyId);
        }
        public async Task CreateRetentionPolicy_OptionalParams_Success()
        {
            /*** Arrange ***/
            string policyName      = "Tax Documents";
            int    retentionLength = 365;
            string policyType      = "finite";
            string policyAction    = "permanently_delete";
            string notifiedUserID  = "12345";
            string responseString  = "{"
                                     + "\"type\": \"retention_policy\","
                                     + "\"id\": \"123456789\","
                                     + "\"policy_name\": \"" + policyName + "\","
                                     + "\"policy_type\": \"" + policyType + "\","
                                     + "\"retention_length\": " + retentionLength + ","
                                     + "\"disposition_action\": \"" + policyAction + "\","
                                     + "\"status\": \"active\","
                                     + "\"created_by\": {"
                                     + " \"type\": \"user\","
                                     + " \"id\": \"11993747\","
                                     + " \"name\": \"Sean\","
                                     + " \"login\": \"[email protected]\""
                                     + "},"
                                     + "\"created_at\": \"2015-05-01T11:12:54-07:00\","
                                     + "\"modified_at\": null,"
                                     + "\"can_owner_extend_retention\": true,"
                                     + "\"are_owners_notified\": true,"
                                     + "\"custom_notification_recipients\": ["
                                     + "  {"
                                     + "    \"type\": \"user\","
                                     + "    \"id\": \"" + notifiedUserID + "\""
                                     + "  }"
                                     + "]"
                                     + "}";

            Handler.Setup(h => h.ExecuteAsync <BoxRetentionPolicy>(It.IsAny <IBoxRequest>()))
            .Returns(Task.FromResult <IBoxResponse <BoxRetentionPolicy> >(new BoxResponse <BoxRetentionPolicy>()
            {
                Status        = ResponseStatus.Success,
                ContentString = responseString
            }));

            /*** Act ***/
            BoxRetentionPolicyRequest requestParams = new BoxRetentionPolicyRequest();

            requestParams.AreOwnersNotified       = true;
            requestParams.CanOwnerExtendRetention = true;
            BoxRequestEntity notifiedUser = new BoxRequestEntity();

            notifiedUser.Type = BoxType.user;
            notifiedUser.Id   = notifiedUserID;
            requestParams.CustomNotificationRecipients = new List <BoxRequestEntity>()
            {
                notifiedUser
            };
            requestParams.PolicyName        = policyName;
            requestParams.PolicyType        = policyType;
            requestParams.RetentionLength   = retentionLength;
            requestParams.DispositionAction = policyAction;
            BoxRetentionPolicy results = await _retentionPoliciesManager.CreateRetentionPolicyAsync(requestParams);

            /*** Assert ***/
            Assert.AreEqual(policyAction, results.DispositionAction);
            Assert.AreEqual(policyName, results.PolicyName);
            Assert.AreEqual(policyType, results.PolicyType);
            Assert.AreEqual(retentionLength.ToString(), results.RetentionLength);
            Assert.AreEqual(true, results.CanOwnerExtendRetention);
            Assert.AreEqual(true, results.AreOwnersNotified);
            Assert.IsNotNull(results.CustomNotificationRecipients);
            Assert.AreEqual(1, results.CustomNotificationRecipients.Count);
            Assert.AreEqual(notifiedUserID, results.CustomNotificationRecipients[0].Id);
        }