public void CreateProblem() { var problemService = A.Fake <IProblemService>(); var problemRepository = A.Fake <IProblemRepository>(); var memberRepository = A.Fake <IMemberRepository>(); var problemController = ControllerLocator.GetProblemController(memberRepository, problemService, problemRepository); var problem = _session.Single <Problem>().Get(); var member = _session.Single <Member>().Get(); var problemModel = new ProblemModel { Title = problem.Title, Text = problem.Text }; A.CallTo(() => memberRepository.Get(member.OpenId)).Returns(member); A.CallTo(() => problemService.CreateProblem(problem.Title, problem.Text.TransformLine(), member)) .WithAnyArguments() .Returns(problem); var redirect = problemController.Create(problemModel) as RedirectToRouteResult; Assert.That(redirect, Is.Not.Null); Assert.That(redirect.RouteValues["action"], Is.EqualTo("Details")); Assert.That(redirect.RouteValues["id"], Is.EqualTo(problem.Id.ToString())); }
public void LoadMemberProfileWithNote() { var member = new Member { Email = "*****@*****.**", OpenId = ConnectionHelper.OpenId, UserName = "******", Note = 2345 }; var memberRepository = A.Fake <IMemberRepository>(); var accountController = ControllerLocator.GetAccountControllerForConnectedUser(memberRepository); A.CallTo(() => memberRepository.Get(member.OpenId)).Returns(member); var result = accountController.Profile() as ViewResult; var memberResult = result.ViewData.Model as ProfileModel; Assert.That(result, Is.Not.Null); Assert.That(memberResult.Email, Is.EqualTo(member.Email)); Assert.That(memberResult.UserName, Is.EqualTo(member.UserName)); Assert.That(memberResult.Note, Is.EqualTo(new NoteModel(member.Note))); A.CallTo(() => memberRepository.Get(member.OpenId)).MustHaveHappened(); }
public void Test_Locate_Delete_User() { ControllerStateCollection strategies = new ControllerStateCollection(); strategies.Add(new ControllerInfo(typeof(CreateController))); strategies.Add(new ControllerInfo(typeof(MockController))); ControllerLocator locator = new ControllerLocator(strategies); ControllerInfo controller = (ControllerInfo)locator.Locate("Mock", "TestUser"); Assert.IsNotNull(controller, "No controller found."); }
public void LogUserOut() { var relyingParty = A.Fake <IAccountRelyingParty>(); var accountController = ControllerLocator.GetAccountControllerForLoginTest(relyingParty); A.CallTo(() => relyingParty.LogOut()); var result = accountController.LogOut(); Assert.That(result, Is.Not.Null); A.CallTo(() => relyingParty.LogOut()).MustHaveHappened(); }
/// <summary> /// Tests the LocateFromInterfaces method where the matching interface is implemented by a base type. /// </summary> public void Test_LocateFromInterfaces_Heirarchy() { Type type = typeof(User); string action = "Delete"; ControllerStateCollection strategies = new ControllerStateCollection(); strategies.Add(new ControllerInfo(typeof(CreateController))); strategies.Add(new ControllerInfo(typeof(DeleteController))); ControllerLocator locator = new ControllerLocator(strategies); ControllerInfo info = locator.LocateFromInterfaces(action, type); Assert.IsNotNull(info, "No controller info found."); }
public void LogInFailedWhenMemberFailRelyingPartyAuthentication() { var failedResponse = A.Fake <IAuthenticationResponse>(); var relyingParty = A.Fake <IAccountRelyingParty>(); var accountController = ControllerLocator.GetAccountControllerForLoginTest(relyingParty); A.CallTo(() => failedResponse.Status).Returns(AuthenticationStatus.Failed); A.CallTo(() => relyingParty.GetResponse()).Returns(failedResponse); var result = accountController.LogIn() as ViewResult; Assert.That(result, Is.Not.Null); Assert.That(result.Error(), Is.Not.Null.And.Not.EqualTo(string.Empty)); Assert.That(result.Error(), Is.EqualTo(Resources.Errors.Account.LogInFailedWithProvidedIdentifier)); A.CallTo(() => relyingParty.GetResponse()).MustHaveHappened(); A.CallTo(() => failedResponse.Status).MustHaveHappened(); }
public void LogInFailWithInvalidIndentifier() { var loginModel = new LogInModel { OpenId = ConnectionHelper.OpenId }; var relyingParty = A.Fake <IAccountRelyingParty>(); var accountController = ControllerLocator.GetAccountControllerForLoginTest(relyingParty); A.CallTo(() => relyingParty.IsValidIdentifier(ConnectionHelper.OpenId)).Returns(false); var result = accountController.LogIn(loginModel) as ViewResult; Assert.That(result, Is.Not.Null); Assert.That(result.Error("loginIdentifier"), Is.Not.Null); Assert.That(result.Error("loginIdentifier"), Is.EqualTo(Resources.Errors.Account.InvalidIndentifier)); A.CallTo(() => relyingParty.IsValidIdentifier(ConnectionHelper.OpenId)).MustHaveHappened(); }
public void LogInMemberWhenRelyingPartyAuthenticationIsSuccessfull() { var successResponse = A.Fake <IAuthenticationResponse>(); var relyingParty = A.Fake <IAccountRelyingParty>(); var accountController = ControllerLocator.GetAccountControllerForLoginTest(relyingParty); A.CallTo(() => successResponse.Status).Returns(AuthenticationStatus.Authenticated); A.CallTo(() => relyingParty.GetResponse()).Returns(successResponse); var result = accountController.LogIn() as RedirectToRouteResult; Assert.That(result, Is.Not.Null); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); Assert.That(result.RouteValues["controller"], Is.EqualTo("Home")); A.CallTo(() => relyingParty.GetResponse()).MustHaveHappened(); A.CallTo(() => successResponse.Status).MustHaveHappened(); A.CallTo(() => relyingParty.LogInMember(successResponse)).MustHaveHappened(); }
public void TryLogInByRedirectingUserToRelyingParty() { var loginModel = new LogInModel { OpenId = ConnectionHelper.OpenId }; // We don't care what the result is. We just want to check we get back the same object var redirectResult = new EmptyResult(); var relyingParty = A.Fake <IAccountRelyingParty>(); var accountController = ControllerLocator.GetAccountControllerForLoginTest(relyingParty); A.CallTo(() => relyingParty.IsValidIdentifier(ConnectionHelper.OpenId)).Returns(true); A.CallTo(() => relyingParty.CreateRequest(ConnectionHelper.OpenId)).Returns(redirectResult); var result = accountController.LogIn(loginModel); Assert.That(result, Is.Not.Null); Assert.That(result, Is.SameAs(redirectResult)); A.CallTo(() => relyingParty.IsValidIdentifier(ConnectionHelper.OpenId)).MustHaveHappened(); A.CallTo(() => relyingParty.CreateRequest(ConnectionHelper.OpenId)).MustHaveHappened(); }
public void LoadMemberProfileWithNoteWithoutEmail() { var member = new Member { Email = null, // No email was given by member OpenId = ConnectionHelper.OpenId, UserName = "******", Note = 2345 }; var memberRepository = A.Fake <IMemberRepository>(); var accountController = ControllerLocator.GetAccountControllerForConnectedUser(memberRepository); A.CallTo(() => memberRepository.Get(member.OpenId)).Returns(member); var result = accountController.Profile() as ViewResult; var memberResult = result.ViewData.Model as ProfileModel; Assert.That(result, Is.Not.Null); Assert.That(memberResult.Email, Is.EqualTo(string.Empty)); A.CallTo(() => memberRepository.Get(member.OpenId)).MustHaveHappened(); }