Exemple #1
0
        /// <summary>
        /// Maps a method response to XML.
        /// </summary>
        /// <param name="rpcMethodResponse">The method response to be mapped.</param>
        /// <returns>The XML element.</returns>
        public XElement MapMethodResponse(XRpcMethodResponse rpcMethodResponse)
        {
            if (rpcMethodResponse == null)
            {
                throw new ArgumentNullException(nameof(rpcMethodResponse));
            }

            // return a valid fault as per http://xmlrpc.scripting.com/spec.html
            if (rpcMethodResponse.Fault != null)
            {
                var members = new XRpcStruct();
                members.Set("faultCode", rpcMethodResponse.Fault.Code);
                members.Set("faultString", rpcMethodResponse.Fault.Message);

                return(new XElement("methodResponse",
                                    new XElement("fault",
                                                 new XElement("value", MapStruct(members))
                                                 )
                                    ));
            }

            return(new XElement("methodResponse",
                                new XElement("params",
                                             rpcMethodResponse.Params.Select(
                                                 p => new XElement("param", MapValue(p))))));
        }
Exemple #2
0
        public void MethodResponseWriterShouldSendParametersWithValues() {
            var mapper = new XmlRpcWriter();

            var response = new XRpcMethodResponse();
            response.Params.Add(new XRpcData<int> { Value = 42 });
            var element = mapper.MapMethodResponse(response);

            Assert.That(NoSpace(element.ToString()), Is.EqualTo("<methodResponse><params><param><value><int>42</int></value></param></params></methodResponse>"));
        }
        public void MethodResponseWriterShouldSendParametersWithValues()
        {
            var mapper = new XmlRpcWriter();

            var response = new XRpcMethodResponse();

            response.Params.Add(new XRpcData <int> {
                Value = 42
            });
            var element = mapper.MapMethodResponse(response);

            Assert.That(NoSpace(element.ToString()), Is.EqualTo("<methodResponse><params><param><value><int>42</int></value></param></params></methodResponse>"));
        }
Exemple #4
0
        public void FaultShouldBeCorrectlyFormatted() {
            var mapper = new XmlRpcWriter();
            var response = new XRpcMethodResponse {
                Fault = new XRpcFault(10, "foo")
            };

            var element = mapper.MapMethodResponse(response);

            Assert.That(NoSpace(element.ToString()), Is.EqualTo(NoSpace(@"
<methodResponse><fault>
<value><struct>
<member><name>faultCode</name><value><int>10</int></value></member>
<member><name>faultString</name><value><string>foo</string></value></member>
</struct></value>
</fault></methodResponse>
")));
        }
        public void FaultShouldBeCorrectlyFormatted()
        {
            var mapper   = new XmlRpcWriter();
            var response = new XRpcMethodResponse {
                Fault = new XRpcFault(10, "foo")
            };

            var element = mapper.MapMethodResponse(response);

            Assert.That(NoSpace(element.ToString()), Is.EqualTo(NoSpace(@"
<methodResponse><fault>
<value><struct>
<member><name>faultCode</name><value><int>10</int></value></member>
<member><name>faultString</name><value><string>foo</string></value></member>
</struct></value>
</fault></methodResponse>
")));
        }
Exemple #6
0
        /// <summary>
        /// Maps a method response to XML.
        /// </summary>
        /// <param name="rpcMethodResponse">The method response to be mapped.</param>
        /// <returns>The XML element.</returns>
        public XElement MapMethodResponse(XRpcMethodResponse rpcMethodResponse) {
            Argument.ThrowIfNull(rpcMethodResponse, "rpcMethodResponse");

            // return a valid fault as per http://xmlrpc.scripting.com/spec.html
            if(rpcMethodResponse.Fault != null) {
                var members = new XRpcStruct();
                members.Set("faultCode", rpcMethodResponse.Fault.Code);
                members.Set("faultString", rpcMethodResponse.Fault.Message);

                return new XElement("methodResponse",
                    new XElement("fault",
                        new XElement("value", MapStruct(members))
                    )
                );
                            
            }

            return new XElement("methodResponse",
                new XElement("params",
                    rpcMethodResponse.Params.Select(
                        p => new XElement("param", MapValue(p)))));
        }
 private static int GetId(XRpcMethodResponse response)
 {
     return(response != null && response.Params.Count == 1 && response.Params[0].Value is int
            ?Convert.ToInt32(response.Params[0].Value)
                : 0);
 }
 private static XRpcStruct GetPost(XRpcMethodResponse response)
 {
     return(response != null && response.Params.Count == 1 && response.Params[0].Value is XRpcStruct
                ? response.Params[0].Value as XRpcStruct
                : null);
 }
 private static int GetId(XRpcMethodResponse response)
 {
     return response != null && response.Params.Count == 1 && response.Params[0].Value is int
                ? Convert.ToInt32(response.Params[0].Value)
                : 0;
 }
 private static XRpcStruct GetPost(XRpcMethodResponse response)
 {
     return response != null && response.Params.Count == 1 && response.Params[0].Value is XRpcStruct
                ? response.Params[0].Value as XRpcStruct
                : null;
 }