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