Exemple #1
0
        public void RecursiveArrayMemberTest()
        {
            Type   parsedType, parsedArrayType;
            string xml = @"<?xml version=""1.0"" ?>
<value>
  <struct>
    <member>
      <name>Level</name>
      <value>1</value>
    </member>
    <member>
      <name>childExamples</name>
      <value>
       <array>
          <data>
            <value>
              <struct>
                <member>
                  <name>Level</name>
                  <value>1-1</value>
                </member>
                <member>
                  <name>childExamples</name>
                  <value>
                   <array>
                      <data>
                        <value>
                          <struct>
                            <member>
                              <name>Level</name>
                              <value>1-1-1</value>
                            </member>
                            <member>
                              <name>childExamples</name>
                              <value>
                               <array>
                                  <data>
                                  </data>
                                </array>
                              </value>
                            </member>
                          </struct>
                        </value>
                        <value>
                          <struct>
                            <member>
                              <name>Level</name>
                              <value>1-1-2</value>
                            </member>
                            <member>
                              <name>childExamples</name>
                              <value>
                               <array>
                                  <data>
                                  </data>
                                </array>
                              </value>
                            </member>
                          </struct>
                        </value>
                      </data>
                    </array>
                  </value>
                </member>
              </struct>
            </value>
            <value>
              <struct>
                <member>
                  <name>Level</name>
                  <value>1-2</value>
                </member>
                <member>
                  <name>childExamples</name>
                  <value>
                   <array>
                      <data>
                        <value>
                          <struct>
                            <member>
                              <name>Level</name>
                              <value>1-2-1</value>
                            </member>
                            <member>
                              <name>childExamples</name>
                              <value>
                               <array>
                                  <data>
                                  </data>
                                </array>
                              </value>
                            </member>
                          </struct>
                        </value>
                        <value>
                          <struct>
                            <member>
                              <name>Level</name>
                              <value>1-2-2</value>
                            </member>
                            <member>
                              <name>childExamples</name>
                              <value>
                               <array>
                                  <data>
                                  </data>
                                </array>
                              </value>
                            </member>
                          </struct>
                        </value>
                      </data>
                    </array>
                  </value>
                </member>
              </struct>
            </value>
          </data>
        </array>
      </value>
    </member>
  </struct>
</value>";
            object obj = Utils.Parse(xml, typeof(RecursiveArrayMember), MappingAction.Error,
                                     out parsedType, out parsedArrayType);
            RecursiveArrayMember ret = (RecursiveArrayMember)obj;
        }
Exemple #2
0
        public void RecursiveArrayMemberTest()
        {
            Stream stm     = new MemoryStream();
            var    req     = new XmlRpcRequest();
            var    example = new RecursiveArrayMember {
                Level         = "1",
                childExamples = new[] {
                    new RecursiveArrayMember {
                        Level         = "1-1",
                        childExamples = new[] {
                            new RecursiveArrayMember {
                                Level         = "1-1-1",
                                childExamples = new RecursiveArrayMember[] {}
                            },
                            new RecursiveArrayMember {
                                Level         = "1-1-2",
                                childExamples = new RecursiveArrayMember[] {}
                            }
                        }
                    },
                    new RecursiveArrayMember {
                        Level         = "1-2",
                        childExamples = new[] {
                            new RecursiveArrayMember {
                                Level         = "1-2-1",
                                childExamples = new RecursiveArrayMember[] {}
                            },
                            new RecursiveArrayMember {
                                Level         = "1-2-2",
                                childExamples = new RecursiveArrayMember[] {}
                            }
                        }
                    }
                }
            };

            req.args = new Object[] {
                example
            };
            req.method = "Foo";
            var ser = new XmlRpcSerializer();

            ser.UseStringTag = false;
            ser.SerializeRequest(stm, req);
            stm.Position = 0;
            TextReader tr     = new StreamReader(stm);
            var        reqstr = tr.ReadToEnd();

            Assert.AreEqual(
                @"<?xml version=""1.0""?>
<methodCall>
  <methodName>Foo</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>Level</name>
            <value>1</value>
          </member>
          <member>
            <name>childExamples</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>Level</name>
                        <value>1-1</value>
                      </member>
                      <member>
                        <name>childExamples</name>
                        <value>
                          <array>
                            <data>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-1-1</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-1-2</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                            </data>
                          </array>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>Level</name>
                        <value>1-2</value>
                      </member>
                      <member>
                        <name>childExamples</name>
                        <value>
                          <array>
                            <data>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-2-1</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-2-2</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                            </data>
                          </array>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>", reqstr);
        }
    public void RecursiveArrayMemberTest()
    {
      Stream stm = new MemoryStream();
      XmlRpcRequest req = new XmlRpcRequest();
      var example = new RecursiveArrayMember
      {
        Level = "1",
        childExamples = new RecursiveArrayMember[]
        {
          new RecursiveArrayMember
          {
            Level = "1-1",
            childExamples = new RecursiveArrayMember[]
            {
              new RecursiveArrayMember
              {
                Level = "1-1-1",
                childExamples = new RecursiveArrayMember[]
                {
                }
              },
              new RecursiveArrayMember
              {
                Level = "1-1-2",
                childExamples = new RecursiveArrayMember[]
                {
                }
              }
            }
          },
          new RecursiveArrayMember
          {
            Level = "1-2",
            childExamples = new RecursiveArrayMember[]
            {
              new RecursiveArrayMember
              {
                Level = "1-2-1",
                childExamples = new RecursiveArrayMember[]
                {
                }
              },
              new RecursiveArrayMember
              {
                Level = "1-2-2",
                childExamples = new RecursiveArrayMember[]
                {
                }
              }
            }
          }
        }
      };
      req.args = new Object[] { example };
      req.method = "Foo";
      XmlRpcSerializer ser = new XmlRpcSerializer();
      ser.UseStringTag = false;
      ser.SerializeRequest(stm, req);
      stm.Position = 0;
      TextReader tr = new StreamReader(stm);
      string reqstr = tr.ReadToEnd();
      Assert.AreEqual(
@"<?xml version=""1.0""?>
<methodCall>
  <methodName>Foo</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>Level</name>
            <value>1</value>
          </member>
          <member>
            <name>childExamples</name>
            <value>
              <array>
                <data>
                  <value>
                    <struct>
                      <member>
                        <name>Level</name>
                        <value>1-1</value>
                      </member>
                      <member>
                        <name>childExamples</name>
                        <value>
                          <array>
                            <data>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-1-1</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-1-2</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                            </data>
                          </array>
                        </value>
                      </member>
                    </struct>
                  </value>
                  <value>
                    <struct>
                      <member>
                        <name>Level</name>
                        <value>1-2</value>
                      </member>
                      <member>
                        <name>childExamples</name>
                        <value>
                          <array>
                            <data>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-2-1</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                              <value>
                                <struct>
                                  <member>
                                    <name>Level</name>
                                    <value>1-2-2</value>
                                  </member>
                                  <member>
                                    <name>childExamples</name>
                                    <value>
                                      <array>
                                        <data />
                                      </array>
                                    </value>
                                  </member>
                                </struct>
                              </value>
                            </data>
                          </array>
                        </value>
                      </member>
                    </struct>
                  </value>
                </data>
              </array>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>", reqstr);
    }