public async Task Create_ThrowsExeption_DuplicateName() { ITodoItemProvider provider = new TodoItemProvider(mockContext.Object); var item = new TodoItemDAO { Id = 22, Name = "TestItem1" }; await Assert.ThrowsAsync <ArgumentException>(() => provider.Create(item)); }
public async Task Create_ThrowsExeption_PriorityOutOf1to5Range() { ITodoItemProvider provider = new TodoItemProvider(mockContext.Object); var item = new TodoItemDAO { Id = 22, Priority = 10 }; await Assert.ThrowsAsync <ArgumentException>(() => provider.Create(item)); }
public async Task Create_ThrowsExeption_InvalidDeadlineDate() { ITodoItemProvider provider = new TodoItemProvider(mockContext.Object); var item = new TodoItemDAO { Id = 22, Name = "TestItem1", DeadLineDate = DateTime.UtcNow.Subtract(new TimeSpan(1, 0, 0)) }; await Assert.ThrowsAsync <ArgumentException>(() => provider.Create(item)); }
public async Task Create_Returns_createdIdAndAddsTodoItem() { ITodoItemProvider provider = new TodoItemProvider(mockContext.Object); var item = new TodoItemDAO { Id = 22, Name = "TestTodoItem" }; var addedItemId = await provider.Create(item); mockSet.Verify(set => set.Add(It.IsAny <TodoItemDAO>()), Times.Once); mockContext.Verify(context => context.SaveChangesAsync(new CancellationToken()), Times.Once); Assert.Equal(item.Id, addedItemId); }
public async Task Update_Updates_TodoItem() { ITodoItemProvider provider = new TodoItemProvider(mockContext.Object); var item = new TodoItemDAO { Id = 1, Name = "TestUpdateTodoItem" }; await provider.Update(item); var updatedTodoItem = await provider.Get(item.Id); Assert.Equal("TestUpdateTodoItem", updatedTodoItem.Name); }
public async Task Update(TodoItemDAO data) { if (await IsDuplicate(data)) { throw new ArgumentException(String.Format("Item with the name {0} already exists", data.Name)); } TodoItemDAO item = await _context.TodoItems.FirstOrDefaultAsync(value => value.Id == data.Id); item.Name = data.Name; item.Description = data.Description; item.Priority = data.Priority; item.CategoryId = data.CategoryId; item.Status = data.Status; item.DeadLineDate = data.DeadLineDate; await _context.SaveChangesAsync(); }
public async Task <int> Create(TodoItemDAO data) { data.CreationDate = DateTime.UtcNow; if (data.CreationDate >= data.DeadLineDate) { throw new ArgumentException("Deadline date must be after the creation date"); } if (await IsDuplicate(data)) { throw new ArgumentException(String.Format("Item with the name {0} already exists", data.Name)); } if (data.Priority > 5 || data.Priority < 1) { throw new ArgumentException("Priority value falls out of 1 to 5 range"); } _context.TodoItems.Add(data); await _context.SaveChangesAsync(); return(data.Id); }
public async Task <bool> IsDuplicate(TodoItemDAO data) { return(await _context.TodoItems.AnyAsync(item => item.Name == data.Name)); }