コード例 #1
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);
            }
        }
コード例 #2
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);
            }
        }
コード例 #3
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);
            }
        }
コード例 #4
0
        public void Get_ShouldReturnTodoItem_WhenGettingWithAKnownId()
        {
            var controller   = new TodoItemController();
            var actionResult = controller.Get(1);
            var response     = actionResult as OkNegotiatedContentResult <TodoItemGetViewModel>;

            Assert.IsNotNull(response);
            Assert.AreEqual(response.Content.Id, 1);
        }
コード例 #5
0
        void Delete_ShouldNotReturnTodoItem()
        {
            var controller = new TodoItemController();

            controller.Delete(1);
            var actionResult = controller.Get(1);

            Assert.IsInstanceOf(typeof(NotFoundResult), actionResult);
        }
コード例 #6
0
        public void UserId_With_Null_Claims()
        {
            var controller = new TodoItemController();

            controller.User = null;
            var ex = Assert.Throws <HttpResponseException>(() => { var result = controller.UserId; });

            Assert.Equal(HttpStatusCode.Unauthorized, ex.Response.StatusCode);
        }
コード例 #7
0
        public TodoitemControllerTests()
        {
            _toDoitemRepositoryMock = new Mock <ITodoItemRepository>();

            DbContextOptions <ApplicationDbContext> options = new DbContextOptionsBuilder <ApplicationDbContext>()
                                                              .UseInMemoryDatabase(databaseName: "todo.db")
                                                              .Options;
            var context = new ApplicationDbContext(options);

            _controller = new TodoItemController(context, _toDoitemRepositoryMock.Object);
        }
コード例 #8
0
        public void GetAll_ShouldReturnAllTodoItem()
        {
            var controller   = new TodoItemController();
            var actionResult = controller.Get();
            var response     = actionResult as OkNegotiatedContentResult <IEnumerable <TodoItemGetViewModel> >;

            Assert.IsNotNull(response);
            var todoItems = response.Content;

            Assert.AreEqual(todoItems.Count(), 5);
        }
コード例 #9
0
        public void UserId_With_Incomplete_Claims()
        {
            var controller = new TodoItemController();

            Thread.CurrentPrincipal = new TestPrincipal(
                new Claim("sub", "foo")
                );
            var result = controller.UserId;

            Assert.Null(result);
        }
コード例 #10
0
        public TodoItemTests()
        {
            //AppDomain.CurrentDomain.SetData("DataDirectory", Directory.GetCurrentDirectory()); // See 1*
            //WebApiConfig.Register(); // See 2*

            _controller = new TodoItemController();
            _controller.SetDomainManager(
                new EntityDomainManager <TodoItem>(
                    new TeachMeBackendContext(),
                    new HttpRequestMessage())
                );
        }
コード例 #11
0
        public async Task Update_ShouldReturnCreated_WhenTodoItemIsFound()
        {
            // Given
            var repositoryMock            = this.GetTodoItemRepositoryMock(new TodoItem());
            var mapperMock                = new Mock <IMapper>();
            TodoItemController controller = new TodoItemController(repositoryMock, mapperMock.Object);

            // When
            IActionResult result = await controller.Update(1, new TodoItemDto());

            // Then
            Assert.IsType <CreatedAtRouteResult>(result);
        }
コード例 #12
0
        public async Task Delete_ShouldReturnOk_WhenTodoItemExists()
        {
            // Given
            var repositoryMock            = this.GetTodoItemRepositoryMock(new TodoItem());
            var mapperMock                = new Mock <IMapper>();
            TodoItemController controller = new TodoItemController(repositoryMock, mapperMock.Object);

            // When
            IActionResult result = await controller.Delete(1);

            // Then
            Assert.IsType <OkResult>(result);
        }
コード例 #13
0
        public void Post_ShouldBeAdded()
        {
            var controller   = new TodoItemController();
            var actionResult = controller.Post(new TodoItemCreateViewModel
            {
                Content = "A new todo"
            });
            var response = actionResult as CreatedAtRouteNegotiatedContentResult <TodoItemGetViewModel>;

            Assert.IsNotNull(response);
            Assert.AreEqual(response.RouteName, "DefaultApi");
            Assert.AreEqual(response.RouteValues["Id"], response.Content.Id);
        }
コード例 #14
0
        public void Get_ShouldReturnOkResult_WhenTodoItemIsFound()
        {
            // Given
            var repositoryMock            = this.GetTodoItemRepositoryMock(new TodoItem());
            var mapperMock                = new Mock <IMapper>();
            TodoItemController controller = new TodoItemController(repositoryMock, mapperMock.Object);

            // When
            IActionResult result = controller.Get(1);

            // Then
            Assert.IsType <OkObjectResult>(result);
        }
コード例 #15
0
        public void UserId_With_Correct_Claims()
        {
            var controller = new TodoItemController();

            controller.User = new TestPrincipal(
                new Claim(ClaimTypes.NameIdentifier, "testuser"),
                new Claim("sub", "foo")
                );
            var result = controller.UserId;

            Assert.NotNull(result);
            Assert.Equal("testuser", result);
        }
コード例 #16
0
        public void Put_ShouldBeUpdated_WhenPuttingATodoItem()
        {
            var controller = new TodoItemController();
            var todoItem   = new TodoItemUpdateViewModel
            {
                Content     = "Test Put",
                IsCompleted = true
            };
            var actionResult = controller.Put(1, todoItem);
            var response     = actionResult as OkNegotiatedContentResult <TodoItemGetViewModel>;

            Assert.IsNotNull(response);
            var newTodoItem = response.Content;

            Assert.AreEqual(newTodoItem.Id, 1);
            Assert.AreEqual(newTodoItem.Content, "Test Put");
            Assert.AreEqual(newTodoItem.IsCompleted, true);
        }
コード例 #17
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);
            }
        }
コード例 #18
0
ファイル: CrudManager.cs プロジェクト: aleffeh/TodoUnity
 private void CreateItem(TodoItem item) => TodoItemController.CreateItem(itemPrefab, item, contentView, _repository);
コード例 #19
0
 protected void Page_Load(object sender, EventArgs e)
 {
     todoItemController = new TodoItemController();
 }
コード例 #20
0
 public TodoItemControllerTest()
 {
     _appService = new TodoAppServiceFake();
     _controller = new TodoItemController(_appService);
 }