コード例 #1
0
        public async Task Edit_Ok()
        {
            //Arrange
            var _blogPost = TestHelper.GetBlogPostViewModel();

            await _blogController.SavePost(_blogPost.SetAuthor(TestHelper.GetClaimsPrincipal()));

            //Need to Dispose to save new Blog and use on further tests
            _blogController.Dispose();

            var response = await _blogController.List();

            var blogPosts = response.GetModelFromViewResultResponse <IEnumerable <BlogPostViewModel> >();

            var blogPost = blogPosts.FirstOrDefault();

            //Act
            var editResponse = await _blogController.Edit(blogPost.Id);

            var editBlogPost = editResponse.GetModelFromViewResultResponse <BlogPostViewModel>();

            //Assert
            Assert.True(editResponse is ViewResult);
            Assert.True(editBlogPost != null);
            Assert.Equal(blogPost.Id, editBlogPost.Id);
        }
コード例 #2
0
        public void Edit_Get_Returns404ForNonexistentBlogPost()
        {
            var repo       = Mock.Create <IBlogPostRepository>();
            var controller = new BlogController(repo);

            Mock.Arrange(() => repo.GetById(1))
            .Returns(() => null);

            var result = controller.Edit(1);

            Assert.IsTrue(result is HttpNotFoundResult);
        }
コード例 #3
0
        public void GivenALoggedInUser_WhenITryAndEditABlog_ThenIGetTheCorrectView()
        {
            string nickname = "nickname";

            _blogDomain.Setup(b => b.GetBlog(It.IsAny <string>())).Returns(new Blog("title", "description", true, true,
                                                                                    nickname, 1));
            var controller = new BlogController(_blogDomain.Object, null);

            ActionResult result = controller.Edit(new CreateBlogViewModel {
                Nickname = nickname
            });

            Assert.That(result, Is.TypeOf <ViewResult>());
        }
コード例 #4
0
        public void Edit_Get_SendsModelToView()
        {
            var repo       = Mock.Create <IBlogPostRepository>();
            var controller = new BlogController(repo);

            Mock.Arrange(() => repo.GetById(1))
            .Returns(new BlogPost {
                Id = 1
            });

            var result = (ViewResult)controller.Edit(1);
            var model  = (BlogPost)result.Model;

            Assert.AreEqual(1, model.Id);
        }
コード例 #5
0
        public void Edit_Post_ReturnsViewWithModelWhenModelStateIsInvalid()
        {
            var repo       = Mock.Create <IBlogPostRepository>();
            var controller = new BlogController(repo);

            var post = new BlogPost
            {
                Id          = 1,
                Title       = "",
                Content     = "",
                DateCreated = DateTime.Now
            };

            controller.ViewData.ModelState.AddModelError("key", "error message");

            var result = (ViewResult)controller.Edit(post);

            Assert.AreEqual(post, result.Model as BlogPost);
        }
コード例 #6
0
        public void Edit_Post_EditOnRepositoryIsCalled()
        {
            var repo       = Mock.Create <IBlogPostRepository>();
            var controller = new BlogController(repo);

            Mock.Arrange(() => repo.Edit(Arg.IsAny <BlogPost>()))
            .MustBeCalled();

            var post = new BlogPost
            {
                Id          = 1,
                Title       = "",
                Content     = "",
                DateCreated = DateTime.Now
            };

            var result = controller.Edit(post);

            Mock.Assert(repo);

            Assert.IsTrue(result is RedirectToRouteResult);
        }