public async Task RedirectUrisAreValid(string uris, bool expectValidModel) { var controller = new ApplicationController( Mock.Of <IShapeFactory>(), Mock.Of <ISiteService>(), MockStringLocalizer().Object, MockAuthorizationServiceMock().Object, Mock.Of <IOpenIdApplicationManager>(), Mock.Of <IOpenIdScopeManager>(), Mock.Of <IHtmlLocalizer <ApplicationController> >(), Mock.Of <INotifier>(), Mock.Of <ShellDescriptor>()); controller.ControllerContext = CreateControllerContext(); var model = new CreateOpenIdApplicationViewModel(); model.Type = OpenIddictConstants.ClientTypes.Public; model.AllowAuthorizationCodeFlow = true; model.RedirectUris = uris; var validationContext = new ValidationContext(model); var localizerMock = new Mock <IStringLocalizer <CreateOpenIdApplicationViewModel> >(); localizerMock.Setup(x => x[It.IsAny <string>(), It.IsAny <object[]>()]) .Returns((string name, object[] args) => new LocalizedString(name, string.Format(name, args))); validationContext.InitializeServiceProvider((t) => localizerMock.Object); foreach (var validation in model.Validate(validationContext)) { controller.ModelState.AddModelError(validation.MemberNames.First(), validation.ErrorMessage); } var result = await controller.Create(model); if (expectValidModel) { Assert.IsType <RedirectToActionResult>(result); } else { Assert.IsType <ViewResult>(result); } Assert.Equal(expectValidModel, controller.ModelState.IsValid); }
public async Task RedirectUrisAreValid(string uris, bool expectValidModel) { var controller = new ApplicationController( Mock.Of <IShapeFactory>(), Mock.Of <ISiteService>(), MockStringLocalizer().Object, MockAuthorizationServiceMock().Object, Mock.Of <IOpenIdApplicationManager>(), Mock.Of <IHtmlLocalizer <ApplicationController> >(), Mock.Of <INotifier>(), Mock.Of <ShellDescriptor>()); controller.ControllerContext = CreateControllerContext(); var model = new CreateOpenIdApplicationViewModel(); model.Type = OpenIddictConstants.ClientTypes.Public; model.AllowAuthorizationCodeFlow = true; model.RedirectUris = uris; foreach (var validation in model.Validate(new ValidationContext(model))) { controller.ModelState.AddModelError(validation.MemberNames.First(), validation.ErrorMessage); } var result = await controller.Create(model); if (expectValidModel) { Assert.IsType <RedirectToActionResult>(result); } else { Assert.IsType <ViewResult>(result); } Assert.Equal(expectValidModel, controller.ModelState.IsValid); }