コード例 #1
0
        public async Task Post_ReturnsNewlyCreatedTodoItems()
        {
            // Arrange
            var todo     = FakeDatasHelper.GetTestTodos().FirstOrDefault();
            var mockRepo = new Mock <ITodoItemRepository>();

            mockRepo.Setup(repo => repo.AddAsync(todo))
            .Returns(Task.CompletedTask)
            .Verifiable();
            var controller = new TemporaryController(mockRepo.Object);

            // Act
            var result = await controller.Post(new TemporaryController.NewTodoModel()
            {
                Name = "test"
            });

            // Assert
            var okResult   = Assert.IsType <OkObjectResult>(result);
            var returnTodo = Assert.IsType <TodoItem>(okResult.Value);

            Assert.False(returnTodo.IsComplete);
            Assert.Equal("test", returnTodo.Name);
            Assert.Equal(DateTimeOffset.Now.Day, returnTodo.ModifyTime.Day);
            Assert.Equal(DateTimeOffset.Now.Day, returnTodo.CreateTime.Day);
            Assert.Empty(returnTodo.Steps);
        }
コード例 #2
0
        public async Task Index_ReturnsAViewResult_WithAListOfTodoItems()
        {
            // Arrange
            var mockRepo = new Mock <ITodoItemRepository>();

            mockRepo.Setup(repo => repo.ListAsync())
            .ReturnsAsync(FakeDatasHelper.GetTestTodos());
            var controller = new TemporaryController(mockRepo.Object);

            // Act
            var result = await controller.Index();

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IEnumerable <TodoItemViewModel> >(viewResult.ViewData.Model);

            Assert.Equal(2, model.Count());
        }
コード例 #3
0
        public async Task IndexPost_ReturnsARedirectAndAddsTodo_WhenModelStateIsInValid()
        {
            // Arrange
            var mockRepo = new Mock <ITodoItemRepository>();

            mockRepo.Setup(repo => repo.ListAsync())
            .ReturnsAsync(FakeDatasHelper.GetTestTodos());

            var controller = new TemporaryController(mockRepo.Object);

            controller.ModelState.AddModelError("Name", "Required");
            var newTodo = new TemporaryController.NewTodoModel();

            // Act
            var result = await controller.Index(newTodo);

            // Assert
            var badReqeustResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.IsType <SerializableError>(badReqeustResult.Value);
        }
コード例 #4
0
        public async Task GetTodoItems_ReturnsTodoItems()
        {
            // Arrange
            int todoId   = 1;
            var mockRepo = new Mock <ITodoItemRepository>();

            mockRepo.Setup(repo => repo.GetAsync(todoId))
            .ReturnsAsync(FakeDatasHelper.GetTestTodos().FirstOrDefault(t => t.ID == todoId));
            var controller = new TemporaryController(mockRepo.Object);

            // Act
            var result = await controller.Get(todoId);

            // Assert
            var okResult    = Assert.IsType <OkObjectResult>(result);
            var returnValue = Assert.IsType <TodoItem>(okResult.Value);

            Assert.False(returnValue.IsComplete);
            Assert.Equal("测试1", returnValue.Name);
            Assert.Equal(DateTimeOffset.Now.Day, returnValue.ModifyTime.Day);
            Assert.Equal(todoId, returnValue.ID);
            Assert.Equal(2, returnValue.Steps.Count);
        }
コード例 #5
0
        public async Task IndexById_ReturnsViewResult_WithTodoItemsVideModel()
        {
            // Arrange
            var todoId   = 1;
            var mockRepo = new Mock <ITodoItemRepository>();

            mockRepo.Setup(repo => repo.GetAsync(todoId))
            .ReturnsAsync(FakeDatasHelper.GetTestTodos().FirstOrDefault(t => t.ID == todoId));
            var controller = new TemporaryController(mockRepo.Object);

            // Act
            var result = await controller.IndexById(todoId);

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <List <TodoItemViewModel> >(viewResult.ViewData.Model);

            Assert.False(model[0].IsComplete);
            Assert.Equal("测试1", model[0].Name);
            Assert.Equal(DateTimeOffset.Now.Day, model[0].ModifyTime.Day);
            Assert.Equal(todoId, model[0].Id);
            Assert.Equal(2, model[0].StepCount);
        }