public void AddHandler_AcceptsMultipleHandlers() { var pipe = new HttpPipelineHandler(); Assert.AreEqual(0, pipe.Count); pipe.Add(Substitute.For <IHttpHandler>()); pipe.Add(Substitute.For <IHttpHandler>()); Assert.AreEqual(2, pipe.Count); }
public void AddHandler_AcceptsMultipleHandlers() { var pipe = new HttpPipelineHandler(); Assert.AreEqual(0, pipe.Count); pipe.Add(Substitute.For<IHttpHandler>()); pipe.Add(Substitute.For<IHttpHandler>()); Assert.AreEqual(2, pipe.Count); }
public async Task ProcessRequest_StopsExecutingWhenTerminateReturned() { var context = Substitute.For <IStumpsHttpContext>(); var pipe = new HttpPipelineHandler(); var innerHandler1 = new NoOpHandler(ProcessHandlerResult.Terminate); var innerHandler2 = new NoOpHandler(ProcessHandlerResult.Continue); pipe.Add(innerHandler1); pipe.Add(innerHandler2); var result = await pipe.ProcessRequest(context); Assert.AreEqual(ProcessHandlerResult.Terminate, result, "The process request returned a Continue."); Assert.AreEqual(1, innerHandler1.ProcessRequestCalls()); Assert.AreEqual(0, innerHandler2.ProcessRequestCalls()); }
public async void ProcessRequest_StopsExecutingWhenTerminateReturned() { var context = Substitute.For<IStumpsHttpContext>(); var pipe = new HttpPipelineHandler(); var innerHandler1 = new NoOpHandler(ProcessHandlerResult.Terminate); var innerHandler2 = new NoOpHandler(ProcessHandlerResult.Continue); pipe.Add(innerHandler1); pipe.Add(innerHandler2); var result = await pipe.ProcessRequest(context); Assert.AreEqual(ProcessHandlerResult.Terminate, result, "The process request returned a Continue."); Assert.AreEqual(1, innerHandler1.ProcessRequestCalls()); Assert.AreEqual(0, innerHandler2.ProcessRequestCalls()); }
public void Indexer_ReturnsItem() { var pipe = new HttpPipelineHandler(); var handler1 = new MockHandler() { HandlerId = 1 }; var handler2 = new MockHandler() { HandlerId = 2 }; pipe.Add(handler1); pipe.Add(handler2); Assert.AreEqual(1, ((MockHandler)pipe[0]).HandlerId); Assert.AreEqual(2, ((MockHandler)pipe[1]).HandlerId); }
/// <summary> /// Starts this instance of the Stumps server. /// </summary> public void Start() { lock (_syncRoot) { if (_started) { return; } _started = true; // Setup the pipeline HTTP handler var pipeline = new HttpPipelineHandler(); // Setup the Stump HTTP handler _stumpsHandler = new StumpsHandler(_stumpsManager); _stumpsHandler.Enabled = this.StumpsEnabled; pipeline.Add(_stumpsHandler); // Setup the Proxy HTTP handler if (_remoteHttpServer != null) { var proxyHandler = new ProxyHandler(_remoteHttpServer); pipeline.Add(proxyHandler); } else { // Setup the Service Unavailable HTTP handler var stumpNotFoundHandler = new FallbackResponseHandler(_defaultResponse); pipeline.Add(stumpNotFoundHandler); } var scheme = _useHttpsForIncommingConnections ? ServerScheme.Https : ServerScheme.Http; _server = new HttpServer(scheme, _port, pipeline); _server.RequestFinished += ServerRequestFinished; _server.RequestProcessed += ServerRequestProcessed; _server.RequestReceived += ServerRequestStarted; _server.StartListening(); } }