public void UriValidator_IsInsecureScheme_LowercaseValidator_CaseInsensitive()
        {
            var lowercaseValidator = new UriValidator(
                supportedSchemes: new HashSet<string>(new[] { "case" }),
                insecureSchemes: new HashSet<string>(new[] { "case" })
            );

            VerifyIsInsecureSchemeCaseSensitivity(lowercaseValidator);
        }
        public void UriValidator_IsSupportedScheme_UppercaseValidator_CaseInsensitive()
        {
            var uppercaseValidator = new UriValidator(
                supportedSchemes: new HashSet<string>(new[] { "CASE" }),
                insecureSchemes: new HashSet<string>(new[] { "CASE" })
            );

            VerifyIsSupportedSchemeCaseSensitivity(uppercaseValidator);
        }
        public void UriValidator_IsSupportedScheme_MixedValidator_CaseInsensitive()
        {
            var mixedcaseValidator = new UriValidator(
                supportedSchemes: new HashSet<string>(new[] { "cAsE" }),
                insecureSchemes: new HashSet<string>(new[] { "cAsE" })
            );

            VerifyIsSupportedSchemeCaseSensitivity(mixedcaseValidator);
        }
        private void VerifyIsSupportedSchemeCaseSensitivity(UriValidator validator)
        {
            Uri lowercaseUri = CreateUri("case", "localhost");
            Uri uppercaseUri = CreateUri("CASE", "localhost");
            Uri mixedcaseUri = CreateUri("cAsE", "localhost");

            // Test
            bool lowercaseSupported = validator.IsSupportedScheme(lowercaseUri);
            bool uppercaseSupported = validator.IsSupportedScheme(uppercaseUri);
            bool mixedcaseSupported = validator.IsSupportedScheme(mixedcaseUri);

            // Verify
            Assert.IsTrue(lowercaseSupported, "Lowercase scheme should be supported");
            Assert.IsTrue(uppercaseSupported, "Uppercase scheme should be supported");
            Assert.IsTrue(mixedcaseSupported, "Mixed-case scheme should be supported");
        }