public ActionResult Edit(EditNoteViewModel model, string noteId) { Guid noteGuid = Guid.Parse(noteId); Core.Entities.Note note = noteRepository.GetNote(noteGuid); if (note == null) { return RedirectToAction("index"); } var user = userRepository.GetByUsername(User.Identity.Name); if (note.OwnerId != user.Id) { return RedirectToAction("index"); } commandInvoker.Execute(new EditNoteCommand(model.Title, model.Content, noteGuid)); return RedirectToAction("index"); }
public void PostToEditShouldExecuteEditNoteCommandForTheSpecifiedNoteAndRedirectsToIndex() { var mockCommandInvoker = new Mock<ICommandInvoker>(); var mockUserRepository = new Mock<IUserRepository>(); var mockNoteRepository = new Mock<INoteRepository>(); Guid noteId = Guid.NewGuid(); Guid ownerId = Guid.NewGuid(); var note = new Core.Entities.Note { Content = "Test Content", Title = "Test Title", Id = noteId, OwnerId = ownerId }; mockNoteRepository.Setup(x => x.GetNote(noteId)).Returns(note); mockUserRepository.Setup(x => x.GetByUsername("boco")).Returns(new User { Id = ownerId }); var notesController = GetNotesController(mockCommandInvoker, mockNoteRepository, mockUserRepository); var editNoteViewModel = new EditNoteViewModel { Content = "New Content", Title = "New Title" }; var result = notesController.Edit(editNoteViewModel, noteId.ToString()) as RedirectToRouteResult; Assert.IsNotNull(result); Assert.AreEqual("index", result.RouteValues["action"]); mockCommandInvoker.Verify(x => x.Execute(It.Is<EditNoteCommand>(enc => enc.Content == editNoteViewModel.Content && enc.Title == editNoteViewModel.Title && enc.NoteId == noteId)), Times.Once()); }
public void PostToNewShouldRedirectToIndexAction() { var noteNewViewModel = new EditNoteViewModel { Content = "This is some content", Title = "This is the title" }; var id = Guid.NewGuid(); var mockCommandInvoker = new Mock<ICommandInvoker>(); var mockUserRepository = new Mock<IUserRepository>(); mockUserRepository.Setup(x => x.GetByUsername("boco")).Returns(new User { Id = id }); var notesController = GetNotesController(mockCommandInvoker, new Mock<INoteRepository>(), mockUserRepository); var result = notesController.New(noteNewViewModel) as RedirectToRouteResult; Assert.IsNotNull(result); Assert.AreEqual("index", result.RouteValues["action"]); }
public void PostToNewShouldInvokeAddNewNoteCommandWithCurrentlYLoggedinUserAsNoteOwner() { var noteNewViewModel = new EditNoteViewModel { Content = "This is some content", Title = "This is the title" }; var id = Guid.NewGuid(); var mockCommandInvoker = new Mock<ICommandInvoker>(); var mockUserRepository = new Mock<IUserRepository>(); mockUserRepository.Setup(x => x.GetByUsername("boco")).Returns(new User { Id = id }); var notesController = GetNotesController(mockCommandInvoker, new Mock<INoteRepository>(), mockUserRepository); var mockHttpContext = new Mock<ControllerContext>(); mockHttpContext.Setup(x => x.HttpContext.User.Identity.Name).Returns("boco"); notesController.ControllerContext = mockHttpContext.Object; notesController.New(noteNewViewModel); mockHttpContext.VerifyGet(x => x.HttpContext.User.Identity.Name, Times.Once()); }
public void PostToNewShouldInvokeAddNewNoteCommand() { var noteNewViewModel = new EditNoteViewModel { Content = "This is some content", Title = "This is the title" }; var id = Guid.NewGuid(); var mockCommandInvoker = new Mock<ICommandInvoker>(); var mockUserRepository = new Mock<IUserRepository>(); mockUserRepository.Setup(x => x.GetByUsername("boco")).Returns(new User { Id = id }); var notesController = GetNotesController(mockCommandInvoker, new Mock<INoteRepository>(), mockUserRepository); notesController.New(noteNewViewModel); mockCommandInvoker.Verify(x => x.Execute( It.Is<AddNewNoteCommand>( nnc => nnc.Content == noteNewViewModel.Content && nnc.Title == noteNewViewModel.Title && nnc.OwnerId == id)), Times.Once()); }
public ActionResult UpdateNoteJson(EditNoteViewModel model, string noteId) { Guid noteGuid = Guid.Parse(noteId); var note = userRepository.GetByUsername(User.Identity.Name).Notes.SingleOrDefault(x => x.Id == noteGuid); if(note == null) { return Json(new {Error = "The note does not exist"}); } commandInvoker.Execute(new EditNoteCommand(model.Title, model.Content, Guid.Parse(noteId))); return Json(null); }
public ActionResult New(EditNoteViewModel model) { var user = userRepository.GetByUsername(User.Identity.Name); commandInvoker.Execute(new AddNewNoteCommand(model.Title, model.Content, user.Id, DateTime.Now)); return RedirectToAction("index"); }