public void AddBookmarkForNonExistentEventTest() { var mockRepository = new Mock <IRepository <Event> >(); mockRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns((Event)null); var controllerContext = new Mock <ControllerContext>(); controllerContext.SetupGet(x => x.HttpContext.User) .Returns(this.mockPrincipal.Object); var controller = new UserController(null, mockRepository.Object, null) { ControllerContext = controllerContext.Object }; controller.AddBookmark(0); Assert.IsNull(controller.TempData["message"]); Assert.IsNotNull(controller.TempData["error"]); mockRepository.Verify(r => r.GetById(It.IsAny <int>()), Times.Once); mockRepository.Verify(r => r.Save(), Times.Never); }
public void AddExistentBookmarkTest() { const int eventId = 1; var eventToAdd = new Event { Id = eventId, BookmarkedBy = new List <DB.Models.User>() }; DB.Models.User user = new DB.Models.User { Id = this.username, BookmarkedEvents = new List <Event> { eventToAdd } }; eventToAdd.BookmarkedBy.Add(user); var events = new[] { eventToAdd }; var mockRepository = new Mock <IRepository <Event> >(); mockRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(events[0]); mockRepository.Setup(r => r.Save()).Returns(0); var userManager = new Mock <AppUserManager>( new UserStore <DB.Models.User>()); userManager.Setup(m => m.FindByIdAsync(It.IsAny <string>())) .Returns(Task.FromResult(user)); var controllerContext = new Mock <ControllerContext>(); controllerContext.SetupGet(x => x.HttpContext.User) .Returns(this.mockPrincipal.Object); var controller = new UserController(null, mockRepository.Object, null) { ControllerContext = controllerContext.Object, UserManager = userManager.Object }; Assert.IsTrue(events[0].BookmarkedBy.Contains(user)); Assert.IsTrue(user.BookmarkedEvents.Contains(events[0])); controller.AddBookmark(eventId); Assert.IsTrue(events[0].BookmarkedBy.Contains(user)); Assert.IsTrue(user.BookmarkedEvents.Contains(events[0])); Assert.IsNull(controller.TempData["message"]); Assert.IsNotNull(controller.TempData["error"]); mockRepository.Verify(r => r.GetById(It.IsAny <int>()), Times.Once); mockRepository.Verify(r => r.Save(), Times.Once); }