public async Task <IActionResult> Add([FromBody][Required] AddTodoTaskRequest request) { var input = new AddTodoInput(request.Name, request.Description, request.DueDate); await _useCase.Execute(input); return(_presenter.ViewModel); }
public async Task ValidData_ShouldReturnTask(string name, string description, string dueDateSource) { DateTime?dueDate = null; if (dueDateSource != null) { dueDate = DateTime.Parse(dueDateSource); } var input = new AddTodoInput(name, description, dueDate); AddTodoOutput output = null; Action <AddTodoOutput> onReceivedOutput = o => { output = o; }; _outputMock.Setup(o => o.Default(It.IsAny <AddTodoOutput>())).Callback(onReceivedOutput); await _useCase.Execute(input); Assert.NotNull(output); Assert.NotEqual(Guid.Empty, output.TaskId); Assert.Equal(name, output.TaskName); Assert.Equal(description, output.TaskDescription); Assert.Equal(dueDate, output.TaskDueDate); Assert.Single(_context.TodoTasks); Assert.Equal(_context.TodoTasks.First().Id, output.TaskId); Assert.Equal(_context.TodoTasks.First().Name, output.TaskName); Assert.Equal(_context.TodoTasks.First().Description, output.TaskDescription); Assert.Equal(_context.TodoTasks.First().DueDate, output.TaskDueDate); }
public async Task Execute(AddTodoInput input) { if (input is null) { throw new Exception(); } var task = _entityFactory.NewTodoTask(input.TaskName, input.TaskDescription, input.TaskDueDate); await _repository.Add(task); _output.Default(new AddTodoOutput(task)); }