示例#1
0
        public IEnumerable <ConnectionTestProvider> GetParameters(TestContext ctx, string argument)
        {
            var category = ctx.GetParameter <ConnectionTestCategory> ();

            ConnectionProviderFilter filter;

            if (!ctx.TryGetParameter <ConnectionProviderFilter> (out filter))
            {
                var flags = ConnectionTestRunner.GetConnectionFlags(ctx, category);

                ConnectionTestFlags explicitFlags;
                if (ctx.TryGetParameter <ConnectionTestFlags> (out explicitFlags))
                {
                    flags |= explicitFlags;
                }

                filter = new ConnectionTestProviderFilter(category, flags);
            }

            var supportedProviders = filter.GetSupportedProviders(ctx, argument).Cast <ConnectionTestProvider> ().ToList();

            if (!Optional && supportedProviders.Count == 0)
            {
                ctx.AssertFail("Could not find any supported ConnectionTestProvider.");
            }

            return(supportedProviders);
        }
        public override bool IsServerSupported(TestContext ctx, ConnectionProvider provider, string filter)
        {
            if (!IsServerSupported(provider))
            {
                return(false);
            }

            var supported = IsSupported(ctx, provider, filter);

            if (supported != null)
            {
                return(supported.Value);
            }

            return(ConnectionTestRunner.IsSupported(ctx, Category, provider));
        }
        public IEnumerable <HttpsTestParameters> GetParameters(TestContext ctx, string filter)
        {
            if (filter != null)
            {
                throw new NotImplementedException();
            }

            var category = ctx.GetParameter <ConnectionTestCategory> ();

            if (Type != null)
            {
                yield return(HttpsTestRunner.GetParameters(ctx, category, Type.Value));
            }

            foreach (var type in ConnectionTestRunner.GetConnectionTestTypes(ctx, category))
            {
                yield return(HttpsTestRunner.GetParameters(ctx, category, type));
            }
        }
        bool IsSupported(TestContext ctx, ConnectionProvider provider, string filter)
        {
            var supportsSslStream    = (provider.Flags & ConnectionProviderFlags.SupportsSslStream) != 0;
            var supportsHttps        = (provider.Flags & ConnectionProviderFlags.SupportsHttp) != 0;
            var supportsTrustedRoots = (provider.Flags & ConnectionProviderFlags.SupportsTrustedRoots) != 0;

            if ((Flags & ConnectionTestFlags.RequireSslStream) != 0 && !supportsSslStream)
            {
                return(false);
            }
            if ((Flags & ConnectionTestFlags.RequireHttp) != 0 && !supportsHttps)
            {
                return(false);
            }
            if ((Flags & ConnectionTestFlags.RequireTrustedRoots) != 0 && !supportsTrustedRoots)
            {
                return(false);
            }

            var match = MatchesFilter(provider, filter);

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

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

            return(ConnectionTestRunner.IsSupported(ctx, Category, provider));
        }