using System.IO; using System.Xml; using Google.ProtocolBuffers.Serialization; using NUnit.Framework; namespace Google.ProtocolBuffers.Compatibility { [TestFixture] public class XmlCompatibilityTests : CompatibilityTests { protected override object SerializeMessage(TMessage message) { StringWriter text = new StringWriter(); XmlFormatWriter writer = XmlFormatWriter.CreateInstance(text); writer.WriteMessage("root", message); return text.ToString(); } protected override TBuilder DeserializeMessage(object message, TBuilder builder, ExtensionRegistry registry) { XmlFormatReader reader = XmlFormatReader.CreateInstance((string)message); return reader.Merge("root", builder, registry); } } [TestFixture] public class XmlCompatibilityFormattedTests : CompatibilityTests { protected override object SerializeMessage(TMessage message) { StringWriter text = new StringWriter(); XmlWriter xwtr = XmlWriter.Create(text, new XmlWriterSettings { Indent = true, IndentChars = " " }); XmlFormatWriter writer = XmlFormatWriter.CreateInstance(xwtr).SetOptions(XmlWriterOptions.OutputNestedArrays); writer.WriteMessage("root", message); return text.ToString(); } protected override TBuilder DeserializeMessage(object message, TBuilder builder, ExtensionRegistry registry) { XmlFormatReader reader = XmlFormatReader.CreateInstance((string)message).SetOptions(XmlReaderOptions.ReadNestedArrays); return reader.Merge("root", builder, registry); } } }