public void ShouldReturnJson_WhenCalledWithValidDataSourceRequest() { // Arrange var postsServiceMock = new Mock <IPostService>(); postsServiceMock .Setup(m => m.GetById(It.IsAny <Guid>())) .Returns(new Post()); postsServiceMock .Setup(m => m.HardDelete(It.IsAny <Post>())); var context = new Mock <HttpContextBase>(); context.Setup(c => c.Cache) .Returns(new Cache()); PostAdminController postAdminController = new PostAdminController(postsServiceMock.Object); postAdminController.ControllerContext = new ControllerContext(context.Object, new RouteData(), postAdminController); var postDetailsViewModel = new PostGridViewModel() { Id = "00000000-0000-0000-0000-000000000000" }; // Act & Assert postAdminController .WithCallTo(c => c.HardDeletePost(postDetailsViewModel)) .ShouldReturnJson(); }
public ActionResult UpdatePost(PostGridViewModel postGridViewModel) { if (postGridViewModel != null) { var post = this.postService .GetById(new Guid(postGridViewModel.Id)); post.Title = postGridViewModel.Title; post.Description = postGridViewModel.Description; post.Content = postGridViewModel.Content; if (post.IsDeleted && !postGridViewModel.IsDeleted) { post.IsDeleted = postGridViewModel.IsDeleted; post.DeletedOn = null; } this.postService.Update(post); if (!post.IsDeleted && postGridViewModel.IsDeleted) { this.postService.Delete(post); postGridViewModel.DeletedOn = post.DeletedOn; } } return(this.Json(new[] { postGridViewModel })); }
public void CallGetByIdAndHardDeleteOnce_WhenCalledWithValidPostGridViewModel() { // Arrange var postsServiceMock = new Mock <IPostService>(); postsServiceMock .Setup(m => m.GetById(It.IsAny <Guid>())) .Returns(new Post()); postsServiceMock .Setup(m => m.HardDelete(It.IsAny <Post>())); var context = new Mock <HttpContextBase>(); context.Setup(c => c.Cache) .Returns(new Cache()); PostAdminController postAdminController = new PostAdminController(postsServiceMock.Object); postAdminController.ControllerContext = new ControllerContext(context.Object, new RouteData(), postAdminController); var postDetailsViewModel = new PostGridViewModel() { Id = "00000000-0000-0000-0000-000000000000" }; // Act postAdminController.HardDeletePost(postDetailsViewModel); // Assert postsServiceMock.Verify(m => m.GetById(It.IsAny <Guid>()), Times.Once); postsServiceMock.Verify(m => m.HardDelete(It.IsAny <Post>()), Times.Once); }
public void CallGetByIdUpdateAndDeleteOnce_WhenCalledWithIsDeletedTrue() { // Arrange var postsServiceMock = new Mock <IPostService>(); postsServiceMock .Setup(m => m.GetById(It.IsAny <Guid>())) .Returns(new Post()); postsServiceMock .Setup(m => m.Update(It.IsAny <Post>())); postsServiceMock .Setup(m => m.Delete(It.IsAny <Post>())); PostAdminController postAdminController = new PostAdminController(postsServiceMock.Object); var postDetailsViewModel = new PostGridViewModel() { Id = "00000000-0000-0000-0000-000000000000", Title = string.Empty, Description = string.Empty, Content = string.Empty, IsDeleted = true }; // Act postAdminController.UpdatePost(postDetailsViewModel); // Assert postsServiceMock.Verify(m => m.GetById(It.IsAny <Guid>()), Times.Once); postsServiceMock.Verify(m => m.Update(It.IsAny <Post>()), Times.Once); postsServiceMock.Verify(m => m.Delete(It.IsAny <Post>()), Times.Once); }
public ActionResult HardDeletePost(PostGridViewModel postGridViewModel) { if (postGridViewModel != null) { var post = this.postService.GetById(new Guid(postGridViewModel.Id)); this.postService.HardDelete(post); } this.HttpContext.Cache.Remove("mostRecentPosts"); return(this.Json(new[] { postGridViewModel })); }
public ActionResult CreatePost(PostGridViewModel postGridViewModel) { if (postGridViewModel != null) { var post = this.postService .AddNewPost( postGridViewModel.Title, postGridViewModel.Description, postGridViewModel.Content, User.Identity.Name); postGridViewModel = MappingService.Provider.Map <PostGridViewModel>(post); } return(this.Json(new[] { postGridViewModel })); }
public void CallPostServiceAddNewPostOnce_WhenCalledWithValidDataSourceRequest() { // Arrange var postsServiceMock = new Mock <IPostService>(); postsServiceMock .Setup(m => m.AddNewPost( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .Returns(new Post()); PostAdminController postAdminController = new PostAdminController(postsServiceMock.Object); var contextMock = new Mock <ControllerContext>(); contextMock .SetupGet(p => p.HttpContext.User.Identity.Name) .Returns("username"); postAdminController.ControllerContext = contextMock.Object; var postDetailsViewModel = new PostGridViewModel() { Title = string.Empty, Description = string.Empty, Content = string.Empty }; var mapperServiceMock = new Mock <IMappingService>(); mapperServiceMock .Setup(x => x.Map <PostGridViewModel>(It.IsAny <Post>())) .Returns(postDetailsViewModel); MappingService.Provider = mapperServiceMock.Object; // Act postAdminController.CreatePost(postDetailsViewModel); // Assert postsServiceMock.Verify( m => m.AddNewPost( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Once); }
public void ShouldReturnJson_WhenCalledWithValidDataSourceRequest() { // Arrange var postDetailsViewModel = new PostGridViewModel(); var mapperServiceMock = new Mock <IMappingService>(); mapperServiceMock.Setup(x => x.Map <PostGridViewModel>(It.IsAny <Post>())).Returns(postDetailsViewModel); MappingService.Provider = mapperServiceMock.Object; var postEnumerable = new List <Post>() { new Post() }.AsEnumerable <Post>(); var postsServiceMock = new Mock <IPostService>(); postsServiceMock.Setup(m => m.AllIncludingDeleted()) .Returns(postEnumerable); PostAdminController postAdminController = new PostAdminController(postsServiceMock.Object); // Act & Assert postAdminController .WithCallTo(c => c.ReadPosts(new DataSourceRequest())) .ShouldReturnJson(); }
public void ShouldReturnJson_WhenCalledWithValidViewModelData() { // Arrange var postsServiceMock = new Mock <IPostService>(); postsServiceMock .Setup(m => m.GetById(It.IsAny <Guid>())) .Returns(new Post()); postsServiceMock .Setup(m => m.Update(It.IsAny <Post>())); PostAdminController postAdminController = new PostAdminController(postsServiceMock.Object); var postDetailsViewModel = new PostGridViewModel() { Id = "00000000-0000-0000-0000-000000000000", Title = string.Empty, Description = string.Empty, Content = string.Empty }; // Act & Assert postAdminController .WithCallTo(c => c.UpdatePost(postDetailsViewModel)) .ShouldReturnJson(); }
public JsonResult CreatePost([DataSourceRequest] DataSourceRequest request, PostGridViewModel post) { ModelState["CreatedOn"].Errors.Clear(); if (post == null || !ModelState.IsValid) { return Json(new[] { post }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet); } var fromUser = this.Data.Users.All().FirstOrDefault(us => us.Id == post.FromId); var toUser = this.Data.Users.All().FirstOrDefault(us => us.Id == post.ToId); var newPost = new Post { Content = post.Content, From = fromUser, To = toUser, CreatedOn = DateTime.Now }; this.Data.Posts.Add(newPost); this.Data.SaveChanges(); post.Id = newPost.Id; post.CreatedOn = newPost.CreatedOn; return Json(new[] { post }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet); }
public JsonResult UpdatePost([DataSourceRequest] DataSourceRequest request, PostGridViewModel post) { var existingPost = this.Data.Posts.All().FirstOrDefault(u => u.Id == post.Id); ModelState["CreatedOn"].Errors.Clear(); if (post == null || !ModelState.IsValid || existingPost == null) { return Json((new[] { post }.ToDataSourceResult(request, ModelState)), JsonRequestBehavior.AllowGet); } var fromUser = this.Data.Users.All().FirstOrDefault(us => us.Id == post.FromId); var toUser = this.Data.Users.All().FirstOrDefault(us => us.Id == post.ToId); existingPost.Id = post.Id; existingPost.Content = post.Content; existingPost.From = fromUser; existingPost.To = toUser; if (post.CreatedOn != null) { existingPost.CreatedOn = (DateTime)post.CreatedOn; } this.Data.SaveChanges(); return Json((new[] { post }.ToDataSourceResult(request, ModelState)), JsonRequestBehavior.AllowGet); }
public JsonResult DestroyPost([DataSourceRequest] DataSourceRequest request, PostGridViewModel post) { var existingPost = this.Data.Posts.All().FirstOrDefault(u => u.Id == post.Id); this.Data.Posts.Delete(existingPost); this.Data.SaveChanges(); return Json(new[] { post }, JsonRequestBehavior.AllowGet); }