示例#1
0
 public async Task UpdateTemplateAsync_NullName_ShouldThrowArgumentException()
 {
     var templatePatchRequest = new TemplatePatchRequest()
     {
         Name = null,
     };
     Func <Task> create = () => _client.UpdateTemplateAsync(_workspaceId, "", templatePatchRequest);
     await create.Should().ThrowAsync <ArgumentException>()
     .WithMessage($"Value cannot be null. (Parameter '{nameof(TemplatePatchRequest.Name)}')");
 }
示例#2
0
        public async Task UpdateTemplateAsync_ShouldReturnTemplateDto()
        {
            // Create project for test
            var projectRequest = new ProjectRequest {
                Name = "Update Template test project " + Guid.NewGuid(), Color = "#FFFFFF"
            };
            var projectResponse = await _client.CreateProjectAsync(_workspaceId, projectRequest);

            projectResponse.IsSuccessful.Should().BeTrue();
            var projectId = projectResponse.Data.Id;
            // Create task
            var taskRequest = new TaskRequest {
                Name = "Template create task " + Guid.NewGuid()
            };
            var taskResponse = await _client.CreateTaskAsync(_workspaceId, projectId, taskRequest);

            taskResponse.IsSuccessful.Should().BeTrue();
            var taskId = taskResponse.Data.Id;

            var templatePatchRequest = new TemplateRequest()
            {
                Name             = "Update Test template " + Guid.NewGuid(),
                ProjectsAndTasks = new List <ProjectsTaskTupleRequest>()
                {
                    new ProjectsTaskTupleRequest
                    {
                        ProjectId = projectId,
                        TaskId    = taskId
                    }
                }
            };

            var createResult = await _client.CreateTemplatesAsync(_workspaceId, templatePatchRequest);

            createResult.IsSuccessful.Should().BeTrue();
            createResult.Data.Should().NotBeNull();

            var patchRequest = new TemplatePatchRequest {
                Name = "Updated " + Guid.NewGuid()
            };
            var templateDto = createResult.Data.First();

            templateDto.Name = patchRequest.Name;
            var getResponse = await _client.UpdateTemplateAsync(_workspaceId, templateDto.Id, patchRequest);

            getResponse.IsSuccessful.Should().BeTrue();
            getResponse.Data.Should().BeEquivalentTo(templateDto);

            var deleteProject = await _client.ArchiveAndDeleteProject(_workspaceId, projectId);

            deleteProject.IsSuccessful.Should().BeTrue();
        }
示例#3
0
        /// <summary>
        /// Updates template with id.
        /// </summary>
        public Task <IRestResponse <TemplateDto> > UpdateTemplateAsync(string workspaceId, string timeEntryId,
                                                                       TemplatePatchRequest templatePatchRequest)
        {
            if (templatePatchRequest == null)
            {
                throw new ArgumentNullException(nameof(templatePatchRequest));
            }
            Require.Argument(nameof(templatePatchRequest.Name), templatePatchRequest.Name);
            var request = new RestRequest($"workspaces/{workspaceId}/templates/{timeEntryId}", Method.PATCH);

            request.AddJsonBody(templatePatchRequest);
            return(_client.ExecuteTaskAsync <TemplateDto>(request));
        }