Exemplo n.º 1
0
        bool IsSupported(TestContext ctx, ConnectionProvider provider, string filter)
        {
            if (!IsSupported(provider))
            {
                return(false);
            }

            var(match, success, wildcard) = MatchesFilter(provider, filter);
            if (match)
            {
                if (!success)
                {
                    return(false);
                }
                if (wildcard && !HasFlag(ConnectionTestFlags.AllowWildcardMatches) && provider.HasFlag(ConnectionProviderFlags.IsExplicit))
                {
                    return(false);
                }
                return(true);
            }

            if (provider.HasFlag(ConnectionProviderFlags.IsExplicit))
            {
                return(false);
            }

            if ((Flags & ConnectionTestFlags.AssumeSupportedByTest) != 0)
            {
                return(true);
            }

            return(true);
        }
Exemplo n.º 2
0
        bool IsServerSupported(ConnectionProvider provider)
        {
            if (HasFlag(ConnectionTestFlags.ManualServer))
            {
                return(provider.Type == ConnectionProviderType.Manual);
            }
            if (HasFlag(ConnectionTestFlags.RequireMonoServer) && !provider.HasFlag(ConnectionProviderFlags.SupportsMonoExtensions))
            {
                return(false);
            }
            if (HasFlag(ConnectionTestFlags.RequireDotNet) && provider.Type != ConnectionProviderType.DotNet)
            {
                return(false);
            }
            if (HasFlag(ConnectionTestFlags.RequireCleanServerShutdown) && !provider.HasFlag(ConnectionProviderFlags.SupportsCleanShutdown))
            {
                return(false);
            }

            return(true);
        }
        protected bool?IsSupported(TestContext ctx, ConnectionProvider provider, string filter)
        {
            if (HasFlag(ConnectionTestFlags.RequireSslStream) && !provider.HasFlag(ConnectionProviderFlags.SupportsSslStream))
            {
                return(false);
            }
            if (HasFlag(ConnectionTestFlags.RequireHttp) && !provider.HasFlag(ConnectionProviderFlags.SupportsHttp))
            {
                return(false);
            }
            if (HasFlag(ConnectionTestFlags.RequireTrustedRoots) && !provider.HasFlag(ConnectionProviderFlags.SupportsTrustedRoots))
            {
                return(false);
            }
            if (HasFlag(ConnectionTestFlags.RequireHttpListener) && !provider.HasFlag(ConnectionProviderFlags.SupportsHttpListener))
            {
                return(false);
            }

            var match = MatchesFilter(provider, filter);

            if (match != null)
            {
                return(match.Value);
            }
            if (provider.HasFlag(ConnectionProviderFlags.IsExplicit))
            {
                return(false);
            }

            if ((Flags & ConnectionTestFlags.AssumeSupportedByTest) != 0)
            {
                return(true);
            }

            return(null);
        }
 protected bool IsClientSupported(ConnectionProvider provider)
 {
     if (HasFlag(ConnectionTestFlags.ManualClient))
     {
         return(provider.Type == ConnectionProviderType.Manual);
     }
     if (HasFlag(ConnectionTestFlags.RequireMonoClient) && !provider.HasFlag(ConnectionProviderFlags.SupportsMonoExtensions))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireDotNet) && provider.Type != ConnectionProviderType.DotNet)
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 5
0
 bool IsSupported(ConnectionProvider provider)
 {
     if (HasFlag(ConnectionTestFlags.AssumeSupportedByTest))
     {
         return(true);
     }
     if (HasFlag(ConnectionTestFlags.RequireSslStream) && !provider.HasFlag(ConnectionProviderFlags.SupportsSslStream))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireHttp) && !provider.HasFlag(ConnectionProviderFlags.SupportsHttp))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireTrustedRoots) && !provider.HasFlag(ConnectionProviderFlags.SupportsTrustedRoots))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireHttpListener) && !provider.HasFlag(ConnectionProviderFlags.SupportsHttpListener))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireClientCertificates) && !provider.HasFlag(ConnectionProviderFlags.SupportsClientCertificates))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireCleanShutdown) && !provider.HasFlag(ConnectionProviderFlags.SupportsCleanShutdown))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireMono) && !provider.HasFlag(ConnectionProviderFlags.SupportsMonoExtensions))
     {
         return(false);
     }
     if (HasFlag(ConnectionTestFlags.RequireTls12) && !provider.HasFlag(ConnectionProviderFlags.SupportsTls12))
     {
         return(false);
     }
     return(true);
 }