public void OnDeserializeRequestExecutesRequestPipeline() { SHttpOperationDescription operation = new SHttpOperationDescription() { CallBase = true, ReturnValue = HttpParameter.ResponseMessage }; IEnumerable <HttpOperationHandler> emptyHandlers = Enumerable.Empty <HttpOperationHandler>(); OperationHandlerPipeline pipeline = new OperationHandlerPipeline(emptyHandlers, emptyHandlers, operation); MOperationHandlerPipeline molePipeline = new MOperationHandlerPipeline(pipeline); molePipeline.BehaveAsDefaultValue(); MOperationHandlerPipelineContext moleContext = new MOperationHandlerPipelineContext(); HttpRequestMessage setRequest = null; object[] setValues = null; OperationHandlerPipelineContext setContext = null; molePipeline.ExecuteRequestPipelineHttpRequestMessageObjectArray = (request, values) => { setRequest = request; setValues = values; return(setContext = moleContext); }; OperationHandlerFormatter formatter = new OperationHandlerFormatter(molePipeline); IDispatchMessageFormatter dispatchMessageFormatter = (IDispatchMessageFormatter)formatter; Uri uri = new Uri("http://somehost/Fred"); HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Get, uri); httpRequest.Content = new StringContent(""); Message message = httpRequest.ToMessage(); object[] parameters = new object[0]; dispatchMessageFormatter.DeserializeRequest(message, parameters); HttpAssert.AreEqual(httpRequest, setRequest); Assert.IsNotNull(setValues, "Input values were not passed to the pipeline."); Assert.AreEqual(0, ((object[])setValues).Length, "Incorrect number of values."); Assert.IsNotNull(setContext, "Context was not set."); }
public void OnSerializeReplyExecutesResponsePipeline() { SHttpOperationDescription operation = new SHttpOperationDescription() { CallBase = true, ReturnValue = HttpParameter.ResponseMessage }; IEnumerable <HttpOperationHandler> emptyHandlers = Enumerable.Empty <HttpOperationHandler>(); OperationHandlerPipeline pipeline = new OperationHandlerPipeline(emptyHandlers, emptyHandlers, operation); MOperationHandlerPipeline molePipeline = new MOperationHandlerPipeline(pipeline); molePipeline.BehaveAsDefaultValue(); MOperationHandlerPipelineContext moleContext = new MOperationHandlerPipelineContext(); HttpResponseMessage response = new HttpResponseMessage(); OperationHandlerPipelineContext setContext = null; object[] setValues = null; object setResult = null; molePipeline.ExecuteResponsePipelineOperationHandlerPipelineContextObjectArrayObject = (context, values, result) => { setContext = context; setValues = values; setResult = result; return(response); }; OperationHandlerFormatter formatter = new OperationHandlerFormatter(molePipeline); IDispatchMessageFormatter dispatchMessageFormatter = (IDispatchMessageFormatter)formatter; object[] parameters = new object[] { 1, "text" }; Message message = dispatchMessageFormatter.SerializeReply(MessageVersion.None, parameters, "theResult"); Assert.IsNotNull(setValues, "Input values were not passed to the pipeline."); CollectionAssert.AreEqual(new List <object>(parameters), new List <object>(setValues), "Parameters were not passed correctly."); Assert.AreEqual("theResult", setResult, "Result was not passed correctly."); Assert.IsNotNull(setContext, "Context was not set."); }
public void OnDeserializeRequestExecutesRequestPipeline() { SHttpOperationDescription operation = new SHttpOperationDescription() { CallBase = true, ReturnValue = HttpParameter.ResponseMessage }; IEnumerable<HttpOperationHandler> emptyHandlers = Enumerable.Empty<HttpOperationHandler>(); OperationHandlerPipeline pipeline = new OperationHandlerPipeline(emptyHandlers, emptyHandlers, operation); MOperationHandlerPipeline molePipeline = new MOperationHandlerPipeline(pipeline); molePipeline.BehaveAsDefaultValue(); MOperationHandlerPipelineContext moleContext = new MOperationHandlerPipelineContext(); HttpRequestMessage setRequest = null; object[] setValues = null; OperationHandlerPipelineContext setContext = null; molePipeline.ExecuteRequestPipelineHttpRequestMessageObjectArray = (request, values) => { setRequest = request; setValues = values; return setContext = moleContext; }; OperationHandlerFormatter formatter = new OperationHandlerFormatter(molePipeline); IDispatchMessageFormatter dispatchMessageFormatter = (IDispatchMessageFormatter)formatter; Uri uri = new Uri("http://somehost/Fred"); HttpRequestMessage httpRequest = new HttpRequestMessage(HttpMethod.Get, uri); httpRequest.Content = new StringContent(""); Message message = httpRequest.ToMessage(); object[] parameters = new object[0]; dispatchMessageFormatter.DeserializeRequest(message, parameters); HttpAssert.AreEqual(httpRequest, setRequest); Assert.IsNotNull(setValues, "Input values were not passed to the pipeline."); Assert.AreEqual(0, ((object[])setValues).Length, "Incorrect number of values."); Assert.IsNotNull(setContext, "Context was not set."); }
public void OnSerializeReplyExecutesResponsePipeline() { SHttpOperationDescription operation = new SHttpOperationDescription() { CallBase = true, ReturnValue = HttpParameter.ResponseMessage }; IEnumerable<HttpOperationHandler> emptyHandlers = Enumerable.Empty<HttpOperationHandler>(); OperationHandlerPipeline pipeline = new OperationHandlerPipeline(emptyHandlers, emptyHandlers, operation); MOperationHandlerPipeline molePipeline = new MOperationHandlerPipeline(pipeline); molePipeline.BehaveAsDefaultValue(); MOperationHandlerPipelineContext moleContext = new MOperationHandlerPipelineContext(); HttpResponseMessage response = new HttpResponseMessage(); OperationHandlerPipelineContext setContext = null; object[] setValues = null; object setResult = null; molePipeline.ExecuteResponsePipelineOperationHandlerPipelineContextObjectArrayObject = (context, values, result) => { setContext = context; setValues = values; setResult = result; return response; }; OperationHandlerFormatter formatter = new OperationHandlerFormatter(molePipeline); IDispatchMessageFormatter dispatchMessageFormatter = (IDispatchMessageFormatter)formatter; object[] parameters = new object[] { 1, "text" }; Message message = dispatchMessageFormatter.SerializeReply(MessageVersion.None, parameters, "theResult"); Assert.IsNotNull(setValues, "Input values were not passed to the pipeline."); CollectionAssert.AreEqual(new List<object>(parameters), new List<object>(setValues), "Parameters were not passed correctly."); Assert.AreEqual("theResult", setResult, "Result was not passed correctly."); Assert.IsNotNull(setContext, "Context was not set."); }