public async void ShouldCreateNewTaskWhenValid() { // Arrange var validator = new Mock <IDeleteTodoTaskValidator>(); var repository = new Mock <ITodoTaskEntityRepository>(); validator.Setup(m => m.ValidateAndThrow(It.IsAny <TodoTaskEntity>())); var task = new TodoTaskEntity(); repository.Setup(m => m.GetById(It.IsAny <string>())).ReturnsAsync(task); repository.Setup(m => m.DeleteAsync(It.IsAny <TodoTaskEntity>())); var handler = new DeleteCommandHandler( repository.Object, validator.Object); // Act await handler.HandleAsync("afab15bc-d16b-49b8-a072-6bc1bc0d5156"); // Assert validator.Verify(m => m.ValidateAndThrow(It.IsAny <TodoTaskEntity>()), Times.Once); repository.Verify( m => m.GetById(It.Is <string>(p => p == "afab15bc-d16b-49b8-a072-6bc1bc0d5156")), Times.Once); repository.Verify(m => m.DeleteAsync(It.Is <TodoTaskEntity>(p => p == task)), Times.Once); }
public async Task <TodoTask> AddTaskAsync( TodoTaskForm form, CancellationToken ct) { var categoryEntity = await _dbContext.Categories.FirstOrDefaultAsync(x => x.Id == form.CategoryId); if (categoryEntity == null) { throw new ArgumentException("Given category doesn't exist."); } var newTask = new TodoTaskEntity { Id = new Guid(), Name = form.Name, IsDone = false, CategoryId = form.CategoryId, CreatedAt = DateTimeOffset.UtcNow }; _dbContext.Tasks.Add(newTask); var result = await _dbContext.SaveChangesAsync(ct); newTask.Category = categoryEntity; if (result >= 1) { return(Mapper.Map <TodoTask>(newTask)); } return(null); }
public async Task <string> CreateAsync(TodoTaskEntity entity) { entity.Id = await generator.NextAsync(); await store.Set(tasks => tasks.Append(entity)); return(entity.Id); }
private static void AssertEqualToEntity(TodoTaskDto model, TodoTaskEntity entity) { Assert.NotNull(model); Assert.NotNull(entity); Assert.Equal(entity.Id, model.Id); Assert.Equal(entity.Name, model.Name); Assert.Equal(entity.Priority, model.Priority); Assert.Equal((int)entity.Status, (int)model.Status); }
public static TodoTask ToModel(this TodoTaskEntity entity) { return(new TodoTask { Id = entity.Id, Name = entity.Name, Priority = entity.Priority, Status = Enum.Parse <TodoTaskStatus>(entity.Status.ToString()) }); }
public void ShouldMapTodoTaskEntityName(string model, string expected) { // Arrange & Act var result = new TodoTaskEntity { Id = Guid.NewGuid().ToString(), Name = model, Priority = 1, Status = TodoTaskEntityStatus.NotStarted }.ToModel(); // Assert Assert.Equal(expected, result.Name); }
public void ShouldMapTodoTaskEntityId(string model, string expected) { // Arrange & Act var result = new TodoTaskEntity { Id = model, Name = "Make a toast", Priority = 1, Status = TodoTaskEntityStatus.NotStarted }.ToModel(); // Assert Assert.Equal(expected, result.Id); }
public void ShouldMapTodoTaskEntityStatus(TodoTaskEntityStatus model, TodoTaskStatus expected) { // Arrange & Act var result = new TodoTaskEntity { Id = Guid.NewGuid().ToString(), Name = "Make a toast", Priority = 3, Status = model }.ToModel(); // Assert Assert.Equal(expected, result.Status); }
public void ShouldMapTodoTaskEntityPriority(int model, int expected) { // Arrange & Act var result = new TodoTaskEntity { Id = Guid.NewGuid().ToString(), Name = "Make a toast", Priority = model, Status = TodoTaskEntityStatus.NotStarted }.ToModel(); // Assert Assert.Equal(expected, result.Priority); }
public Task ValidateAndThrow(TodoTaskEntity context) { if (context == null) { throw new TodoListValidationException($"Task was not found"); } if (string.IsNullOrEmpty(context.Id)) { throw new TodoListValidationException($"{nameof(CreateTodoTaskCommand.Name)} can't be empty"); } if (context.Status != TodoTaskEntityStatus.Completed) { throw new TodoListValidationException( $"Can't delete task not in {TodoTaskStatus.Completed} {nameof(CreateTodoTaskCommand.Status)}"); } return(Task.CompletedTask); }
public async Task ShouldGetAll() { // Arrange var repository = new Mock <ITodoTaskEntityRepository>(); var tasks = new TodoTaskEntity[] { new TodoTaskEntity { Id = "afab15bc-d16b-49b8-a072-6bc1bc0d5156", Name = "Make a toast", Priority = 1, Status = TodoTaskEntityStatus.InProgress } }; repository .Setup(m => m.GetAll()) .ReturnsAsync(tasks); var handler = new GetAllQueryHandler(repository.Object); // Act var result = await handler.HandleAsync(); // Result Assert.NotNull(result); Assert.Single(result); Assert.Equal("afab15bc-d16b-49b8-a072-6bc1bc0d5156", result.ElementAt(0).Id); Assert.Equal("Make a toast", result.ElementAt(0).Name); Assert.Equal(1, result.ElementAt(0).Priority); Assert.Equal(TodoTaskStatus.InProgress, result.ElementAt(0).Status); repository.Verify(m => m.GetAll(), Times.Once); }
public async Task UpdateAsync(TodoTaskEntity entity) { await store.Set(tasks => tasks .Where(task => task.Id != entity.Id) .Append(entity)); }
public async Task DeleteAsync(TodoTaskEntity entity) { await store.Set(tasks => tasks.Where(task => task.Id != entity.Id)); }