public void CanNotEditPost() { var edit = _postController.Edit(5); Post post = edit.ViewData.Model as Post; Assert.IsNull(post); }
public void CanUpdatePost() { //Arrange _repository.Setup(p => p.GetAllPostByBlogId(1)).Returns(testPosts); PostController controller = new PostController(_repository.Object, _manager); //Act Post firstPost = (Post)controller.Edit(1).ViewData.Model; Post secondPost = (Post)controller.Edit(2).ViewData.Model; //Assert Assert.AreEqual(1, firstPost.PostId); Assert.AreEqual(2, secondPost.PostId); }
public void Edit_GetRequestSendsPostToVIew() { //A "mock" id we need to test var id = "test-post"; //Repository is an interface, since we can't make an instance we mock it // w/ help of Telerik JustMockLite var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); /*Mock a method * Whenever we call our repo's Get method & we pass an Id * we want it to return a new Post that has Id = id; */ Mock.Arrange(() => repo.Get(id)). Returns(new Post { Id = id }); //Casting to viewresult which is an implementation of Abstract class ActionResult //we use AR in Cs because we're not sure we'll return a view (we could also perform say a redirect. var result = (ViewResult)controller.Edit(id); var model = (Post)result.Model; Assert.AreEqual(id, model.Id); }
public void Edit_PostRequestSendsPostToVIew() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)). Returns(new Post { Id = id }); //We mock an error controller.ViewData.ModelState.AddModelError("key", "error message"); var result = (ViewResult)controller.Edit(id, new Post() { Id = "test-post-2" }); var model = (Post)result.Model; Assert.AreEqual("test-post-2", model.Id); }
public void PostControllerEditReturnsView_ExpectedSuccess() { // Arrange Post post = new Post { PostStatusId = 1, DriverId = 1, VehicleId = 1, Destination = "Kitchener", Location = "Cambridge", Date = DateTime.Today, Time = new TimeSpan(11, 00, 00) }; Mock <IPostLogic> mockPostLogic = new Mock <IPostLogic>(); mockPostLogic.Setup(x => x.GetSinglePost(It.IsAny <Int32>())).ReturnsAsync(GetPost()); var controllerUnderTest = new PostController(_context, mockPostLogic.Object); // Act var result = controllerUnderTest.Edit(1, post); // Assert var viewResult = Assert.IsType <Task <IActionResult> >(result); }
public void GivenAValidPost_WhenITryAndEditAPost_ThenIGetTheCorrectView() { MockHttpContext.SetupProperty(h => h.User); var controller = new PostController(_postServiceMock.Object, _dashboardServiceMock, _blogService.Object, null); ActionResult result = controller.Edit(_userName, 1); Assert.That(result, Is.TypeOf<ViewResult>()); }
public async Task Edit_Post_ModelIsValid_RedirectToIndex() { Mock <PostService> mock = new Mock <PostService>(); PostController controller = GetNewPostController(mock.Object, null, null); RedirectToRouteResult result = (await controller.Edit(new PostViewModel())) as RedirectToRouteResult; Assert.AreEqual("Index", result.RouteValues["action"]); }
public void Edid_PostRequestNotFound() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)).Returns((Post)null); var result = controller.Edit(id, new Post()); Assert.IsTrue(result is HttpNotFoundResult); }
public void Edit_GetRequestNotFoundResult() { var id = "test-post"; var repo = Mock.Create<IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)).Returns((Post)null); var result = controller.Edit(id); Assert.IsTrue(result is HttpNotFoundResult); }
public void CanNotUpdatePost() { //Arrange _repository.Setup(p => p.GetAllPostByBlogId(1)).Returns(testPosts); PostController controller = new PostController(_repository.Object, _manager); //Act Post result = (Post)controller.Edit(4).ViewData.Model; //Assert Assert.IsNull(result); }
public void Edit_PostRequestCallsEditAndRedirects() { var repo = Mock.Create<IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Edit(Arg.IsAny<string>(), Arg.IsAny<Post>())).MustBeCalled(); var result = controller.Edit("Foo", new Post() { Id = "test-post-2" }); Mock.Assert(repo); Assert.IsTrue(result is RedirectToRouteResult); }
public async Task Edit_Get_ModelIsValid_AsksForEditView() { Mock <PostService> mock = new Mock <PostService>(); Mock <DepartmentService> dmock = new Mock <DepartmentService>(); dmock.Setup(m => m.GetAllAsync()).ReturnsAsync(new DepartmentDTO[] { new DepartmentDTO { } }); PostController controller = GetNewPostController(mock.Object, null, dmock.Object); ViewResult result = (await controller.Edit(1)) as ViewResult; Assert.AreEqual("Edit", result.ViewName); }
public void CreateAddsPost() { //Arrange Post post = new Post { PostId = 1, Blog = new Blog { BlogId = 1, BlogTitel = "First test-blog", Closed = false }, PostTitle = "Post #1", Text = "First test-post", Date = new DateTime() }; var controller = new PostController(_repository.Object, _manager); //Act ActionResult result = controller.Edit(post); //Assert _repository.Verify(b => b.AddPost(post, 1)); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); }
public void CreateDoesNotAddPost() { //Arrange Post post = new Post { PostId = 1, Blog = new Blog { BlogId = 1, BlogTitel = "First test-blog", Closed = false }, PostTitle = "Post #1", Text = "First test-post", Date = new DateTime() }; var controller = new PostController(_repository.Object, _manager); controller.ModelState.AddModelError("error", "error"); //Act ActionResult result = controller.Edit(post); //Assert Assert.IsInstanceOfType(result, typeof(ViewResult)); }
public void Edit_GetRequestSendsPostToView() { var id = "test-post"; var repo = Mock.Create<IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)).Returns(new Post {Id = id}); var result = (ViewResult) controller.Edit(id); var model = (Post) result.Model; Assert.AreEqual(id, model.Id); }
public async Task Edit_PostRequestCallsEditAndRedirects() { var repo = Mock.Create <IPostRepository>(); var userRepo = Mock.Create <IUserRepository>(); var controller = new PostController(repo, userRepo); Mock.Arrange(() => repo.Edit(Arg.IsAny <string>(), Arg.IsAny <Post>())) .MustBeCalled(); var result = await controller.Edit("foo", new Post { Id = "test-post-2" }); Mock.Assert(repo); Assert.IsTrue(result is RedirectToRouteResult); }
public async Task Edit_GetRequestNotFoundResult() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var userRepo = Mock.Create <IUserRepository>(); var controller = new PostController(repo, userRepo); Mock.Arrange(() => repo.GetAsync(id).Result) .Returns((Post)null); var result = await controller.Edit(id); Assert.IsTrue(result is HttpNotFoundResult); }
public void Edid_PostRequestCallsEdidAndRedirects() { var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Edit(Arg.IsAny <string>(), Arg.IsAny <Post>())).MustBeCalled(); var result = controller.Edit("test-post-1", new Post { Id = "test-post-2" }); Mock.Assert(repo); Assert.IsTrue(result is RedirectToRouteResult); }
public async Task Edit_Post_ModelIsInvalid_AsksForEditView() { Mock <PostService> mock = new Mock <PostService>(); mock.Setup(m => m.EditAsync(It.IsAny <PostDTO>())).Throws(new ValidationException("", "")); Mock <DepartmentService> dmock = new Mock <DepartmentService>(); dmock.Setup(m => m.GetAllAsync()).ReturnsAsync(new DepartmentDTO[] { new DepartmentDTO { } }); PostController controller = GetNewPostController(mock.Object, null, dmock.Object); ViewResult result = (await controller.Edit(new PostViewModel())) as ViewResult; Assert.AreEqual("Edit", result.ViewName); }
public void Edit_PostRequestModelStateInvalidReturnsModelToView() { var id = "test-post"; var repo = Mock.Create<IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)).Returns(new Post { Id = id }); controller.ViewData.ModelState.AddModelError("key", "error message"); var result = (ViewResult)controller.Edit(id, new Post() {Id = "test-post-2"}); var model = (Post)result.Model; Assert.AreEqual("test-post-2", model.Id); }
public async Task Edit_GetRequest() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); Mock.Arrange(() => repo.Get(id)).Returns(new Post { Id = "test-post" }); var controller = new PostController(repo, null); var result = (ViewResult)(await controller.Edit(id)); var model = (Post)result.Model; Assert.AreEqual(id, model.Id); }
public void Edit_PostRequestNotFoundResult() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)) .Returns((Post)null); Mock.Arrange(() => repo.Edit(Arg.IsAny <string>(), Arg.IsAny <Post>())) .Throws(new KeyNotFoundException()); var result = controller.Edit(id, new Post()); Assert.IsTrue(result is HttpNotFoundResult); }
public void Edit_GetRequestSendsPostToView() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); Mock.Arrange(() => repo.Get(id)) .Returns(new Post { Id = id }); var result = (ViewResult)controller.Edit(id); var model = (Post)result.Model; Assert.AreEqual(id, model.Id); }
public async Task Edit_Get_ModelIsInvalid_RetrievesExceptionMessageFromModel() { Mock <PostService> mock = new Mock <PostService>(); mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).Throws(new ValidationException("FindByIdAsync method throws Exception", "")); Mock <DepartmentService> dmock = new Mock <DepartmentService>(); dmock.Setup(m => m.GetAllAsync()).ReturnsAsync(new DepartmentDTO[] { new DepartmentDTO { } }); PostController controller = GetNewPostController(mock.Object, null, dmock.Object); ViewResult result = (await controller.Edit(1)) as ViewResult; string[] model = result.ViewData.Model as string[]; Assert.AreEqual("FindByIdAsync method throws Exception", model[0]); }
public void Edit_PostRequestNotFoundResult() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); //Whenever we call repo.Get(id) we want to have null Mock.Arrange(() => repo.Get(id)). Returns((Post)null); //We just need an AR not VR var result = controller.Edit(id, new Post()); Assert.IsTrue(result is HttpNotFoundResult); }
public async Task Edit_PostRequestNotFoundResult() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); var userRepo = Mock.Create <IUserRepository>(); var controller = new PostController(repo, userRepo); var post = new Post { Id = "Mock Post" }; Mock.Arrange(() => repo.Edit(id, post)) .Throws(new KeyNotFoundException()); var result = await controller.Edit(id, post); Assert.IsTrue(result is HttpNotFoundResult); }
public void Edit_PostRequestCallsEditAndRedirects() { //ar id = "test-post"; var repo = Mock.Create <IPostRepository>(); Mock.Arrange(() => repo.Edit(Arg.IsAny <string>(), Arg.IsAny <Post>())).MustBeCalled(); var controller = new PostController(repo, null); //controller.ViewData.ModelState.AddModelError("", "some error"); var result = controller.Edit("foo", new Post() { Id = "test-post2" }); Mock.Assert(repo); Assert.IsTrue(result is RedirectToRouteResult); }
public void Edit_PostRequestCallsEditAndRedirects() { var repo = Mock.Create <IPostRepository>(); var controller = new PostController(repo); //We must call edit method w/ any arguments Mock.Arrange(() => repo.Edit(Arg.IsAny <string>(), Arg.IsAny <Post>())).MustBeCalled(); var result = controller.Edit("foo", new Post() { Id = "test-post-2" }); //Assert that repo's edit method was called Mock.Assert(repo); Assert.IsTrue(result is RedirectToRouteResult); }
public void Given_valid_post_When_Edit_Returns_SinglePostView() { //Given int id = 1; var model = new EditPostViewModel(); _postBuilder.Setup(x => x.BuildEditPostViewModel(It.IsAny <int>())).Returns(model); //When var result = _postController.Edit(id) as ViewResult; //Then Assert.NotNull(result); Assert.IsInstanceOf <EditPostViewModel>(result.Model); Assert.AreEqual(String.Empty, result.ViewName); }
public async Task Edit_PostRequestSendsPostToView() { var id = "test-post"; var repo = Mock.Create <IPostRepository>(); Mock.Arrange(() => repo.Get(id)).Returns(new Post { Id = "test-post" }); var controller = new PostController(repo, null); controller.ViewData.ModelState.AddModelError("", "some error"); var result = (ViewResult)(await controller.Edit(id, new Post() { Id = "test-post2" })); var model = (Post)result.Model; Assert.AreEqual("test-post2", model.Id); }
public async Task Edit_Post_ModelIsInvalid_RetrievesPostFromModel() { Mock <PostService> mock = new Mock <PostService>(); mock.Setup(m => m.EditAsync(It.IsAny <PostDTO>())).Throws(new ValidationException("", "")); Mock <DepartmentService> dmock = new Mock <DepartmentService>(); dmock.Setup(m => m.GetAllAsync()).ReturnsAsync(new DepartmentDTO[] { new DepartmentDTO { } }); PostController controller = GetNewPostController(mock.Object, null, dmock.Object); ViewResult result = (await controller.Edit(new PostViewModel { Id = 2, Title = "Programmer" })) as ViewResult; PostViewModel model = result.ViewData.Model as PostViewModel; Assert.AreEqual(2, model.Id); Assert.AreEqual("Programmer", model.Title); }
public static void Setup(TestContext testContext) { // generate a mock repository _repository = MockRepository.GenerateStub <IPostRepository>(); // the subject under test Sut = new PostController(_repository); // a random id to test postId = new Random().Next(); // set a dumy post ExpectedModel = new Post(postId, "", "", "", DateTime.Now, DateTime.MinValue); // stub the repo to return a post when it is called GetById with a id is PostId _repository.Stub(repo => repo.GetById(postId)).Return(ExpectedModel); // the result returned by calling Edit to the controller Actual = Sut.Edit(postId).Model; }
public async Task Edit_Get_ModelIsValid_RetrievesPostFromModel() { Mock <PostService> mock = new Mock <PostService>(); mock.Setup(m => m.FindByIdAsync(It.IsAny <int?>())).ReturnsAsync((int?_id) => new PostDTO { Id = _id.Value, Title = "Programmer" }); Mock <DepartmentService> dmock = new Mock <DepartmentService>(); dmock.Setup(m => m.GetAllAsync()).ReturnsAsync(new DepartmentDTO[] { new DepartmentDTO { } }); PostController controller = GetNewPostController(mock.Object, null, dmock.Object); ViewResult result = (await controller.Edit(2)) as ViewResult; PostViewModel model = result.ViewData.Model as PostViewModel; Assert.AreEqual(2, model.Id); Assert.AreEqual("Programmer", model.Title); }
public void Edit_Returns_A_View() { var result = underTest.Edit(1); Assert.IsType <ViewResult>(result); }