Esempio n. 1
0
            public void SerializeOneStringList()
            {
                var data = new System.Collections.Generic.List <string> {
                    "one", "two", "three"
                };

                var request = new XmlRpcRestRequest("some.method");

                request.AddXmlRpcBody(
                    data);

                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/array/data/value").Count,
                        Is.EqualTo(3),
                        "There should be 3 parameters in the array");
                }
            }
Esempio n. 2
0
        public DeletePostResponse SendDeletePostRequest(DeletePostRequest request)
        {
            DeletePostResponse response = new DeletePostResponse();

            var rpcClient  = new XmlRpcRestClient(config.RequestUrl);
            var rpcRequest = new XmlRpcRestRequest(request.RequestUrl)
            {
                Method = Method.POST
            };

            // Add request parameters
            rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password, request.PostId);

            try
            {
                // Get response
                var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest);

                // Find and fill members in
                response.Success = rpcResponse.Data.Value != "false";
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }

            return(response);
        }
Esempio n. 3
0
        public UploadFileResponse SendUploadFileRequest(UploadFileRequest request)
        {
            UploadFileResponse response = new UploadFileResponse();

            var rpcClient  = new XmlRpcRestClient(config.RequestUrl);
            var rpcRequest = new XmlRpcRestRequest(request.RequestUrl)
            {
                Method = Method.POST
            };

            // Add request parameters
            //rpcRequest.XmlSerializer = new XmlRpcSerializer("",false);
            rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password, request.FileRequestStruct, "true", "false");

            try
            {
                // Get response
                var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest);

                // Find and fill members in
                XmlMemberSearcher searcher = new XmlMemberSearcher(rpcResponse.Content);
                response.FileResponseStruct.Id       = Convert.ToInt32(searcher.GetValueOfMember("id"));
                response.FileResponseStruct.Url      = searcher.GetValueOfMember("url");
                response.FileResponseStruct.File     = searcher.GetValueOfMember("file");
                response.FileResponseStruct.FileType = searcher.GetValueOfMember("type");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }

            return(response);
        }
Esempio n. 4
0
            public void SerializeNoArguments()
            {
                var request = new XmlRpcRestRequest("some.method");

                request.AddXmlRpcBody( );

                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param").Count,
                        Is.EqualTo(0),
                        "There should be 0 parameters");
                }
            }
Esempio n. 5
0
        public GetMediaItemResponse SendMediaItemRequest(GetMediaItemRequest request)
        {
            GetMediaItemResponse response = new GetMediaItemResponse();

            var rpcClient  = new XmlRpcRestClient(config.RequestUrl);
            var rpcRequest = new XmlRpcRestRequest(request.RequestUrl)
            {
                Method = Method.POST
            };

            // Add request parameters
            rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password, request.Id);

            try
            {
                // Get response
                var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest);

                // Find and fill members in
                XmlMemberSearcher searcher = new XmlMemberSearcher(rpcResponse.Content);
                response.Link = searcher.GetValueOfMember("link");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }

            return(response);
        }
Esempio n. 6
0
            public void SerializeArrayOfComplexStructs()
            {
                var data = new List <SerializeComplexStruct>()
                {
                    new SerializeComplexStruct(true), new SerializeComplexStruct(true), new SerializeComplexStruct(true)
                };

                var request = new XmlRpcRestRequest("some.method");

                request.AddXmlRpcBody(
                    data);

                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param").Count,
                        Is.EqualTo(1),
                        "There should be 1 param");
                }
            }
Esempio n. 7
0
        public static string RequestBody(this XmlRpcRestRequest request)
        {
            var requestBody = request
                              .Parameters
                              .SingleOrDefault(x => x.Type == ParameterType.RequestBody)
                              ?.Value
                              ?.ToString();

            return(requestBody);
        }
Esempio n. 8
0
            public void WordPressHelloWorld()
            {
                var rpcClient = new XmlRpcRestClient("https://wordpress.com/xmlrpc.php");

                var sayHelloRequest = new XmlRpcRestRequest("demo.sayHello");

                sayHelloRequest.AddXmlRpcBody();
                var helloResponse = rpcClient.Execute <RpcResponseValue <string> >(sayHelloRequest);

                Assert.AreEqual("Hello!", helloResponse.Data.Value);
            }
Esempio n. 9
0
        /// <summary>
        /// Prints the content of the rpc request for debugging purposes
        /// </summary>
        /// <param name="rpcRequest"></param>
        private static void PrintRpcRequest(XmlRpcRestRequest rpcRequest)
        {
            var sb = new StringBuilder();

            foreach (var param in rpcRequest.Parameters)
            {
                sb.AppendFormat("{0}: {1}\r\n", param.Name, param.Value);
            }

            Console.Write(sb.ToString());
            Console.Read();
        }
Esempio n. 10
0
            public void WordPressAddTwoNumbers()
            {
                var rpcClient = new XmlRpcRestClient("https://wordpress.com/xmlrpc.php");

                var addTwoNumbersRequest = new XmlRpcRestRequest("demo.addTwoNumbers ");

                addTwoNumbersRequest.AddXmlRpcBody(100, 88);
                var addTwoNumbersResponse = rpcClient.Execute <RpcResponseValue <int> >(addTwoNumbersRequest);

                var sum = addTwoNumbersResponse.Data.Value;

                Assert.AreEqual(188, addTwoNumbersResponse.Data.Value);
            }
Esempio n. 11
0
            public void WordPressFault()
            {
                var rpcClient = new XmlRpcRestClient("https://wordpress.com/xmlrpc.php");

                var faultRequest = new XmlRpcRestRequest("demo.fault ");

                faultRequest.AddXmlRpcBody( );

                var response = rpcClient.Execute <RpcResponseValue <string> >(faultRequest);

                Assert.IsInstanceOf(typeof(XmlRpcFaultException), response.ErrorException);
                Assert.AreEqual(-32601, (( XmlRpcFaultException )response.ErrorException).FaultCode);
            }
Esempio n. 12
0
            public void SerializeOneStringArray()
            {
                var request = new XmlRpcRestRequest("some.method", true);
                var data    = new[]
                {
                    "one",
                    "two",
                    "three"
                };

                request.AddXmlRpcBody("", data);


                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param").Count,
                        Is.EqualTo(2),
                        "There should be 2 parameters");

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/string").Count,
                        Is.EqualTo(1),
                        "There should be 1 string parameter");

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/array").Count,
                        Is.EqualTo(1),
                        "There should be 1 array parameter");

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/array/data/value/string").Count,
                        Is.EqualTo(3),
                        "The array should have 3 (string) elements");
                }
            }
Esempio n. 13
0
            public void SerializeOneDateTimeAltFormat()
            {
                var request = new XmlRpcRestRequest("some.method", true)
                {
                    DateFormat = "MMddyyyy'T'HH':'mm':'ss"
                };
                var date = DateTime.UtcNow;

                request.AddXmlRpcBody(date);

                Assert
                .That(request
                      .Parameters[1]
                      .Value
                      .ToString()
                      .Contains("<dateTime.iso8601>"));
                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param").Count,
                        Is.EqualTo(1),
                        "There should be 1 parameters");

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/dateTime.iso8601").Count,
                        Is.EqualTo(1),
                        "There should be 1 dateTime.iso8601 parameter");

                    Assert.That(
                        nav.SelectSingleNode("//methodCall/params/param/value/dateTime.iso8601").Value,
                        Is.EqualTo(date.ToString("MMddyyyy'T'HH':'mm':'ss")),
                        "Format of datetime is unexpected");
                }
            }
Esempio n. 14
0
        public GetProfileResponse SendGetProfileRequest(GetProfileRequest request)
        {
            GetProfileResponse response = new GetProfileResponse();

            var rpcClient  = new XmlRpcRestClient(config.RequestUrl);
            var rpcRequest = new XmlRpcRestRequest(request.RequestUrl)
            {
                Method = Method.POST
            };

            // Add request parameters
            rpcRequest.AddXmlRpcBody(config.BlogID, config.Username, config.Password);

            try
            {
                // Get response
                var rpcResponse = rpcClient.Execute <RpcResponseValue <string> >(rpcRequest);

                Console.WriteLine("RESPONSE:");
                Console.WriteLine(rpcResponse.Content);

                // Find and fill members in
                XmlMemberSearcher searcher = new XmlMemberSearcher(rpcResponse.Content);
                response.Bio         = searcher.GetValueOfMember("bio");
                response.DisplayName = searcher.GetValueOfMember("display_name");
                response.Email       = searcher.GetValueOfMember("email");
                response.FirstName   = searcher.GetValueOfMember("first_name");
                response.LastName    = searcher.GetValueOfMember("last_name");
                response.NiceName    = searcher.GetValueOfMember("nicename");
                response.Nickname    = searcher.GetValueOfMember("nickname");
                response.Url         = searcher.GetValueOfMember("url");
                response.UserId      = searcher.GetValueOfMember("user_id");
                response.Username    = searcher.GetValueOfMember("username");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }

            return(response);
        }
Esempio n. 15
0
            public void SerializeOneBase64()
            {
                var          request     = new XmlRpcRestRequest("some.method", true);
                const string fileContent = "some file content goes here";
                var          data        = Encoding.ASCII.GetBytes(fileContent);

                request.AddXmlRpcBody(data);

                Assert
                .That(request
                      .Parameters[1]
                      .Value
                      .ToString()
                      .Contains("<base64>"));
                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param").Count,
                        Is.EqualTo(1),
                        "There should be 1 parameters");

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/base64").Count,
                        Is.EqualTo(1),
                        "There should be 1 base64 parameter");
                }
            }
Esempio n. 16
0
            public void SerializeOneString()
            {
                var request = new XmlRpcRestRequest("some.method");

                request.AddXmlRpcBody("hello");

                Assert
                .That(request
                      .Parameters[1]
                      .Value
                      .ToString()
                      .Contains("<string>"));
                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param").Count,
                        Is.EqualTo(1),
                        "There should be 1 parameters");

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/string").Count,
                        Is.EqualTo(1),
                        "There should be 1 string parameter");
                }
            }
Esempio n. 17
0
            public void SerializeOneSimpleStructOverrides()
            {
                var data = new SerializeSimpleStrucOverrides {
                    Name = "Superman",
                    Age  = 33
                };

                var request = new XmlRpcRestRequest("some.method");

                request.AddXmlRpcBody(
                    data);

                var requestBody = request.RequestBody();

                Assert.That(
                    requestBody,
                    Is.Not.Null,
                    "The request body parameter could not be found");

                if (requestBody == null)
                {
                    return;
                }
                ValidateXml(requestBody);

                using (var sr = new StringReader(requestBody)) {
                    var doc = new XPathDocument(sr);
                    var nav = doc.CreateNavigator();

                    Assert.That(
                        nav.Select("//methodCall/params/param/value/struct/member").Count,
                        Is.EqualTo(2),
                        "There should be 2 members in struct");

                    Assert.That(
                        nav.SelectSingleNode("//methodCall/params/param/value/struct/member/name").Value,
                        Is.EqualTo("A"),
                        "First Member name should be A");
                }
            }