public void AuthorizationConfigurationValidationIntrospectionDiscoveryPolicyAdditionalEndpointBaseAddressesManyFailTest(
            bool validateIssuerName,
            bool validateEndpoints,
            bool requireHttps,
            bool requireKeySet,
            bool allowHttpOnLoopback
            )
        {
            var config = new AuthorizationConfiguration
            {
                PolicyName = "policyName",
                ApiName    = "apiName",
                ApiSecret  = "apiSecret",
                IssuerUrl  = "issuerUrl",
                Origins    = new[] { "http://localhost" },
                IntrospectionDiscoveryPolicy = new DiscoveryPolicy
                {
                    RequireHttps                    = requireHttps,
                    RequireKeySet                   = requireKeySet,
                    AllowHttpOnLoopback             = allowHttpOnLoopback,
                    ValidateIssuerName              = validateIssuerName,
                    ValidateEndpoints               = validateEndpoints,
                    AdditionalEndpointBaseAddresses = { "https://identityserver:443\\", "https://identityserver/" },
                    Authority = "https://identityserver:443/"
                }
            };
            var rule = new AuthorizationConfigurationValidation();

            rule.Validate(null, config).Failed.Should().BeTrue();
        }
        public void AuthorizationConfigurationValidationSucceededTest()
        {
            var config = new AuthorizationConfiguration
            {
                PolicyName = "PolicyName",
                ApiName    = "ApiName",
                ApiSecret  = "ApiSecret",
                IssuerUrl  = "IssuerUrl",
                Origins    = new[] { "http://localhost" },
                IntrospectionDiscoveryPolicy = new DiscoveryPolicy
                {
                    RequireHttps                    = true,
                    RequireKeySet                   = true,
                    AllowHttpOnLoopback             = true,
                    ValidateIssuerName              = true,
                    ValidateEndpoints               = true,
                    Authority                       = "https://identityserver:443",
                    AdditionalEndpointBaseAddresses = { "https://identityserver:443", "https://identityserver" }
                }
            };

            var rule = new AuthorizationConfigurationValidation();

            rule.Validate(null, config).Succeeded.Should().BeTrue();
        }
        public void AuthorizationConfigurationValidationFailTest()
        {
            var config = new AuthorizationConfiguration
            {
                PolicyName = "PolicyName",
                ApiName    = "ApiName",
                ApiSecret  = "ApiSecret",
                IssuerUrl  = "IssuerUrl",
                Origins    = new[] { "" }
            };

            var rule = new AuthorizationConfigurationValidation();

            rule.Validate(null, config).Failed.Should().BeTrue();
        }
        public void AuthorizationConfigurationValidationIntrospectionDiscoveryPolicyNullFailTest()
        {
            var config = new AuthorizationConfiguration
            {
                PolicyName = "policyName",
                ApiName    = "apiName",
                ApiSecret  = "apiSecret",
                IssuerUrl  = "issuerUrl",
                Origins    = new[] { "http://localhost" },
                IntrospectionDiscoveryPolicy = null
            };
            var rule = new AuthorizationConfigurationValidation();

            rule.Validate(null, config).Failed.Should().BeTrue();
        }
        public void AuthorizationConfigurationValidationManyFailTest(
            string policyName,
            string apiName,
            string apiSecret,
            string issuerUrl)
        {
            var config = new AuthorizationConfiguration
            {
                PolicyName = policyName,
                ApiName    = apiName,
                ApiSecret  = apiSecret,
                IssuerUrl  = issuerUrl,
                Origins    = new[] { "http://localhost" }
            };
            var rule = new AuthorizationConfigurationValidation();

            rule.Validate(null, config).Failed.Should().BeTrue();
        }