public void Update_ShouldCallUpdateItem()
        {
            // Arrange
            var input       = new UpdateTodoItemDto();
            var mappedinput = new TodoItemDto();

            mapper.Setup(m => m.Map <TodoItemDto>(input)).Returns(mappedinput);

            // Act
            controller.Update(input);

            // Assert
            todoItemLogic.Verify(u => u.UpdateItem(1, It.Is <TodoItemDto>(c => c == mappedinput)));
        }
示例#2
0
        public void InvalidEnum()
        {
            // Arrange
            var dto = new UpdateTodoItemDto
            {
                Title  = "TodoItemTitle",
                Status = (TodoTaskStatus)99
            };

            // Act
            var result = _validator.TestValidate(dto);

            // Assert
            result.IsValid.Should().BeFalse();
        }
        public async Task <Result <CreateTodoItemResponseDto> > Execute(long id, UpdateTodoItemDto todoItem)
        {
            var task = await _taskRepository.GetTask(id);

            if (task == null)
            {
                return(Result <CreateTodoItemResponseDto> .Failed(ErrorCode.NotFound, Constants.NotFoundErrorMessage));
            }

            task.Name       = todoItem.Name;
            task.IsComplete = todoItem.IsComplete;

            await _taskRepository.UpdateTask(task);

            return(Result <CreateTodoItemResponseDto> .Success(new CreateTodoItemResponseDto(id)));
        }
        public void Update_ShouldReturnBadRequestWhenUpdateItemReturnsNull()
        {
            // Arrange
            var input = new UpdateTodoItemDto();

            mapper.Setup(m => m.Map <TodoItemDto>(input)).Returns(new TodoItemDto());

            // Act
            var result = controller.Update(input);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
            var response = (result as BadRequestObjectResult).Value as ErrorResponse;

            Assert.Equal("Item not found in the database.", response.Message);
        }
示例#5
0
        public void IdIsNull(long id, string message)
        {
            // Arrange
            var dto = new UpdateTodoItemDto
            {
                Id     = id,
                Title  = "TodoItemName",
                Status = TodoTaskStatus.Open
            };

            // Act
            var result = _validator.TestValidate(dto);

            // Assert
            result.IsValid.Should().BeFalse();
            result.Errors.FirstOrDefault(x => x.ErrorMessage == message).Should().NotBeNull();
        }
示例#6
0
        public void TitleRange(int length, string message)
        {
            // Arrange
            var dto = new UpdateTodoItemDto
            {
                Id     = 1,
                Title  = new string('*', length),
                Status = TodoTaskStatus.Open
            };

            // Act
            var result = _validator.TestValidate(dto);

            // Assert
            result.IsValid.Should().BeFalse();
            result.Errors.FirstOrDefault(x => x.ErrorMessage == message).Should().NotBeNull();
            result.Errors.Should().HaveCount(1);
        }
示例#7
0
        public void TitleIsNull()
        {
            // Arrange
            var dto = new UpdateTodoItemDto
            {
                Id     = 1,
                Title  = null,
                Status = TodoTaskStatus.Open
            };

            // Act
            var result = _validator.TestValidate(dto);

            // Assert
            result.IsValid.Should().BeFalse();
            result.Errors.Single().ErrorMessage.Should().Be("'Title' must not be empty.");
            result.Errors.Should().HaveCount(1);
        }
        public void Update_ShouldReturnUpdatedTodoItem()
        {
            // Arrange
            var input       = new UpdateTodoItemDto();
            var mappedinput = new TodoItemDto();
            var model       = new TodoItemDto();

            mapper.Setup(m => m.Map <TodoItemDto>(input)).Returns(mappedinput);
            todoItemLogic.Setup(u => u.UpdateItem(1, It.Is <TodoItemDto>(c => c == mappedinput))).Returns(model);

            // Act
            var result = controller.Update(input);

            // Assert
            Assert.IsType <OkObjectResult>(result);
            var response = (result as OkObjectResult).Value as Response <TodoItemDto>;

            Assert.Equal(model, response.Model);
        }
        public IActionResult Update(UpdateTodoItemDto updateObj)
        {
            int userId    = int.Parse(httpContextAccessor.HttpContext.User.FindFirst(Constants.UserIdClaim)?.Value);
            var updateDto = mapper.Map <TodoItemDto>(updateObj);

            var updatedResult = todoItemLogic.UpdateItem(userId, updateDto);

            if (updatedResult == null)
            {
                return(BadRequest(new ErrorResponse
                {
                    Status = false,
                    Message = "Item not found in the database."
                }));
            }
            else
            {
                return(Ok(new Response <TodoItemDto>
                {
                    Status = true,
                    Model = updatedResult
                }));
            }
        }
        public async Task <IActionResult> UpdateTodo([FromRoute] long id, UpdateTodoItemDto todoItem)
        {
            var result = await _updateTaskCommand.Execute(id, todoItem);

            return(OkOrFailure(result));
        }