public static IMailTemplate Create(Session session) { var template = new TokenSubstitutingMailTemplate(MailSubject, Emails.SessionSubmission); template.AddTokenSubstitution(SessionTitleToken, session.Title); template.AddTokenSubstitution(SessionAbstractToken, session.Abstract); return template; }
public void CannotSaveAnEditToASession_WhenTheSessionBelongsToAnotherUser() { var session = new Session { SessionId = 1, SpeakerUserName = "******" }; var controller = new SessionControllerBuilder().Updating(session).Build(); var result = controller.Edit("fred", session); Assert.That(result, Is.InstanceOf<HttpUnauthorizedResult>()); }
public ActionResult Edit(Session session) { if (ModelState.IsValid) { sessionRepository.UpdateSession(session); return RedirectToAction("Index"); } return View(session); }
public void OnlyReturnSelectedSessionsForTheSpecifiedSpeaker() { var sessionRepository = Substitute.For<ISessionRepository>(); var session1 = new Session {SpeakerUserName = "******", SessionId = 123456}; var session3 = new Session {SpeakerUserName = "******", SessionId = 102}; sessionRepository.GetSessionsSubmittedBy("bob").Returns(new[] { session1, new Session { SpeakerUserName = "******" }, session3 }); var sessionsLoader = new SelectedSessionsLoader(sessionRepository); var sessions = sessionsLoader.LoadSessions(new UserProfile {UserName = "******"}); Assert.That(sessions, Is.EquivalentTo(new[] {session3})); }
private bool UserDoesNotOwnSession(string userName, Session session) { return session.SpeakerUserName != userName; }
private SessionDisplayModel CreateDisplayModel(Session session, UserProfile profile) { var isUsersSession = Request.IsAuthenticated && session.SpeakerUserName == User.Identity.Name; var tweetLink = CreateTweetLink(isUsersSession, session.Title, Url.Action("Details", "Session", new { id = session.SessionId }, Request.Url.Scheme)); var displayModel = new SessionDisplayModel { SessionId = session.SessionId, SessionTitle = session.Title, SessionAbstract = session.Abstract, SpeakerId = profile.UserId, SpeakerName = profile.Name, SpeakerUserName = session.SpeakerUserName, SpeakerGravatarUrl = profile.GravatarUrl(), TweetLink = tweetLink, IsUsersSession = isUsersSession }; return displayModel; }
public void ShouldEmailTheUserTheirSubmission_WhenCreating() { var postman = Substitute.For<IPostman>(); var bob = new UserProfile { Name = "Bob", EmailAddress = "*****@*****.**", UserName = "******" }; var session = new Session { Title = "Bob's awesome session", Abstract = "This is going to be awesome!" }; var controller = new SessionControllerBuilder() .WithPostman(postman) .WhenSubmissionsAreOpen() .ForUser(bob) .Submitting(session) .Build(); controller.Create(session); var expectedMailMessage = MailMessage.FromTemplate(SessionCreatedMailTemplate.Create(session), bob); postman.Received().Deliver(expectedMailMessage); }
public void ShouldEmailTheUserTheirUpdatedSubmission_WhenEditing() { var postman = Substitute.For<IPostman>(); var bob = new UserProfile { Name = "Bob", EmailAddress = "*****@*****.**", UserName = "******" }; var session = new Session { Title = "Bob's even more awesome session", Abstract = "Just wait until you see it!", SpeakerUserName = bob.UserName, SessionId = 1 }; var controller = new SessionControllerBuilder() .WithPostman(postman) .ForUser(bob) .Updating(session) .Build(); controller.Edit(bob.UserName, session); var expectedMailMessage = MailMessage.FromTemplate(SessionUpdatedMailTemplate.Create(session), bob); postman.Received().Deliver(expectedMailMessage); }
public void Edit_SavesTheUserProfileCorrectly() { var sessionRepository = Substitute.For<ISessionRepository>(); var voteRepository = Substitute.For<IVoteRepository>(); var controller = new SessionController(sessionRepository, voteRepository); var session = new Session { Title = "A session", Abstract = "My session is about...", SpeakerUserName = "******" }; controller.Edit(session); sessionRepository.Received().UpdateSession(session); }
public void UpdateSession(Session session) { db.Sessions.UpdateBySessionId(session); }
public Session AddSession(Session session) { return db.Sessions.Insert(session); }
public SessionControllerBuilder Updating(Session session) { sessionRepository.Get(session.SessionId).Returns(session); return this; }
public SessionControllerBuilder Submitting(Session session) { sessionRepository.AddSession(session).Returns(session); return this; }