protected ITestHost CreateHost(HostType hostType, TransportType transportType) { ITestHost host = null; switch (hostType) { case HostType.IISExpress: host = new IISExpressTestHost(); host.TransportFactory = () => CreateTransport(transportType); host.Transport = host.TransportFactory(); break; case HostType.Memory: var mh = new MemoryHost(); host = new MemoryTestHost(mh); host.TransportFactory = () => CreateTransport(transportType, mh); host.Transport = host.TransportFactory(); break; case HostType.Owin: host = new OwinTestHost(); host.TransportFactory = () => CreateTransport(transportType); host.Transport = host.TransportFactory(); break; default: break; } return host; }
public void BasicAuthCredentialsFlow(TransportType transportType) { using (var host = new OwinTestHost()) { Debug.Listeners.Clear(); host.Start<BasicAuthApplication>(); HubConnection connection = CreateHubConnection(host); var hub = connection.CreateHubProxy("demo"); hub["name"] = "test"; connection.Credentials = new System.Net.NetworkCredential("user", "password"); connection.Start(CreateTransport(transportType)).Wait(); var result = hub.InvokeWithTimeout<string>("ReadStateValue"); Assert.Equal("test", result); connection.Stop(); } }
protected ITestHost CreateHost(HostType hostType, TransportType transportType) { string testName = GetTestName() + "." + hostType + "." + transportType + "." + Interlocked.Increment(ref _id); ITestHost host = null; string logBasePath = Path.Combine(Directory.GetCurrentDirectory(), ".."); switch (hostType) { case HostType.IISExpress: host = new IISExpressTestHost(testName); host.TransportFactory = () => CreateTransport(transportType); host.Transport = host.TransportFactory(); break; case HostType.Memory: var mh = new MemoryHost(); host = new MemoryTestHost(mh, Path.Combine(logBasePath, testName)); host.TransportFactory = () => CreateTransport(transportType, mh); host.Transport = host.TransportFactory(); break; case HostType.Owin: host = new OwinTestHost(); host.TransportFactory = () => CreateTransport(transportType); host.Transport = host.TransportFactory(); break; default: break; } var writer = CreateClientTraceWriter(testName); host.ClientTraceOutput = writer; if (hostType != HostType.Memory) { string clientNetworkPath = Path.Combine(logBasePath, testName + ".client.network.log"); host.Disposables.Add(SystemNetLogging.Enable(clientNetworkPath)); string httpSysTracePath = Path.Combine(logBasePath, testName + ".httpSys"); IDisposable httpSysTracing = StartHttpSysTracing(httpSysTracePath); // If tracing is enabled then turn it off on host dispose if (httpSysTracing != null) { host.Disposables.Add(httpSysTracing); } } TraceListener traceListener = EnableTracing(testName, logBasePath); host.Disposables.Add(new DisposableAction(() => { traceListener.Close(); Trace.Listeners.Remove(traceListener); })); EventHandler<UnobservedTaskExceptionEventArgs> handler = (sender, args) => { Trace.TraceError("Unobserved task exception: " + args.Exception.GetBaseException()); args.SetObserved(); }; TaskScheduler.UnobservedTaskException += handler; host.Disposables.Add(new DisposableAction(() => { TaskScheduler.UnobservedTaskException -= handler; })); return host; }