Ejemplo n.º 1
0
        /// <summary>
        /// Create a new Assignment, which will apply the Legal Hold Policy to the target of the Assignment.
        /// </summary>
        /// <param name="createRequest">BoxLegalHoldPolicyAssignmentRequest object.</param>
        /// <returns>For a successful request, returns object with information about the Assignment created.
        /// If the policy or assign-to target cannot be found, null will be returned.
        /// </returns>
        public async Task <BoxLegalHoldPolicyAssignment> CreateAssignmentAsync(BoxLegalHoldPolicyAssignmentRequest createRequest)
        {
            createRequest.ThrowIfNull("createRequest")
            .PolicyId.ThrowIfNullOrWhiteSpace("createRequest.PolicyId");
            createRequest.AssignTo.ThrowIfNull("createRequest.AssignTo")
            .Id.ThrowIfNullOrWhiteSpace("createRequest.AssignTo.Id");
            createRequest.AssignTo.Type.ThrowIfNull("createRequest.AssignTo.Type");

            BoxRequest request = new BoxRequest(_config.LegalHoldPolicyAssignmentsEndpointUri)
                                 .Method(RequestMethod.Post)
                                 .Payload(_converter.Serialize(createRequest));

            IBoxResponse <BoxLegalHoldPolicyAssignment> response = await ToResponseAsync <BoxLegalHoldPolicyAssignment>(request).ConfigureAwait(false);

            return(response.ResponseObject);
        }
Ejemplo n.º 2
0
        public async Task CreateNewAssignment_ValidResponse()
        {
            /*** Arrange ***/
            var         responseString = @"{
                                          ""type"": ""legal_hold_policy_assignment"",
                                          ""id"": ""255613"",
                                          ""legal_hold_policy"": {
                                            ""type"": ""legal_hold_policy"",
                                            ""id"": ""166757"",
                                            ""policy_name"": ""Bug Bash 5-12 Policy 3 updated""
                                          },
                                          ""assigned_to"": {
                                            ""type"": ""file"",
                                            ""id"": ""5025127885""
                                          },
                                          ""assigned_by"": {
                                            ""type"": ""user"",
                                            ""id"": ""2030388321"",
                                            ""name"": ""Steve Boxuser"",
                                            ""login"": ""*****@*****.**""
                                          },
                                          ""assigned_at"": ""2016-05-18T17:38:03-07:00"",
                                          ""deleted_at"": null
                                        }";
            IBoxRequest boxRequest     = null;
            var         legalHoldPolicyAssignmentUri = new Uri(Constants.LegalHoldPolicyAssignmentsEndpointString);

            Config.SetupGet(x => x.LegalHoldPolicyAssignmentsEndpointUri).Returns(legalHoldPolicyAssignmentUri);
            Handler.Setup(h => h.ExecuteAsync <BoxLegalHoldPolicyAssignment>(It.IsAny <IBoxRequest>()))
            .Returns(Task.FromResult <IBoxResponse <BoxLegalHoldPolicyAssignment> >(new BoxResponse <BoxLegalHoldPolicyAssignment>()
            {
                Status        = ResponseStatus.Success,
                ContentString = responseString
            }))
            .Callback <IBoxRequest>(r => boxRequest = r);

            /*** Act ***/
            var createRequest = new BoxLegalHoldPolicyAssignmentRequest()
            {
                PolicyId = "166757",
                AssignTo = new BoxRequestEntity()
                {
                    Id   = "5025127885",
                    Type = BoxType.file
                }
            };
            BoxLegalHoldPolicyAssignment result = await _legalHoldPoliciesManager.CreateAssignmentAsync(createRequest);

            /*** Assert ***/
            //Request check
            Assert.IsNotNull(boxRequest);
            Assert.AreEqual(RequestMethod.Post, boxRequest.Method);
            Assert.AreEqual(legalHoldPolicyAssignmentUri, boxRequest.AbsoluteUri.AbsoluteUri);
            BoxLegalHoldPolicyAssignmentRequest payLoad = JsonConvert.DeserializeObject <BoxLegalHoldPolicyAssignmentRequest>(boxRequest.Payload);

            Assert.AreEqual("166757", payLoad.PolicyId);
            Assert.AreEqual("5025127885", payLoad.AssignTo.Id);
            Assert.AreEqual(BoxType.file, payLoad.AssignTo.Type);

            //Response check
            Assert.AreEqual("legal_hold_policy_assignment", result.Type);
            Assert.AreEqual("255613", result.Id);
            Assert.AreEqual("legal_hold_policy", result.LegalHoldPolicy.Type);
            Assert.AreEqual("166757", result.LegalHoldPolicy.Id);
            Assert.AreEqual("Bug Bash 5-12 Policy 3 updated", result.LegalHoldPolicy.PolicyName);
            Assert.AreEqual("file", result.AssignedTo.Type);
            Assert.AreEqual("5025127885", result.AssignedTo.Id);
            Assert.AreEqual("user", result.AssignedBy.Type);
            Assert.AreEqual("2030388321", result.AssignedBy.Id);
            Assert.AreEqual("Steve Boxuser", result.AssignedBy.Name);
            Assert.AreEqual("*****@*****.**", result.AssignedBy.Login);
            Assert.IsNull(result.DeletedAt);
            Assert.AreEqual(DateTimeOffset.Parse("2016-05-18T17:38:03-07:00"), result.AssignedAt);
        }