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)); }