public void HttpServer_CallsCustomMessageHandlers_InTheCorrectOrder() { // Arrange List <int> order = new List <int>(); order.Add(1); order.Add(2); order.Add(3); order.Add(4); List <int> .Enumerator e = order.GetEnumerator(); OrderAwareMessageHandler messageHandler1 = new OrderAwareMessageHandler(e, 1); OrderAwareMessageHandler messageHandler2 = new OrderAwareMessageHandler(e, 2); OrderAwareMessageHandler messageHandler3 = new OrderAwareMessageHandler(e, 3); OrderAwareMessageHandler messageHandler4 = new OrderAwareMessageHandler(e, 4); HttpRequestMessage request = new HttpRequestMessage(); TraceManager traceManager = new TraceManager(); HttpConfiguration config = new HttpConfiguration(); config.Services.Replace(typeof(ITraceWriter), new TestTraceWriter()); config.MessageHandlers.Add(messageHandler1); config.MessageHandlers.Add(messageHandler2); config.MessageHandlers.Add(messageHandler3); config.MessageHandlers.Add(messageHandler4); Mock <HttpControllerDispatcher> dispatcherMock = new Mock <HttpControllerDispatcher>( config ); dispatcherMock .Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", request, CancellationToken.None) .Returns(Task.FromResult <HttpResponseMessage>(request.CreateResponse())); HttpServer server = new HttpServer(config, dispatcherMock.Object); HttpMessageInvoker invoker = new HttpMessageInvoker(server); // Act Task <HttpResponseMessage> response = invoker.SendAsync(request, CancellationToken.None); // Assert Assert.True(IsMessageHandlerCollectionValid(config.MessageHandlers)); }
public void HttpServer_CallsCustomMessageHandlers_InTheCorrectOrder() { // Arrange List<int> order = new List<int>(); order.Add(1); order.Add(2); order.Add(3); order.Add(4); List<int>.Enumerator e = order.GetEnumerator(); OrderAwareMessageHandler messageHandler1 = new OrderAwareMessageHandler(e, 1); OrderAwareMessageHandler messageHandler2 = new OrderAwareMessageHandler(e, 2); OrderAwareMessageHandler messageHandler3 = new OrderAwareMessageHandler(e, 3); OrderAwareMessageHandler messageHandler4 = new OrderAwareMessageHandler(e, 4); HttpRequestMessage request = new HttpRequestMessage(); TraceManager traceManager = new TraceManager(); HttpConfiguration config = new HttpConfiguration(); config.Services.Replace(typeof(ITraceWriter), new TestTraceWriter()); config.MessageHandlers.Add(messageHandler1); config.MessageHandlers.Add(messageHandler2); config.MessageHandlers.Add(messageHandler3); config.MessageHandlers.Add(messageHandler4); Mock<HttpControllerDispatcher> dispatcherMock = new Mock<HttpControllerDispatcher>(config); dispatcherMock.Protected().Setup<Task<HttpResponseMessage>>("SendAsync", request, CancellationToken.None) .Returns(TaskHelpers.FromResult<HttpResponseMessage>(request.CreateResponse())); HttpServer server = new HttpServer(config, dispatcherMock.Object); HttpMessageInvoker invoker = new HttpMessageInvoker(server); // Act Task<HttpResponseMessage> response = invoker.SendAsync(request, CancellationToken.None); // Assert Assert.True(IsMessageHandlerCollectionValid(config.MessageHandlers)); }