Exemple #1
0
        public void DeserializeObjectParamsStrings()
        {
            string xml =
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Bar</methodName>
  <params>
    <param>
      <value>
        <string>one</string>
      </value>
    </param>
    <param>
      <value>
        <string>two</string>
      </value>
    </param>
  </params>
</methodCall>";
            StringReader     sr         = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest    request    = serializer.DeserializeRequest(sr, this.GetType());

            Assert.AreEqual(request.method, "Bar", "method is Foo");
            Assert.AreEqual(request.args[0].GetType(), typeof(string[]),
                            "argument is string[]");
            Assert.AreEqual((string[])request.args[0], new string[] { "one", "two" },
                            "argument is params array \"one\", \"two\"");
        }
        public void NullRequestStream()
        {
            var    serializer = new XmlRpcSerializer();
            Stream stm        = null;

            Assert.Throws <ArgumentNullException>(() => serializer.DeserializeRequest(stm, null));
        }
Exemple #3
0
        public void DeserializeObjectParams1()
        {
            string xml =
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Foo1</methodName>
  <params>
    <param>
      <value>
        <i4>5678</i4>
      </value>
    </param>
    <param>
      <value>
        <i4>1</i4>
      </value>
    </param>
    <param>
      <value>
        <string>one</string>
      </value>
    </param>
  </params>
</methodCall>";
            StringReader     sr         = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest    request    = serializer.DeserializeRequest(sr, this.GetType());

            Assert.AreEqual(request.method, "Foo1", "method is Foo");
            Assert.AreEqual((int)request.args[0], 5678, "first argument is int");
            Assert.AreEqual(request.args[1].GetType(), typeof(object[]),
                            "argument is object[]");
            Assert.AreEqual((object[])request.args[1], new object[] { 1, "one" },
                            "second argument is params array 1, \"one\"");
        }
Exemple #4
0
        public void DeserializeObjectInvalidParams()
        {
            string xml =
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Bar</methodName>
  <params>
    <param>
      <value>
        <string>string one</string>
      </value>
    </param>
    <param>
      <value>
        <i4>2</i4>
      </value>
    </param>
  </params>
</methodCall>";
            StringReader     sr         = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();

            try
            {
                XmlRpcRequest request = serializer.DeserializeRequest(sr,
                                                                      this.GetType());
                Assert.Fail("Should detect invalid type of parameter #2");
            }
            catch (XmlRpcTypeMismatchException)
            {
            }
        }
        public void Base64MultiLine()
        {
            string xml = @"<?xml version=""1.0""?>
<methodCall>
  <methodName>TestHex</methodName>
  <params>
    <param>
      <value>
        <base64>AQIDBAUGBwgJ
AQIDBAUGBwg=</base64>
      </value>
    </param>
  </params>
</methodCall>";
            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest request = serializer.DeserializeRequest(sr, null);

            Assert.AreEqual(request.args[0].GetType(), typeof(byte[]),
              "argument is byte[]");
            byte[] ret = (byte[])request.args[0];
            Assert.AreEqual(17, ret.Length, "argument is byte[17]");
            for (int i = 0; i < 9; i++)
                Assert.AreEqual(i + 1, ret[i], "first 9 members are 1 to 9");
            for (int i = 0; i < 8; i++)
                Assert.AreEqual(i + 1, ret[i + 9], "last 8 members are 1 to 9");
        }
 public void MissingMethodCall()
 {
     string           xml        = @"<?xml version=""1.0"" ?> <elem/>";
     StringReader     sr         = new StringReader(xml);
     XmlRpcSerializer serializer = new XmlRpcSerializer();
     XmlRpcRequest    request    = serializer.DeserializeRequest(sr, null);
 }
        public void TooManyParameters()
        {
            string xml = @"<?xml version=""1.0""?>
<methodCall>
<methodName>blogger.getUsersBlogs</methodName>
<params>
<param>
<value>
<string>ffffffabffffffce6dffffff93ffffffac29ffffffc9fffffff826ffffffdefffff
fc9ff\
ffffe43c0b763036ffffffa0fffffff3ffffffa963377716</string>
</value>
</param>
<param>
<value>
<string>myusername</string>
</value>
</param>
<param>
<value>
<string>mypassword</string>
</value>
</param>
</params>
</methodCall>";

            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            Assert.That(() => serializer.DeserializeRequest(sr, GetType()), Throws.TypeOf<XmlRpcInvalidParametersException>());
        }
 public void MissingMethodCall()
 {
     string xml = @"<?xml version=""1.0"" ?> <elem/>";
     StringReader sr = new StringReader(xml);
     XmlRpcSerializer serializer = new XmlRpcSerializer();
     Assert.That(() => serializer.DeserializeRequest(sr, null), Throws.TypeOf<XmlRpcInvalidXmlRpcException>());
 }
Exemple #9
0
        public void DeserializeObjectParams()
        {
            var xml =
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Foo</methodName>
  <params>
    <param>
      <value>
        <i4>1</i4>
      </value>
    </param>
    <param>
      <value>
        <string>one</string>
      </value>
    </param>
  </params>
</methodCall>";
            var sr         = new StringReader(xml);
            var serializer = new XmlRpcSerializer();
            var request    = serializer.DeserializeRequest(sr, GetType());

            Assert.AreEqual(request.method, "Foo", "method is Foo");
            Assert.AreEqual(request.args[0].GetType(), typeof(object[]),
                            "argument is object[]");
            Assert.AreEqual((object[])request.args[0], new object[] { 1, "one" },
                            "argument is params array 1, \"one\"");
        }
        public void Base64()
        {
            string        xml        = @"<?xml version=""1.0""?>
<methodCall>
  <methodName>TestHex</methodName>
  <params>
    <param>
      <value>
        <base64>AQIDBAUGBwg=</base64>
      </value>
    </param>
  </params>
</methodCall>";
            var           sr         = new StringReader(xml);
            var           serializer = new XmlRpcSerializer();
            XmlRpcRequest request    = serializer.DeserializeRequest(sr, null);

            Assert.AreEqual(request.args[0].GetType(), typeof(byte[]),
                            "argument is byte[]");
            var ret = (byte[])request.args[0];

            Assert.AreEqual(8, ret.Length, "argument is byte[8]");
            for (int i = 0; i < ret.Length; i++)
            {
                Assert.AreEqual(i + 1, ret[i], "members are 1 to 8");
            }
        }
        public void Blakemore()
        {
            string xml = @"<?xml version=""1.0""?>
<methodCall><methodName>rtx.useArrayOfStruct</methodName>
<params>
<param><value><array>
<data><value>
<struct><member><name>detail</name><value><string>elephant</string></value></member><member><name>number</name><value><int>76</int></value></member></struct>
</value></data>
<data><value>
<struct><member><name>detail</name><value><string>rhino</string></value></member><member><name>number</name><value><int>33</int></value></member></struct>
</value></data>
<data><value>
<struct><member><name>detail</name><value><string>porcupine</string></value></member><member><name>number</name><value><int>106</int></value></member></struct>
</value></data>
</array></value></param>
</params></methodCall>";

            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest request = serializer.DeserializeRequest(sr, GetType());

            Assert.AreEqual(request.args[0].GetType(), typeof(simple[]),
              "argument is simple[]");
            Assert.IsTrue((request.args[0] as simple[]).Length == 1,
              "argument is simple[] of length 1");

        }
        public void EmptyRequestStream()
        {
            var sr         = new StringReader("");
            var serializer = new XmlRpcSerializer();

            Assert.Throws <XmlRpcIllFormedXmlException>(() => serializer.DeserializeRequest(sr, null));
        }
        public void StructProperties()
        {
            string xml = @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Foo</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>member1</name>
            <value>
              <i4>1</i4>
            </value>
          </member>
          <member>
            <name>member2</name>
            <value>
              <i4>2</i4>
            </value>
          </member>
          <member>
            <name>member-3</name>
            <value>
              <i4>3</i4>
            </value>
          </member>
          <member>
            <name>member-4</name>
            <value>
              <i4>4</i4>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>";

            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest request = serializer.DeserializeRequest(sr, null);

            Assert.AreEqual(request.args[0].GetType(), typeof(XmlRpcStruct),
              "argument is XmlRpcStruct");
            XmlRpcStruct xrs = (XmlRpcStruct)request.args[0];
            Assert.IsTrue(xrs.Count == 4, "XmlRpcStruct has 4 members");
            Assert.IsTrue(xrs.ContainsKey("member1") && (int)xrs["member1"] == 1,
              "member1");
            Assert.IsTrue(xrs.ContainsKey("member2") && (int)xrs["member2"] == 2,
              "member2");
            Assert.IsTrue(xrs.ContainsKey("member-3") && (int)xrs["member-3"] == 3,
              "member-3");
            Assert.IsTrue(xrs.ContainsKey("member-4") && (int)xrs["member-4"] == 4,
              "member-4");



        }
        public void InvalidXml()
        {
            string           xml        = @"<?xml version=""1.0"" ?> 
<methodCall> </duffMmethodCall>";
            StringReader     sr         = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest    request    = serializer.DeserializeRequest(sr, null);
        }
        public void InvalidXml()
        {
            string xml = @"<?xml version=""1.0"" ?> 
<methodCall> </duffMmethodCall>";
            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            Assert.That(() => serializer.DeserializeRequest(sr, null), Throws.TypeOf<XmlRpcIllFormedXmlException>());
        }
 private static XmlRpcRequest DeserializeRequest(XmlRpcSerializer xmlRpcSerializer,
                                                 string serializedRequest, params Type[] parameterTypes)
 {
     using (MemoryStream memoryStream =
                new MemoryStream(xmlRpcSerializer.Encoding.GetBytes(serializedRequest)))
     {
         return(xmlRpcSerializer.DeserializeRequest(memoryStream, parameterTypes));
     } // using
 }
        public void MissingParams()
        {
            string xml = @"<?xml version=""1.0"" ?> 
<methodCall>
<methodName>TestString</methodName> 
</methodCall>";
            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest request = serializer.DeserializeRequest(sr, null);
        }
        public void NoParam1()
        {
            string xml = @"<?xml version=""1.0"" ?> 
<methodCall>
<methodName>MethodNoArgs</methodName> 
<params/>
</methodCall>";
            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest request = serializer.DeserializeRequest(sr, this.GetType());
        }
Exemple #19
0
        public void DeserializeMassimo()
        {
            StringReader     sr         = new StringReader(massimoRequest);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest    request    = serializer.DeserializeRequest(sr, this.GetType());

            Assert.AreEqual(request.method, "Send_Param", "method is Send_Param");
            Assert.AreEqual(typeof(string), request.args[0].GetType(),
                            "argument is string");
            Assert.AreEqual(typeof(object[]), request.args[1].GetType(),
                            "argument is object[]");
        }
 public void ISO_8859_1()
 {
     using (Stream stm = new FileStream("iso-8859-1_request.xml",
                                        FileMode.Open, FileAccess.Read)) {
         var           serializer = new XmlRpcSerializer();
         XmlRpcRequest request    = serializer.DeserializeRequest(stm, null);
         Assert.AreEqual(request.args[0].GetType(), typeof(string),
                         "argument is string");
         Assert.AreEqual(request.args[0], "hæ hvað segirðu þá",
                         "argument is 'hæ hvað segirðu þá'");
     }
 }
        public void DateTimeLocales()
        {
            CultureInfo oldci = Thread.CurrentThread.CurrentCulture;

            try
            {
                foreach (string locale in Utils.GetLocales())
                {
                    try
                    {
                        CultureInfo ci = new CultureInfo(locale);
                        Thread.CurrentThread.CurrentCulture = ci;
                        if (ci.LCID == 0x401 || // ar-SA  (Arabic - Saudi Arabia)
                            ci.LCID == 0x465 || // div-MV (Dhivehi - Maldives)
                            ci.LCID == 0x41e)   // th-TH  (Thai - Thailand)
                        {
                            break;
                        }

                        DateTime dt = new DateTime(1900, 01, 02, 03, 04, 05);
                        while (dt < DateTime.Now)
                        {
                            Stream        stm = new MemoryStream();
                            XmlRpcRequest req = new XmlRpcRequest();
                            req.args   = new Object[] { dt };
                            req.method = "Foo";
                            XmlRpcSerializer ser = new XmlRpcSerializer();
                            ser.SerializeRequest(stm, req);
                            stm.Position = 0;

                            XmlRpcSerializer serializer = new XmlRpcSerializer();
                            XmlRpcRequest    request    = serializer.DeserializeRequest(stm, null);

                            Assert.IsTrue(request.args[0] is DateTime,
                                          "argument is DateTime");
                            DateTime dt0 = (DateTime)request.args[0];
                            Assert.AreEqual(dt0, dt, "DateTime argument 0");
                            dt += new TimeSpan(100, 1, 1, 1);
                        }
                    }
                    catch (Exception ex)
                    {
                        Assert.Fail(String.Format("unexpected exception {0}: {1}",
                                                  locale, ex.Message));
                    }
                }
            }
            finally
            {
                Thread.CurrentThread.CurrentCulture = oldci;
            }
        }
Exemple #22
0
        public void DeserializeObjectParamsInsufficientParams()
        {
            string xml =
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Foo1</methodName>
  <params>
  </params>
</methodCall>";
            StringReader     sr         = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest    request    = serializer.DeserializeRequest(sr, this.GetType());
        }
        public void FlatXml()
        {
            string xml = @"<?xml version=""1.0"" ?><methodCall><methodName>TestString</methodName><params><param><value>test string</value></param></params></methodCall>";
            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest request = serializer.DeserializeRequest(sr, null);

            Assert.AreEqual(request.method, "TestString", "method is TestString");
            Assert.AreEqual(request.args[0].GetType(), typeof(string),
              "argument is string");
            Assert.AreEqual((string)request.args[0], "test string",
              "argument is 'test string'");
        }
 public void EmptyRequestStream()
 {
     try
     {
         StringReader     sr         = new StringReader("");
         XmlRpcSerializer serializer = new XmlRpcSerializer();
         XmlRpcRequest    request    = serializer.DeserializeRequest(sr, null);
         Assert.Fail("Should throw XmlRpcIllFormedXmlException");
     }
     catch (XmlRpcIllFormedXmlException)
     {
     }
 }
        public void EmptyParam1()
        {
            string xml = @"<?xml version=""1.0"" ?> 
<methodCall>
<methodName>TestString</methodName> 
<params>
  <param/>
</params>
</methodCall>";
            StringReader sr = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            Assert.That(() => serializer.DeserializeRequest(sr, null), Throws.TypeOf<XmlRpcInvalidXmlRpcException>());
        }
 public void ISO_8859_1()
 {
     var xmlPath = Path.Combine(Utils.AssemblyDirectory, "iso-8859-1_request.xml");
     using (Stream stm = new FileStream(xmlPath, FileMode.Open, FileAccess.Read))
     {
         XmlRpcSerializer serializer = new XmlRpcSerializer();
         XmlRpcRequest request = serializer.DeserializeRequest(stm, null);
         Assert.AreEqual(request.args[0].GetType(), typeof(string),
           "argument is string");
         Assert.AreEqual((string)request.args[0], "hæ hvað segirðu þá",
           "argument is 'hæ hvað segirðu þá'");
     }
 }
        public void NoParam2()
        {
            string        xml        = @"<?xml version=""1.0"" ?> 
<methodCall>
  <methodName>MethodNoArgs</methodName> 
  <params>
  </params>
</methodCall>";
            var           sr         = new StringReader(xml);
            var           serializer = new XmlRpcSerializer();
            XmlRpcRequest request    = serializer.DeserializeRequest(sr, GetType());
            //Console.WriteLine("");
        }
 public void NullRequestStream()
 {
     try
     {
         XmlRpcSerializer serializer = new XmlRpcSerializer();
         Stream           stm        = null;
         XmlRpcRequest    request    = serializer.DeserializeRequest(stm, null);
         Assert.Fail("Should throw ArgumentNullException");
     }
     catch (ArgumentNullException)
     {
     }
 }
 public Stream Invoke(Stream requestStream)
 {
     try
     {
         XmlRpcSerializer       serializer  = new XmlRpcSerializer();
         Type                   type        = this.GetType();
         XmlRpcServiceAttribute serviceAttr = (XmlRpcServiceAttribute)
                                              Attribute.GetCustomAttribute(this.GetType(),
                                                                           typeof(XmlRpcServiceAttribute));
         if (serviceAttr != null)
         {
             if (serviceAttr.XmlEncoding != null)
             {
                 serializer.XmlEncoding = Encoding.GetEncoding(serviceAttr.XmlEncoding);
             }
             serializer.UseIntTag      = serviceAttr.UseIntTag;
             serializer.UseStringTag   = serviceAttr.UseStringTag;
             serializer.UseIndentation = serviceAttr.UseIndentation;
             serializer.Indentation    = serviceAttr.Indentation;
         }
         XmlRpcRequest xmlRpcReq
             = serializer.DeserializeRequest(requestStream, this.GetType());
         XmlRpcResponse xmlRpcResp     = Invoke(xmlRpcReq);
         Stream         responseStream = new MemoryStream();
         serializer.SerializeResponse(responseStream, xmlRpcResp);
         responseStream.Seek(0, SeekOrigin.Begin);
         return(responseStream);
     }
     catch (Exception ex)
     {
         XmlRpcFaultException fex;
         if (ex is XmlRpcException)
         {
             fex = new XmlRpcFaultException(0, ((XmlRpcException)ex).Message);
         }
         else if (ex is XmlRpcFaultException)
         {
             fex = (XmlRpcFaultException)ex;
         }
         else
         {
             fex = new XmlRpcFaultException(0, ex.Message);
         }
         XmlRpcSerializer serializer     = new XmlRpcSerializer();
         Stream           responseStream = new MemoryStream();
         serializer.SerializeFaultResponse(responseStream, fex);
         responseStream.Seek(0, SeekOrigin.Begin);
         return(responseStream);
     }
 }
Exemple #30
0
        public void DeserializeLinisgreEmptyParam()
        {
            string xml =
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Linisgre</methodName>
  <params>
    <param/>
  </params>
</methodCall>";
            StringReader     sr         = new StringReader(xml);
            XmlRpcSerializer serializer = new XmlRpcSerializer();
            XmlRpcRequest    request    = serializer.DeserializeRequest(sr, this.GetType());
        }