mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-19 01:57:55 +08:00

--HG-- extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4040294
50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using System.Xml.Linq;
|
|
using NUnit.Framework;
|
|
using Orchard.XmlRpc.Models;
|
|
using Orchard.XmlRpc.Services;
|
|
|
|
namespace Orchard.Tests.Packages.XmlRpc.Services {
|
|
[TestFixture]
|
|
public class XmlRpcWriterTests {
|
|
[Test]
|
|
public void MethodResponseWriterShouldSendParametersWithValues() {
|
|
var mapper = new XmlRpcWriter();
|
|
IMapper<XRpcMethodResponse, XElement> resposeMapper = mapper;
|
|
|
|
var response = new XRpcMethodResponse();
|
|
response.Params.Add(new XRpcData<int> { Value = 42 });
|
|
var element = resposeMapper.Map(response);
|
|
|
|
Assert.That(NoSpace(element.ToString()), Is.EqualTo("<methodResponse><params><param><value><int>42</int></value></param></params></methodResponse>"));
|
|
}
|
|
|
|
[Test]
|
|
public void ArrayAndStructShouldWorkAsExpected() {
|
|
var mapper = new XmlRpcWriter();
|
|
IMapper<XRpcArray, XElement> arrayMapper = mapper;
|
|
|
|
var arr = new XRpcArray();
|
|
var structParam = XRpcData.For(new XRpcStruct());
|
|
|
|
arr.Data.Add(structParam);
|
|
arr.Data.Add(XRpcData.For(19));
|
|
|
|
structParam.Value.Members.Add("Hello", XRpcData.For("world"));
|
|
|
|
var element = arrayMapper.Map(arr);
|
|
|
|
Assert.That(NoSpace(element.ToString()), Is.EqualTo(NoSpace(@"
|
|
<array><data>
|
|
<value><struct>
|
|
<member><name>Hello</name><value><string>world</string></value></member>
|
|
</struct></value>
|
|
<value><int>19</int></value>
|
|
</data></array>
|
|
")));
|
|
}
|
|
|
|
private static string NoSpace(string text) {
|
|
return text.Replace(" ", "").Replace("\r", "").Replace("\n", "").Replace("\t", "");
|
|
}
|
|
}
|
|
} |