Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }