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); }