public async Task GivenValidRequest_ReturnOkAndUpdatedTaskItem() { var client = await _factory.GetAuthenticatedClientAsync(); // init DB for test var context = _factory.InitializeDbForTests(); var taskId = new Guid("de14a885-71d4-4da0-bb17-048d74d33ada"); PinTaskItemCommand command = new PinTaskItemCommand() { Id = taskId, IsPin = true }; var content = IntegrationTestHelper.GetRequestContent(command); var response = await client.PutAsync($"/api/TaskItems/Pin/{taskId}", content); response.EnsureSuccessStatusCode(); var vm = await IntegrationTestHelper.GetResponseContent <TaskItemModel>(response); vm.ShouldBeOfType <TaskItemModel>(); // release DB _factory.DisposeDbForTests(context); }
public async Task <ActionResult> PinTaskItem(Guid taskId, PinTaskItemCommand command) { if (taskId != command.Id) { return(BadRequest()); } // cap nhat lai task var updatedTaskItem = await Mediator.Send(command); // lay thong tin team var team = await Mediator.Send(new GetTeamQuery { TeamId = updatedTaskItem.TeamId }); // thong bao cho tat cac cac members cua team var lstTaskSendAsync = new List <Task>(); foreach (var member in team.Users) { // lay danh dach connection cua user foreach (var connectionEntity in GetConnectionEntitys(member.UserId.ToString())) { lstTaskSendAsync.Add(_hubContext.Clients.Client(connectionEntity.RowKey).SendAsync("PinTask", updatedTaskItem)); } } await Task.WhenAll(lstTaskSendAsync); return(Ok(updatedTaskItem)); }
public void IsValid_ShouldBeTrue_CommandValid() { var query = new PinTaskItemCommand { Id = Guid.NewGuid() }; var validator = new PinTaskItemCommandValidator(); var result = validator.Validate(query); result.IsValid.ShouldBe(true); }
public void IsValid_ShouldBeFalse_WhenTaskIdIsEmpty() { var query = new PinTaskItemCommand { Id = Guid.Empty }; var validator = new PinTaskItemCommandValidator(); var result = validator.Validate(query); result.IsValid.ShouldBe(false); }
public async Task Handle_GivenInvalidTaskId_ShouldRaiseException() { /// Arrange var sut = new PinTaskItemCommandHandler(_context, _mapper); var command = new PinTaskItemCommand { Id = Guid.NewGuid(), IsPin = true }; /// Act await Assert.ThrowsAsync <NotFoundException>(() => sut.Handle(command, CancellationToken.None)); }
public async Task Handle_GivenValidTaskId_ShouldUpdateTaskItem() { /// Arrange var sut = new PinTaskItemCommandHandler(_context, _mapper); var command = new PinTaskItemCommand { Id = validUnpinTaskItemId, IsPin = true }; var result = await sut.Handle(command, CancellationToken.None); /// Assert result.IsPin.ShouldBe(true); }
public async Task GivenInvalidRequest_ReturnOkAndUpdatedTaskItem() { var client = await _factory.GetAuthenticatedClientAsync(); // init DB for test var context = _factory.InitializeDbForTests(); var taskId = new Guid("de14a885-71d4-4da0-bb17-048d74d33adb"); PinTaskItemCommand command = new PinTaskItemCommand() { Id = Guid.Parse("de14a885-71d4-4da0-bb17-048d74d33dad"), IsPin = true }; var content = IntegrationTestHelper.GetRequestContent(command); var response = await client.PutAsync($"/api/TaskItems/Pin/{taskId}", content); response.StatusCode.ShouldBe(System.Net.HttpStatusCode.BadRequest); // release DB _factory.DisposeDbForTests(context); }