public async Task ThrowIfNull_WorksWithNullable_NoValue() { var responseString = "{\"type\":\"task\",\"id\":\"1874102965\"}"; Handler.Setup(h => h.ExecuteAsync <BoxTask>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxTask> >(new BoxResponse <BoxTask>() { Status = ResponseStatus.Success, ContentString = responseString })); var taskRequest = new BoxTaskCreateRequest { Item = new BoxRequestEntity { Id = "1234" } }; try { BoxTask task = await _tasksManager.CreateTaskAsync(taskRequest); } catch (ArgumentNullException ex) { Assert.AreEqual("taskCreateRequest.Item.Type", ex.ParamName); return; } Assert.Fail("Exception should have been thrown"); }
private async Task RunCreate() { base.CheckForValue(this._fileId.Value, this._app, "A file ID is required for this command"); var boxClient = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); var taskRequest = new BoxTaskCreateRequest(); taskRequest.Item = new BoxRequestEntity() { Id = this._fileId.Value, Type = BoxType.file }; if (this._message.HasValue()) { taskRequest.Message = this._message.Value(); } if (this._due.HasValue()) { taskRequest.DueAt = GeneralUtilities.GetDateTimeFromString(this._due.Value()); } var createdTask = await boxClient.TasksManager.CreateTaskAsync(taskRequest); if (this._idOnly.HasValue()) { Reporter.WriteInformation(createdTask.Id); return; } if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting()) { base.OutputJson(createdTask); return; } base.PrintTask(createdTask); }
/// <summary> /// Used to create a single task for single user on a single file. /// </summary> /// <param name="taskCreateRequest">BoxTaskCreateRequest object.</param> /// <returns>A new task object will be returned upon success.</returns> public async Task <BoxTask> CreateTaskAsync(BoxTaskCreateRequest taskCreateRequest) { taskCreateRequest.ThrowIfNull("taskCreateRequest") .Item.ThrowIfNull("taskCreateRequest.Item") .Id.ThrowIfNullOrWhiteSpace("taskCreateRequest.Item.Id"); taskCreateRequest.Item.Type.ThrowIfNull("taskCreateRequest.Item.Type"); if (taskCreateRequest.Item.Type != BoxType.file) { throw new ArgumentException("Currently only file is supported", "taskCreateRequest.Item.Type"); } BoxRequest request = new BoxRequest(_config.TasksEndpointUri) .Method(RequestMethod.Post) .Payload(_converter.Serialize(taskCreateRequest)); IBoxResponse <BoxTask> response = await ToResponseAsync <BoxTask>(request).ConfigureAwait(false); return(response.ResponseObject); }
public async Task CreateTask_WithCompletionRule() { /*** Arrange ***/ var responseString = @"{ ""type"": ""task"", ""id"": ""1839355"", ""item"": { ""type"": ""file"", ""id"": ""7287087200"", ""sequence_id"": ""0"", ""etag"": ""0"", ""sha1"": ""0bbd79a105c504f99573e3799756debba4c760cd"", ""name"": ""box-logo.png"" }, ""due_at"": ""2014-04-03T11:09:43-07:00"", ""action"": ""review"", ""message"": ""REVIEW PLZ K THX"", ""task_assignment_collection"": { ""total_count"": 0, ""entries"": [] }, ""is_completed"": false, ""created_by"": { ""type"": ""user"", ""id"": ""11993747"", ""name"": ""sean"", ""login"": ""*****@*****.**"" }, ""created_at"": ""2013-04-03T11:12:54-07:00"", ""completion_rule"": ""any_assignee"" }"; IBoxRequest boxRequest = null; var tasksUri = new Uri(Constants.TasksEndpointString); Config.SetupGet(x => x.TasksEndpointUri).Returns(tasksUri); Handler.Setup(h => h.ExecuteAsync <BoxTask>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxTask> >(new BoxResponse <BoxTask>() { Status = ResponseStatus.Success, ContentString = responseString })) .Callback <IBoxRequest>(r => boxRequest = r); /*** Act ***/ var taskCreateRequest = new BoxTaskCreateRequest() { Item = new BoxRequestEntity() { Id = "7287087200", Type = BoxType.file }, Message = "REVIEW PLZ K THX", CompletionRule = BoxCompletionRule.any_assignee }; BoxTask result = await _tasksManager.CreateTaskAsync(taskCreateRequest); /*** Assert ***/ //Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Post, boxRequest.Method); Assert.AreEqual(tasksUri, boxRequest.AbsoluteUri.AbsoluteUri); BoxTaskCreateRequest payload = JsonConvert.DeserializeObject <BoxTaskCreateRequest>(boxRequest.Payload); Assert.AreEqual(taskCreateRequest.Item.Id, payload.Item.Id); Assert.AreEqual(taskCreateRequest.Item.Type, payload.Item.Type); Assert.AreEqual(taskCreateRequest.Message, payload.Message); Assert.AreEqual(taskCreateRequest.CompletionRule, payload.CompletionRule); Assert.IsTrue(boxRequest.Payload.ContainsKeyValue("completion_rule", "any_assignee")); //Response check Assert.AreEqual(BoxCompletionRule.any_assignee, result.CompletionRule); }
/// <summary> /// Used to create a single task for single user on a single file. /// </summary> /// <param name="taskCreateRequest">BoxTaskCreateRequest object.</param> /// <returns>A new task object will be returned upon success.</returns> public async Task<BoxTask> CreateTaskAsync(BoxTaskCreateRequest taskCreateRequest) { taskCreateRequest.ThrowIfNull("taskCreateRequest") .Item.ThrowIfNull("taskCreateRequest.Item") .Id.ThrowIfNullOrWhiteSpace("taskCreateRequest.Item.Id"); taskCreateRequest.Item.Type.ThrowIfNull("taskCreateRequest.Item.Type"); if (taskCreateRequest.Item.Type != BoxType.file) { throw new ArgumentException("Currently only file is supported", "taskCreateRequest.Item.Type"); } BoxRequest request = new BoxRequest(_config.TasksEndpointUri) .Method(RequestMethod.Post) .Payload(_converter.Serialize(taskCreateRequest)); IBoxResponse<BoxTask> response = await ToResponseAsync<BoxTask>(request).ConfigureAwait(false); return response.ResponseObject; }
public async Task CreateTask_ValidResponse() { /*** Arrange ***/ string responseString = @"{ ""type"": ""task"", ""id"": ""1839355"", ""item"": { ""type"": ""file"", ""id"": ""7287087200"", ""sequence_id"": ""0"", ""etag"": ""0"", ""sha1"": ""0bbd79a105c504f99573e3799756debba4c760cd"", ""name"": ""box-logo.png"" }, ""due_at"": ""2014-04-03T11:09:43-07:00"", ""action"": ""review"", ""message"": ""REVIEW PLZ K THX"", ""task_assignment_collection"": { ""total_count"": 0, ""entries"": [] }, ""is_completed"": false, ""created_by"": { ""type"": ""user"", ""id"": ""11993747"", ""name"": ""sean"", ""login"": ""*****@*****.**"" }, ""created_at"": ""2013-04-03T11:12:54-07:00"" }"; IBoxRequest boxRequest = null; Uri tasksUri = new Uri(Constants.TasksEndpointString); _config.SetupGet(x => x.TasksEndpointUri).Returns(tasksUri); _handler.Setup(h => h.ExecuteAsync<BoxTask>(It.IsAny<IBoxRequest>())) .Returns(Task.FromResult<IBoxResponse<BoxTask>>(new BoxResponse<BoxTask>() { Status = ResponseStatus.Success, ContentString = responseString })) .Callback<IBoxRequest>(r => boxRequest = r); /*** Act ***/ BoxTaskCreateRequest taskCreateRequest = new BoxTaskCreateRequest() { Item = new BoxRequestEntity() { Id = "7287087200", Type = BoxType.file }, Message = "REVIEW PLZ K THX" }; BoxTask result = await _tasksManager.CreateTaskAsync(taskCreateRequest); /*** Assert ***/ //Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Post, boxRequest.Method); Assert.AreEqual(tasksUri, boxRequest.AbsoluteUri.AbsoluteUri); BoxTaskCreateRequest payload = JsonConvert.DeserializeObject<BoxTaskCreateRequest>(boxRequest.Payload); Assert.AreEqual(taskCreateRequest.Item.Id, payload.Item.Id); Assert.AreEqual(taskCreateRequest.Item.Type, payload.Item.Type); Assert.AreEqual(taskCreateRequest.Message, payload.Message); //Response check Assert.AreEqual("1839355", result.Id); Assert.AreEqual("task", result.Type); Assert.AreEqual("7287087200", result.Item.Id); Assert.AreEqual("file", result.Item.Type); Assert.AreEqual("0", result.Item.ETag); Assert.AreEqual("REVIEW PLZ K THX", result.Message); Assert.AreEqual(false, result.IsCompleted); Assert.AreEqual("11993747", result.CreatedBy.Id); Assert.AreEqual("*****@*****.**", result.CreatedBy.Login); Assert.AreEqual(0, result.TaskAssignments.TotalCount); }