コード例 #1
0
ファイル: Create.cs プロジェクト: Team-o-nha/Server-Api-Main
        public async Task GivenValidCreateTaskItemCommand_ReturnsSuccessCode()
        {
            var client = await _factory.GetAuthenticatedClientAsync();

            var command = new CreateTaskItemCommand
            {
                Name        = "Task ATask ATask A",
                Description = "Task ATask ATask A",
                Assignee    = new UserModel
                {
                    UserId      = userId,
                    DisplayName = "Test user"
                },
                Status    = 1,
                CreatedBy = new UserModel
                {
                    UserId      = userId,
                    DisplayName = "Test user"
                },
                AttachFiles = new List <AttachFileModel>()
                {
                },
                TeamId = new Guid("197d0438-e04b-453d-b5de-eca05960c6ae")
            };
            var content  = IntegrationTestHelper.GetRequestContent(command);
            var response = await client.PostAsync($"/api/TaskItems", content);

            response.EnsureSuccessStatusCode();
        }
コード例 #2
0
ファイル: Create.cs プロジェクト: Team-o-nha/Server-Api-Main
        public async Task GivenInvalidCreateTaskItemCommand_ReturnsBadRequest()
        {
            var client = await _factory.GetAuthenticatedClientAsync();

            var usertest = new UserModel()
            {
                UserId      = Guid.NewGuid(),
                DisplayName = "TestUser1"
            };
            var command = new CreateTaskItemCommand
            {
                Name        = null,
                Description = "Task ATask ATask A",
                Assignee    = usertest,
                CreatedBy   = usertest,
                AttachFiles = new List <AttachFileModel>()
                {
                },
                Status = 1,
                TeamId = new Guid("197d0438-e04b-453d-b5de-eca05960c6ae")
            };
            var content  = IntegrationTestHelper.GetRequestContent(command);
            var response = await client.PostAsync($"/api/TaskItems", content);

            response.StatusCode.ShouldBe(HttpStatusCode.BadRequest);
        }
コード例 #3
0
        public async Task Handle_GivenTeamIdInvalid_ShouldRaiseNotFoundException()
        {
            ////Arrange
            var user = new UserModel
            {
                DisplayName = "Valid User",
                UserId      = validUserId
            };
            var sut = SetLoginUser(user.UserId);


            var command = new CreateTaskItemCommand
            {
                Name        = "TestTask1",
                CreatedBy   = user,
                Description = "Description",
                Assignee    = user,
                Status      = 1,
                TeamId      = Guid.NewGuid(),
                AttachFiles = new List <AttachFileModel>()
                {
                    new AttachFileModel()
                    {
                        //Name = "fileName.txt",
                        //BinaryData=  "hjsad",
                        //Size = 4
                    }
                }
            };

            //// Act
            await Assert.ThrowsAsync <NotFoundException>(() => sut.Handle(command, CancellationToken.None));
        }
コード例 #4
0
        public async Task Handle_GivenValidRequest_ShouldRaiseNotificationCreatedNotificationAsync()
        {
            ////Arrange
            var user = new UserModel
            {
                DisplayName = "Valid User",
                UserId      = validUserId
            };

            var sut = SetLoginUser(validUserId2);

            var command = new CreateTaskItemCommand
            {
                Name        = "TestTask1",
                CreatedBy   = user,
                Description = "Description",
                Assignee    = user,
                Status      = 1,
                TeamId      = validTeamId
            };

            //// Act
            var createdTaskId = await sut.Handle(command, CancellationToken.None);

            var entity = _context.Notifications.Where(notification => notification.TaskItemId == createdTaskId.ToString()).FirstOrDefault();

            entity.ShouldNotBeNull();
            entity.Type.ShouldBe("AddTask");
        }
コード例 #5
0
 public async Task <ActionResult <Guid> > Create(CreateTaskItemCommand command)
 {
     if (command.AttachFiles != null)
     {
         foreach (AttachFileModel file in command.AttachFiles)
         {
             file.BlobStorageUrl = await _blobStorageService
                                   .UploadFileToBlobAsync(file.LocalUrl.Replace("\\\\", "\\"), file.FileStorageName);
         }
     }
     try
     {
         return(await Mediator.Send(command));
     }
     catch (Exception)
     {
         if (command.AttachFiles != null)
         {
             foreach (AttachFileModel file in command.AttachFiles)
             {
                 await _blobStorageService.DeleteBlobData(file.BlobStorageUrl);
             }
         }
         return(BadRequest());
     }
 }
コード例 #6
0
        public async Task Handle_GivenValidRequestHaveTagAndDeadline_ShouldRaiseTaskItemCreatedNotificationAsync()
        {
            ////Arrange
            var user = new UserModel
            {
                DisplayName = "Valid User",
                UserId      = validUserId
            };

            var sut      = SetLoginUser(user.UserId);
            var deadline = DateTime.Now;

            var command = new CreateTaskItemCommand
            {
                Name        = "TestTask1",
                CreatedBy   = user,
                Description = "Description",
                Assignee    = user,
                Status      = 1,
                TeamId      = validTeamId,
                AttachFiles = new List <AttachFileModel>()
                {
                    new AttachFileModel()
                    {
                        //Name = "fileName.txt",
                        //BinaryData=  "hjsad",
                        //Size = 4
                    }
                },
                Deadline = deadline,
                Tags     = new List <TagModel>()
                {
                    new TagModel()
                    {
                        TagName = "abc"
                    }
                }
            };

            //// Act
            var result = await sut.Handle(command, CancellationToken.None);

            var entity = _context.TaskItems.Find(result);

            entity.ShouldNotBeNull();
            entity.Name.ShouldBe("TestTask1");
            entity.Status.ShouldBe(1);
            entity.Assignee.DisplayName.ShouldBe("Valid User");
            entity.Description.ShouldBe("Description");
            entity.CreatedBy.DisplayName.ShouldBe("Valid User");
            entity.TeamId.ShouldBe(validTeamId);
            // Attach File test
            entity.AttachFiles.Count.ShouldBeGreaterThan(0);
            entity.Deadline.ShouldBe(deadline.ToUniversalTime());
            entity.Tags.Count.ShouldBe(1);
            // Histories test
            entity.Histories.Count.ShouldBe(1);
        }
        public void IsValid_ShouldBeFalse_WhenNameIsNull()
        {
            var command = new CreateTaskItemCommand
            {
                Name = null
            };

            var validator = new CreateTaskItemCommandValidator();

            var result = validator.Validate(command);

            result.IsValid.ShouldBe(false);
        }
        public void IsValid_ShouldBeTrue_WhenNameIsNotNull()
        {
            var command = new CreateTaskItemCommand
            {
                Name = "Not Null < 200 byte"
            };

            var validator = new CreateTaskItemCommandValidator();

            var result = validator.Validate(command);

            result.IsValid.ShouldBe(true);
        }
        public void IsValid_ShouldBeFalse_WhenNameIsGreaterThan200Byte()
        {
            var command = new CreateTaskItemCommand
            {
                Name = "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" +
                       "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" +
                       "1"
            };

            var validator = new CreateTaskItemCommandValidator();

            var result = validator.Validate(command);

            result.IsValid.ShouldBe(false);
        }
コード例 #10
0
        public async Task <TaskItem> CreateTask(CreateTaskItemCommand command)
        {
            var taskItem = new TaskItem
            {
                Created     = DateTime.UtcNow,
                Modified    = DateTime.UtcNow,
                ProjectID   = command.ProjectID,
                Description = command.Description,
                Name        = command.Name,
                Priority    = command.Priority,
                Status      = TaskItem.TaskStatus.New
            };

            _context.TaskItems.Add(taskItem);

            await _context.SaveChangesAsync();

            return(taskItem);
        }
コード例 #11
0
        public async Task <ActionResult <TaskItem> > CreateItem([FromBody] CreateTaskParameters parameters)
        {
            try
            {
                var command = new CreateTaskItemCommand
                {
                    Name        = parameters.Name,
                    Description = parameters.Description,
                    Priority    = parameters.Priority,
                    ProjectID   = parameters.ProjectId
                };

                return(await _taskRepository.CreateTask(command));
            }
            catch (Exception e)
            {
                //Logger.Log(e);
                return(BadRequest());
            }
        }