コード例 #1
0
        public async Task GetAll_Returns_TodoItemList()
        {
            ITodoItemProvider provider = new TodoItemProvider(mockContext.Object);
            var categories             = await provider.GetAll();

            Assert.Equal(3, categories.Count());
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        public async Task Get_Returns_TodoItem()
        {
            ITodoItemProvider provider = new TodoItemProvider(mockContext.Object);
            int idItemToGet            = 1;

            var TodoItem = await provider.Get(idItemToGet);

            Assert.Equal(idItemToGet, TodoItem.Id);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        public async Task Delete_Removes_TodoItem()
        {
            var dbContext = new Mock <TodoAppContext>();
            ITodoItemProvider provider = new TodoItemProvider(dbContext.Object);
            var items = new List <TodoItemDAO>()
            {
                new TodoItemDAO()
                {
                    Id = 1, Name = "TestItem1"
                },
                new TodoItemDAO()
                {
                    Id = 2, Name = "TestItem2"
                },
                new TodoItemDAO()
                {
                    Id = 3, Name = "TestItem3"
                }
            };

            dbContext
            .Setup(m => m.TodoItems.Remove(It.IsAny <TodoItemDAO>()))
            .Callback <TodoItemDAO>((entity) => items.Remove(entity));
            int idToDelete = 1;

            dbContext
            .Setup(s => s.TodoItems.Find(idToDelete))
            .Returns(items.Single(s => s.Id == idToDelete));

            await provider.Delete(idToDelete);

            Assert.Equal(2, items.Count());
            dbContext.Verify(s => s.TodoItems.Find(idToDelete), Times.Once);
            dbContext.Verify(s => s.TodoItems.Remove(It.IsAny <TodoItemDAO>()), Times.Once);
            dbContext.Verify(s => s.SaveChangesAsync(new CancellationToken()), Times.Once);
        }