public void DeserializeRequest_Null_Message_Throws()
        {
            object[] parameters = new object[] { "hello", 5.0 };
            IDispatchMessageFormatter formatter = new SHttpMessageFormatter();

            ExceptionAssert.ThrowsArgumentNull("message", () => formatter.DeserializeRequest(/*message*/ null, parameters));
        }
        public void DeserializeRequest_Null_Parameters_Throws()
        {
            Message wcfMessage = new HttpRequestMessage().ToMessage();
            IDispatchMessageFormatter formatter = new SHttpMessageFormatter();

            ExceptionAssert.ThrowsArgumentNull("parameters", () => formatter.DeserializeRequest(wcfMessage, parameters: null));
        }
        public void SerializeReply_MessageVersion_Not_None_Throws()
        {
            IDispatchMessageFormatter formatter = new SHttpMessageFormatter();

            ExceptionAssert.Throws <NotSupportedException>(
                SR.HttpMessageFormatterMessageVersion(typeof(SHttpMessageFormatter), typeof(MessageVersion), "None"),
                () => formatter.SerializeReply(MessageVersion.Soap11, parameters: new object[0], result: "result"));
        }
        public void DeserializeRequest_Null_HttpRequestMessage_Throws()
        {
            Message wcfMessage = Message.CreateMessage(MessageVersion.None, "unused");

            object[] parameters = new object[] { "hello", 5.0 };
            IDispatchMessageFormatter formatter = new SHttpMessageFormatter();

            ExceptionAssert.Throws <InvalidOperationException>(
                SR.HttpMessageFormatterNullMessage(typeof(SHttpMessageFormatter).Name, typeof(HttpRequestMessage).Name, "DeserializeRequest"),
                () => formatter.DeserializeRequest(wcfMessage, parameters));
        }
        public void SerializeReply_Null_HttpResponseMessage_Throws()
        {
            HttpRequestMessage    httpRequestMessage = new HttpRequestMessage();
            SHttpMessageFormatter formatter          = new SHttpMessageFormatter();

            formatter.OnSerializeReplyObjectArrayObject = (parameters, result) => null;

            ExceptionAssert.Throws <InvalidOperationException>(
                SR.HttpMessageFormatterNullMessage(typeof(SHttpMessageFormatter), typeof(HttpResponseMessage).Name, "SerializeReply"),
                () => ((IDispatchMessageFormatter)formatter).SerializeReply(MessageVersion.None, parameters: new object[0], result: "result"));
        }
        public void SerializeReply_Returns_HttpResponseMessage()
        {
            HttpResponseMessage   httpResponseMessage = new HttpResponseMessage();
            SHttpMessageFormatter formatter           = new SHttpMessageFormatter();

            formatter.OnSerializeReplyObjectArrayObject = (parameters, result) => httpResponseMessage;

            Message wcfMessage = ((IDispatchMessageFormatter)formatter).SerializeReply(MessageVersion.None, parameters: new object[0], result: "result");

            Assert.IsNotNull(wcfMessage, "Returned WCF message cannot be null");
            HttpResponseMessage returnedHttpResponseMessage = wcfMessage.ToHttpResponseMessage();

            Assert.AreSame(httpResponseMessage, returnedHttpResponseMessage, "SerializeReply() response message was not the one we returned.");
        }
        public void SerializeReply_Null_Result_Allowed()
        {
            bool receivedNullResult         = false;
            SHttpMessageFormatter formatter = new SHttpMessageFormatter();

            formatter.OnSerializeReplyObjectArrayObject =
                (parameters, result) =>
            {
                receivedNullResult = (result == null);
                return(new HttpResponseMessage());
            };

            ((IDispatchMessageFormatter)formatter).SerializeReply(MessageVersion.None, parameters: new object[0], result: null);
            Assert.IsTrue(receivedNullResult, "Null result did not make it through SerializeReply");
        }
        public void SerializeReply_Receives_Parameters_And_Result()
        {
            object[] messageParameters      = new object[] { "hello", 5.0 };
            string   messageResult          = "hello";
            SHttpMessageFormatter formatter = new SHttpMessageFormatter();

            formatter.OnSerializeReplyObjectArrayObject =
                (parameters, result) =>
            {
                Assert.AreSame(messageParameters, parameters, "SerializeReply() did not receive the input parameters");
                Assert.AreSame(messageResult, result, "SerializeReply() did not receive the input result");
                return(new HttpResponseMessage());
            };

            Message responseMessage = ((IDispatchMessageFormatter)formatter).SerializeReply(MessageVersion.None, messageParameters, messageResult);
        }
        public void DeserializeRequest_Receives_Message_And_Parameters()
        {
            HttpRequestMessage httpRequestMessage = new HttpRequestMessage();
            Message            wcfMessage         = httpRequestMessage.ToMessage();

            object[] messageParameters = new object[] { "hello", 5.0 };

            SHttpMessageFormatter formatter = new SHttpMessageFormatter();

            formatter.OnDeserializeRequestHttpRequestMessageObjectArray =
                (msg, parameters) =>
            {
                Assert.AreSame(httpRequestMessage, msg, "DeserializeRequest() did not receive the HttpRequestMessage we specified");
                Assert.AreSame(messageParameters, parameters, "DeserializeRequest() did not receive the parameters we specified");
            };

            ((IDispatchMessageFormatter)formatter).DeserializeRequest(wcfMessage, messageParameters);
        }
示例#10
0
        public void SerializeReply_HttpMessageFormatter_Null_Parameters_Throws()
        {
            HttpMessageFormatter formatter = new SHttpMessageFormatter();

            ExceptionAssert.ThrowsArgumentNull("parameters", () => formatter.SerializeReply(/*parameters*/ null, /*result*/ "hello"));
        }