public ActionResult Index(SetEmailViewModel model) { var user = userRepository.GetByEmail(model.UserEmail); if (user != null && user.AuthData.IsCompleted) { mailController.LoginEmail(user).Deliver(); return View("PleaseCheckEmail"); } user = user ?? new User {Email = model.UserEmail}; userRepository.Save(user); context.UserId = user.Id; // 3. Then they are forwarded to Twitter to get authorization var uri = twitterFactory.GetAuthorizationUri(); return RedirectPermanent(uri.ToString()); }
public void It_sets_email__saves_and_redirects_to_twitter() { mocker.Setup<IUserRepository>(x => x.Save(It.IsAny<User>())).Callback<User>(u => { u.Id = BsonObjectId.Empty; u.Email.ShouldEqual("*****@*****.**"); }); mocker.Setup<ITwitterFactory>(x => x.GetAuthorizationUri()).Returns(new Uri("http://twitter")); var viewModel = new SetEmailViewModel {UserEmail = "*****@*****.**"}; Sut.Index(viewModel).ShouldBeType<RedirectResult>(); mocker.VerifyAll(); mocker.GetMock<IContext>().VerifySet(x => x.UserId); }
public void It_redirects_to_twitter_when_twitter_creds_arent_complete() { // user is NOT NULL but also invalid creds. Probably backed out of a signup before mocker.Setup<IUserRepository>(x => x.GetByEmail("*****@*****.**")).Returns(new User()); mocker.Setup<ITwitterFactory>(x => x.GetAuthorizationUri()).Returns(new Uri("http://twitter")); var viewModel = new SetEmailViewModel {UserEmail = "*****@*****.**"}; Sut.Index(viewModel).ShouldBeType<RedirectResult>(); mocker.VerifyAll(); mocker.GetMock<IContext>().VerifySet(x => x.UserId); }