public async Task OnGetAsync_WithError() { // Arrange var httpContext = new DefaultHttpContext(); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext( httpContext: httpContext, routeData: new RouteData(), actionDescriptor: new PageActionDescriptor(), modelState: modelState); var viewData = new ViewDataDictionary( metadataProvider: new EmptyModelMetadataProvider(), modelState: modelState); var login = new LoginModel(_signInManager.Object, _userManager.Object, _logger.Object) { PageContext = new PageContext(actionContext) { ViewData = viewData, HttpContext = httpContext }, Url = new UrlHelper(actionContext), ErrorMessage = "Error" }; // Act var get = await login.OnGetAsync().ConfigureAwait(false); // Assert Assert.IsType <PageResult>(get); Assert.Equal(login.Url.Content("~/"), login.ReturnUrl); Assert.Equal(1, login.ModelState.ErrorCount); }
public async Task OnGetAsync() { // Arrange const string returnUrl = "~/return-url"; var requestUri = new Uri("http://localhost"); var requestHeaders = new HeaderDictionary { [Referer] = requestUri.ToString() }; var requestFeature = new Mock <IHttpRequestFeature>(); requestFeature.Setup(x => x.Headers).Returns(requestHeaders); var featureCollection = new Mock <IFeatureCollection>(); featureCollection.Setup(x => x.Get <IHttpRequestFeature>()).Returns(requestFeature.Object); var httpContext = new DefaultHttpContext(featureCollection.Object); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext( httpContext: httpContext, routeData: new RouteData(), actionDescriptor: new PageActionDescriptor(), modelState: modelState); var viewData = new ViewDataDictionary( metadataProvider: new EmptyModelMetadataProvider(), modelState: modelState); var handlerType = typeof(JwtBearerHandler); var authenticationSchemes = new List <AuthenticationScheme> { new AuthenticationScheme("Scheme1", "Scheme 1", handlerType), new AuthenticationScheme("Scheme2", "Scheme 2", handlerType), new AuthenticationScheme("Scheme3", "Scheme 3", handlerType) }; _signInManager.Setup(x => x.GetExternalAuthenticationSchemesAsync()).ReturnsAsync(authenticationSchemes); var login = new LoginModel(_signInManager.Object, _userManager.Object, _logger.Object) { PageContext = new PageContext(actionContext) { ViewData = viewData, HttpContext = httpContext }, Url = new UrlHelper(actionContext) }; // Act var get = await login.OnGetAsync(returnUrl).ConfigureAwait(false); // Assert Assert.IsType <PageResult>(get); _signInManager.Verify(x => x.SignOutAsync(), Times.Once); Assert.Equal(login.ReturnUrl, returnUrl); Assert.Equal(login.ExternalLogins, authenticationSchemes); }
public async Task OnGetAsync_WithError() { // Arrange var requestUri = new Uri("http://localhost"); var requestHeaders = new HeaderDictionary { [Host] = requestUri.Host }; var requestFeature = new Mock <IHttpRequestFeature>(); requestFeature.Setup(x => x.Scheme).Returns(requestUri.Scheme); requestFeature.Setup(x => x.Headers).Returns(requestHeaders); var featureCollection = new Mock <IFeatureCollection>(); featureCollection.Setup(x => x.Get <IHttpRequestFeature>()).Returns(requestFeature.Object); var httpContext = new DefaultHttpContext(featureCollection.Object); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext( httpContext: httpContext, routeData: new RouteData(), actionDescriptor: new PageActionDescriptor(), modelState: modelState); var viewData = new ViewDataDictionary( metadataProvider: new EmptyModelMetadataProvider(), modelState: modelState); var login = new LoginModel(_signInManager.Object, _userManager.Object, _logger.Object) { PageContext = new PageContext(actionContext) { ViewData = viewData, HttpContext = httpContext }, Url = new UrlHelper(actionContext), ErrorMessage = "Error" }; // Act var get = await login.OnGetAsync().ConfigureAwait(false); // Assert Assert.IsType <PageResult>(get); Assert.Equal(login.Url.Content("~/"), login.ReturnUrl); Assert.Equal(1, login.ModelState.ErrorCount); }