public void WhenSigningIn_ThenRedirectsToOpenProvidedAction() { string providerUrl = @"http://ssomeauthcontroller.com"; TestableAuthController authController = GetTestableAuthController(OpenIdRelyingPartyBuilder.DefaultParty().Object); ActionResult response = authController.SignInWithProvider(providerUrl); // For the test we ensure that controller responsds with whatever the OpenIdRelyingParty facade returns. Assert.IsType(typeof(RedirectResult), response); }
public void WhenSigningInWithoutSpecifyingProviderUrl_ThenRedirectsToOpenProvidedAction() { var relyingPartyMock = new Mock <IOpenIdRelyingParty>(); relyingPartyMock .Setup(x => x.RedirectToProvider(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <FetchRequest>())) .Throws(new Exception("Relying party expects a url, a null or empty string will raise an exception.")); TestableAuthController authController = GetTestableAuthController(relyingPartyMock.Object); var result = authController.SignInWithProvider(null) as RedirectToRouteResult; Assert.NotNull(result); Assert.Equal("Index", result.RouteValues["action"]); }
public void WhenProviderCreateRequestThrows_ThenRedirectsToSignInActionWithAMessage() { var relyingParty = new Mock <IOpenIdRelyingParty>(); relyingParty.Setup( r => r.RedirectToProvider(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <FetchRequest>())) .Throws(new Exception("Some Provider Exception")); TestableAuthController authController = GetTestableAuthController(relyingParty.Object); ActionResult result = authController.SignInWithProvider(@"http://providerUrl"); Assert.IsType(typeof(RedirectToRouteResult), result); Assert.Equal("SignIn", ((RedirectToRouteResult)result).RouteValues["action"]); Assert.NotNull(authController.TempData["Message"]); }
public void WhenSigningIn_ThenSetsReturnUrlToCorrectSchema() { string providerUrl = @"http://ssomeauthcontroller.com"; var relyingPartyMock = new Mock <IOpenIdRelyingParty>(); TestableAuthController authController = GetTestableAuthController(relyingPartyMock.Object); Mock <HttpRequestBase> requestMock = Mock.Get(authController.Request); requestMock.SetupGet(r => r.Url) .Returns(new Uri(@"https://nothingmattersbutschema.com", UriKind.Absolute)); ActionResult response = authController.SignInWithProvider(providerUrl); relyingPartyMock.Verify(x => x.RedirectToProvider( It.IsAny <string>(), It.Is <string>(s => s.StartsWith("https:")), It.IsAny <FetchRequest>()), "Incorrect schema applied for return URL."); }