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);
        }
Esempio n. 2
0
        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);
        }