public void CanEditSnippet() { Snippet sn = new Snippet { Id = 1, Title = "T1", Content = "C1", UserId = 1 }; Mock<ISnippetRepository> repo = new Mock<ISnippetRepository>(); repo.Setup(m => m.GetById(It.Is<long>(x => x == 1))).Returns(sn); var snippet = new Snippet(); repo.Setup(m => m.Update(It.Is<Snippet>(x => x.Id == 1))).Callback<Snippet>(x => { sn.Id = x.Id; sn.Title = x.Title; sn.Content = x.Content; }); Mock<IWebSecurity> webSec = new Mock<IWebSecurity>(); webSec.Setup(x => x.CurrentUserId).Returns(1); EditVM vm = new EditVM { Id = 1, Title = "TT1", Content = "CC1", }; var controller = new HomeController(repo.Object, webSec.Object); var result = controller.Edit(vm) as RedirectResult; Assert.AreEqual("TT1", sn.Title); Assert.AreEqual("CC1", sn.Content); }
public void UserCannotEditOtherUsersSnippets() { Snippet sn = new Snippet { Id = 1, Title = "T1", Content = "C1", UserId = 1 }; Mock<ISnippetRepository> repo = new Mock<ISnippetRepository>(); repo.Setup(m => m.GetById(It.Is<long>(x => x == 1))).Returns(sn); var snippet = new Snippet(); repo.Setup(m => m.Update(It.Is<Snippet>(x => x.Id == 1))).Callback<Snippet>(x => { sn.Id = x.Id; sn.Title = x.Title; sn.Content = x.Content; }); Mock<IWebSecurity> webSec = new Mock<IWebSecurity>(); webSec.Setup(x => x.CurrentUserId).Returns(2); EditVM vm = new EditVM { Id = 1, Title = "TT1", Content = "CC1", }; var controller = new HomeController(repo.Object, webSec.Object); var result = controller.Edit(vm) as HttpUnauthorizedResult; Assert.IsNotNull(result); Assert.AreEqual(401, result.StatusCode); }