Inheritance: ApiController
コード例 #1
0
        public void CanReadTodoList()
        {
            DbContextOptions <TodoDbContext> options = new
                                                       DbContextOptionsBuilder <TodoDbContext>()
                                                       .UseInMemoryDatabase("Test6Database").Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList datList1 = new TodoList();
                datList1.ID   = 1;
                datList1.Name = "house chores";

                TodoList datList2 = new TodoList();
                datList2.ID   = 2;
                datList2.Name = "errands";

                TodoListController lc = new TodoListController(context);

                // Act
                var created1 = lc.Create(datList1);
                var created2 = lc.Create(datList2);

                var result1 = lc.GetById(datList1.ID);
                var result2 = lc.GetById(datList2.ID);

                // Assert
                Assert.Equal(datList1.ID, result1.Result.Value.ID);
                Assert.Equal(datList2.ID, result2.Result.Value.ID);
            }
        }
コード例 #2
0
        public void CanUpdateTodoList()
        {
            DbContextOptions <TodoDbContext> options = new
                                                       DbContextOptionsBuilder
                                                       <TodoDbContext>()
                                                       .UseInMemoryDatabase("Test7database").Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList datList1 = new TodoList();
                datList1.ID   = 1;
                datList1.Name = "house chores";

                // note: ID must be the same in order to update
                TodoList datList2 = new TodoList();
                datList2.ID   = 1;
                datList2.Name = "omg dem house chores doe";

                TodoListController lc = new TodoListController(context);

                // Act
                var create1 = lc.Create(datList1);

                var result1 = lc.Update(datList1.ID, datList2);
                var result2 = lc.GetById(datList1.ID);

                // Assert
                Assert.Equal(datList2.Name, result2.Result.Value.Name);
            }
        }
コード例 #3
0
        public void CanCreateList()
        {
            // Note: database names need to be different or else
            // there will be issues with keys already being taken
            // during testing. I thought each method would be isolated,
            // but they're apparently connected if the database names
            // in memory are the the same.
            DbContextOptions <TodoDbContext> options = new
                                                       DbContextOptionsBuilder <TodoDbContext>()
                                                       .UseInMemoryDatabase("Test5Database").Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoListController lc      = new TodoListController(context);
                TodoList           datList = new TodoList();

                // Act
                var result = lc.Create(datList);
                var answer = result.Result;
                var x      = (ObjectResult)answer;

                // Assert
                Assert.Equal(HttpStatusCode.Created, (HttpStatusCode)x.StatusCode);
            }
        }
コード例 #4
0
        public void CanCreateNewTodoItem()
        {
            DbContextOptions <TodoDbContext> options =
                new DbContextOptionsBuilder <TodoDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList todoList = new TodoList();
                todoList.Name = "Daily";

                TodoListController todoListController = new TodoListController(context);
                var x = todoListController.Post(todoList);

                TodoItem todoItem = new TodoItem()
                {
                    Name       = "Water the plants",
                    IsComplete = true,
                    TodoListID = 1
                };

                TodoItemController todoItemController = new TodoItemController(context);
                // Act
                var y = todoItemController.Post(todoItem);

                var results = y.Result;

                var answer = (ObjectResult)results;

                // Assert
                Assert.Equal(HttpStatusCode.Created, (HttpStatusCode)answer.StatusCode);
            }
        }
コード例 #5
0
        public void CanDeleteTodoItem()
        {
            DbContextOptions <TodoDbContext> options =
                new DbContextOptionsBuilder <TodoDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList todoList = new TodoList();
                todoList.Name = "Daily";

                TodoListController todoListController = new TodoListController(context);
                var x = todoListController.Post(todoList);

                TodoItem todoItem = new TodoItem()
                {
                    Name       = "Water the plants",
                    IsComplete = true,
                    TodoListID = 1
                };

                TodoItemController todoItemController = new TodoItemController(context);
                // Act
                var y = todoItemController.Post(todoItem);

                var results = todoItemController.Delete(1);

                var get = todoItemController.Get();

                // Assert
                Assert.Empty(get);
            }
        }
コード例 #6
0
        public async void CanAddItemsToList()
        {
            DbContextOptions <TodoDbContext> options =
                new DbContextOptionsBuilder <TodoDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList todoList = new TodoList();
                todoList.Name = "Daily";

                TodoListController todoListController = new TodoListController(context);
                var x = todoListController.Post(todoList);

                TodoItem todoItem = new TodoItem()
                {
                    Name       = "Water the plants",
                    IsComplete = true,
                    TodoListID = 1
                };

                TodoItemController todoItemController = new TodoItemController(context);
                var y = todoItemController.Post(todoItem);

                // Act
                var results = await context.TodoItems.Where(i => i.TodoListID == 1).ToListAsync();

                // Assert
                Assert.Single(results);
            }
        }
コード例 #7
0
        public void CanUpdateTodoList()
        {
            DbContextOptions <TodoDbContext> options =
                new DbContextOptionsBuilder <TodoDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList todoList = new TodoList();
                todoList.Name = "Daily";

                TodoListController todoListController = new TodoListController(context);
                var x = todoListController.Post(todoList);

                // Act
                todoList.Name = "Daily Tasks";
                var results = todoListController.Put(1, todoList);

                var answer = context.TodoLists.FirstOrDefault(i => i.ID == 1);

                // Assert
                Assert.Equal("Daily Tasks", answer.Name);
            }
        }
コード例 #8
0
 public TodoListControllerTests()
 {
     _listService    = new Mock <ITodoListService>(MockBehavior.Strict);
     _httpContext    = new DefaultHttpContext();
     _testController = new TodoListController(_listService.Object);
     _testController.ControllerContext.HttpContext = _httpContext;
 }
コード例 #9
0
 public void SetUp()
 {
     _itemUrlLocator = Substitute.For <IUrlLocator>();
     _repository     = Substitute.For <ITodoListRepository>();
     _controller     = new TodoListController(_repository, _itemUrlLocator)
     {
         Request       = new HttpRequestMessage(),
         Configuration = new HttpConfiguration(),
         Url           = new UrlHelper()
     };
 }
コード例 #10
0
        public void GravatarDataReturnsGravatarViewModel()
        {
            // Arrange
            var controller    = new TodoListController(new Mock <IApplicationDbContext>().Object, new Mock <IUserStore <IdentityUser> >().Object);
            var expectedModel = new TodoListGravatarViewmodel("*****@*****.**");

            // Act
            var view        = (PartialViewResult)controller.GravatarData(expectedModel.Email);
            var actualModel = (TodoListGravatarViewmodel)view.ViewData.Model;

            // Assert
            actualModel.Should().BeEquivalentTo(expectedModel);
        }
コード例 #11
0
        public void ReturnEnumerable()
        {
            TodoListController controller = new TodoListController();

            Assert.IsNotNull(controller);
            IEnumerable <TodoItem> result = controller.Get();

            Assert.IsNotNull(result);

            var collection = result as ICollection <TodoItem>;

            Assert.IsTrue(collection.Count == 0);
        }
コード例 #12
0
        public async void CanRemoveItemsFromList()
        {
            DbContextOptions <TodoDbContext> options = new
                                                       DbContextOptionsBuilder <TodoDbContext>()
                                                       .UseInMemoryDatabase("Test10Database").Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList datList1 = new TodoList();
                datList1.ID   = 1;
                datList1.Name = "house chores";

                TodoListController lc = new TodoListController(context);

                TodoItem datItem1 = new TodoItem();
                datItem1.ID         = 30;
                datItem1.Name       = "vacuum the floor";
                datItem1.IsComplete = false;
                datItem1.DatListID  = datList1.ID;

                TodoItem datItem2 = new TodoItem();
                datItem2.ID         = 40;
                datItem2.Name       = "wash the dishes";
                datItem2.IsComplete = true;
                datItem2.DatListID  = datList1.ID;

                TodoController ic = new TodoController(context);

                // Act - note: this requires async in order for the
                // result below to include all of the items in the list
                // Otherwise, the result query displays as having no
                // items according to the test even if it actually does.
                var createdList = await lc.Create(datList1);

                var createdItem1 = await ic.Create(datItem1);

                var createdItem2 = await ic.Create(datItem2);

                var deletedItem = await ic.Delete(datItem1.ID);

                var result1    = lc.GetById(datList1.ID);
                var listCount  = result1.Result.Value.TodoItems.Count();
                var todoInList = result1.Result.Value.TodoItems[0].Name;

                // Assert
                Assert.Equal(1, listCount);
                Assert.Equal(datItem2.Name, todoInList);
            }
        }
コード例 #13
0
 public TestTodoListControllers()
 {
     this.mockTodoListService = new Mock <ITodoListService>();
     this.mockTodoListService.Setup(_ => _.GetTodoListAsync(It.IsAny <string>(), It.IsAny <System.Threading.CancellationToken>())).ReturnsAsync(
         new TodoList
     {
         Id          = "List1",
         Description = "TodoList 1",
         Name        = "TodoList 1",
         Tasks       = new List <TodoTask>()
         {
             new TodoTask
             {
                 Id        = "Task1",
                 Name      = "Task 1",
                 Completed = false
             }
         }
     });
     this.target = new TodoListController(this.mockTodoListService.Object);
 }
コード例 #14
0
        public void CanReadTodoList()
        {
            DbContextOptions <TodoDbContext> options =
                new DbContextOptionsBuilder <TodoDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList todoList = new TodoList();
                todoList.Name = "Daily";

                TodoListController todoListController = new TodoListController(context);
                var y = todoListController.Post(todoList);

                // Act
                var x = todoListController.Get();

                // Assert
                Assert.Single(x);
            }
        }
コード例 #15
0
        public void CanUpdateTodoItem()
        {
            DbContextOptions <TodoDbContext> options =
                new DbContextOptionsBuilder <TodoDbContext>()
                .UseInMemoryDatabase(Guid.NewGuid().ToString())
                .Options;

            using (TodoDbContext context = new TodoDbContext(options))
            {
                // Arrange
                TodoList todoList = new TodoList();
                todoList.Name = "Daily";

                TodoListController todoListController = new TodoListController(context);
                var x = todoListController.Post(todoList);

                TodoItem todoItem = new TodoItem()
                {
                    Name       = "Water the plants",
                    IsComplete = false,
                    TodoListID = 1
                };

                TodoItemController todoItemController = new TodoItemController(context);
                var y = todoItemController.Post(todoItem);

                // Act
                todoItem.IsComplete = true;
                var results = todoItemController.Put(1, todoItem);

                var answer = context.TodoItems.FirstOrDefault(i => i.ID == 1);

                // Assert
                Assert.True(answer.IsComplete);
            }
        }