public void TestPlainBuilder()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder()
                                             .SetValid(true)
                                             .SetText("text")
                                             .AddTextlines("a")
                                             .AddTextlines("b")
                                             .AddTextlines("c")
                                             .SetNumber(0x1010101010)
                                             .AddNumbers(1)
                                             .AddNumbers(2)
                                             .AddNumbers(3)
                                             .SetChild(TestXmlChild.CreateBuilder()
                                                       .AddOptions(EnumOptions.ONE)
                                                       .SetBinary(ByteString.CopyFrom(new byte[1])))
                                             .AddChildren(TestXmlMessage.Types.Children.CreateBuilder()
                                                          .AddOptions(EnumOptions.TWO)
                                                          .SetBinary(ByteString.CopyFrom(new byte[2])))
                                             .AddChildren(TestXmlMessage.Types.Children.CreateBuilder()
                                                          .AddOptions(EnumOptions.THREE)
                                                          .SetBinary(ByteString.CopyFrom(new byte[3])))
            ;

            MemoryStream ms = new MemoryStream();

            new BinaryFormatter().Serialize(ms, builder);

            ms.Position = 0;
            TestXmlMessage.Builder copy = (TestXmlMessage.Builder) new BinaryFormatter().Deserialize(ms);

            Assert.AreEqual(builder.Build(), copy.Build());
        }
Exemplo n.º 2
0
        public void TestNestedMessageArray()
        {
            JsonFormatWriter writer = JsonFormatWriter.CreateInstance();

            using (writer.StartArray())
            {
                using (writer.StartArray())
                {
                    writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(1).AddTextlines("a").Build());
                    writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(2).AddTextlines("b").Build());
                }
                using (writer.StartArray())
                    writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(3).AddTextlines("c").Build());
            }
            string           json   = writer.ToString();
            JsonFormatReader reader = JsonFormatReader.CreateInstance(json);

            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            int ordinal = 0;

            foreach (JsonFormatReader r in reader.EnumerateArray())
            {
                foreach (JsonFormatReader r2 in r.EnumerateArray())
                {
                    r2.Merge(builder);
                    Assert.AreEqual(++ordinal, builder.Number);
                }
            }
            Assert.AreEqual(3, ordinal);
            Assert.AreEqual(3, builder.TextlinesCount);
        }
Exemplo n.º 3
0
        public void TestXmlReadWriteWithoutRoot()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            TestXmlMessage         message = builder.SetText("abc").SetNumber(123).Build();

            string xml;

            using (StringWriter sw = new StringWriter())
            {
                ICodedOutputStream output = XmlFormatWriter.CreateInstance(
                    XmlWriter.Create(sw, new XmlWriterSettings()
                {
                    ConformanceLevel = ConformanceLevel.Fragment
                }));

                message.WriteTo(output);
                output.Flush();
                xml = sw.ToString();
            }
            Assert.AreEqual("<text>abc</text><number>123</number>", xml);

            TestXmlMessage copy;

            using (XmlReader xr = XmlReader.Create(new StringReader(xml), new XmlReaderSettings()
            {
                ConformanceLevel = ConformanceLevel.Fragment
            }))
            {
                ICodedInputStream input = XmlFormatReader.CreateInstance(xr);
                copy = TestXmlMessage.CreateBuilder().MergeFrom(input).Build();
            }

            Assert.AreEqual(message, copy);
        }
Exemplo n.º 4
0
 public void TestMergeFields()
 {
     TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
     builder.MergeFrom(JsonFormatReader.CreateInstance("\"valid\": true"));
     builder.MergeFrom(JsonFormatReader.CreateInstance("\"text\": \"text\", \"number\": \"411\""));
     Assert.AreEqual(true, builder.Valid);
     Assert.AreEqual("text", builder.Text);
     Assert.AreEqual(411, builder.Number);
 }
Exemplo n.º 5
0
        public void Example_ReadJsonUsingICodedInputStream()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            ICodedInputStream      reader  = JsonFormatReader.CreateInstance(@"{""valid"":true}");

            reader.ReadMessageStart();  //manually read the begin the message '{'

            builder.MergeFrom(reader);  //write the message normally

            reader.ReadMessageEnd();    //manually read the end message '}'
        }
Exemplo n.º 6
0
        public void Example_FromJson()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();

            //3.5: builder.MergeFromJson(@"{""valid"":true}");
            Extensions.MergeFromJson(builder, @"{""valid"":true}");

            TestXmlMessage message = builder.Build();

            Assert.AreEqual(true, message.Valid);
        }
Exemplo n.º 7
0
        public void Example_ReadXmlUsingICodedInputStream()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            ICodedInputStream      reader  = XmlFormatReader.CreateInstance(@"<root><valid>true</valid></root>");

            reader.ReadMessageStart();  //manually read the begin the message '{'

            builder.MergeFrom(reader);  //read the message normally

            reader.ReadMessageEnd();    //manually read the end message '}'
        }
Exemplo n.º 8
0
        public void TestXmlReadEmptyChild()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            ICodedInputStream      reader  = XmlFormatReader.CreateInstance(@"<root><text /></root>");

            reader.ReadMessageStart();  //manually read the begin the message '{'

            builder.MergeFrom(reader);  //write the message normally
            Assert.IsTrue(builder.HasText);
            Assert.AreEqual(String.Empty, builder.Text);
        }
Exemplo n.º 9
0
        public void TestXmlReadEmptyRoot()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            ICodedInputStream      reader  = XmlFormatReader.CreateInstance(@"<root/>");

            reader.ReadMessageStart();  //manually read the begin the message '{'

            builder.MergeFrom(reader);  //write the message normally

            reader.ReadMessageEnd();    //manually read the end message '}'
        }
Exemplo n.º 10
0
        public void Example_FromXml()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();

            XmlReader rdr = XmlReader.Create(new StringReader(@"<root><valid>true</valid></root>"));

            //3.5: builder.MergeFromXml(rdr);
            Extensions.MergeFromXml(builder, rdr);

            TestXmlMessage message = builder.Build();

            Assert.AreEqual(true, message.Valid);
        }
Exemplo n.º 11
0
        public void TestNoValue()
        {
            ICodedInputStream input = FormUrlEncodedReader.CreateInstance("valid=true&text&numbers=1");

            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            builder.MergeFrom(input);

            Assert.IsTrue(builder.Valid);
            Assert.IsTrue(builder.HasText);
            Assert.AreEqual("", builder.Text);
            Assert.AreEqual(1, builder.NumbersCount);
            Assert.AreEqual(1, builder.NumbersList[0]);
        }
Exemplo n.º 12
0
        public void Example_FromFormData()
        {
            Stream rawPost = new MemoryStream(Encoding.UTF8.GetBytes("text=two+three%20four&valid=true&numbers=1&numbers=2"), false);

            ICodedInputStream input = FormUrlEncodedReader.CreateInstance(rawPost);

            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            builder.MergeFrom(input);

            TestXmlMessage message = builder.Build();

            Assert.AreEqual(true, message.Valid);
            Assert.AreEqual("two three four", message.Text);
            Assert.AreEqual(2, message.NumbersCount);
            Assert.AreEqual(1, message.NumbersList[0]);
            Assert.AreEqual(2, message.NumbersList[1]);
        }
Exemplo n.º 13
0
        public void Example_FromQueryString()
        {
            Uri sampleUri = new Uri("http://sample.com/Path/File.ext?text=two+three%20four&valid=true&numbers=1&numbers=2", UriKind.Absolute);

            ICodedInputStream input = FormUrlEncodedReader.CreateInstance(sampleUri.Query);

            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            builder.MergeFrom(input);

            TestXmlMessage message = builder.Build();

            Assert.AreEqual(true, message.Valid);
            Assert.AreEqual("two three four", message.Text);
            Assert.AreEqual(2, message.NumbersCount);
            Assert.AreEqual(1, message.NumbersList[0]);
            Assert.AreEqual(2, message.NumbersList[1]);
        }
        public void TestBuilderWithExtensions()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder()
                                             .SetValid(true)
                                             .SetText("text")
                                             .AddTextlines("a")
                                             .AddTextlines("b")
                                             .AddTextlines("c")
                                             .SetNumber(0x1010101010)
                                             .AddNumbers(1)
                                             .AddNumbers(2)
                                             .AddNumbers(3)
                                             .SetChild(TestXmlChild.CreateBuilder()
                                                       .AddOptions(EnumOptions.ONE)
                                                       .SetBinary(ByteString.CopyFrom(new byte[1])))
                                             .AddChildren(TestXmlMessage.Types.Children.CreateBuilder()
                                                          .AddOptions(EnumOptions.TWO)
                                                          .SetBinary(ByteString.CopyFrom(new byte[2])))
                                             .AddChildren(TestXmlMessage.Types.Children.CreateBuilder()
                                                          .AddOptions(EnumOptions.THREE)
                                                          .SetBinary(ByteString.CopyFrom(new byte[3])))
                                             .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionText, " extension text value ! ")
                                             .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionMessage, new TestXmlExtension.Builder().SetNumber(42).Build())
                                             .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 100)
                                             .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 101)
                                             .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 102)
                                             .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionEnum, EnumOptions.ONE)
            ;

            ExtensionRegistry registry = ExtensionRegistry.CreateInstance();

            UnitTestXmlSerializerTestProtoFile.RegisterAllExtensions(registry);

            MemoryStream ms = new MemoryStream();

            new BinaryFormatter().Serialize(ms, builder);

            ms.Position = 0;
            //you need to provide the extension registry as context to the serializer
            BinaryFormatter bff = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.All, registry));

            TestXmlMessage.Builder copy = (TestXmlMessage.Builder)bff.Deserialize(ms);

            // And all extensions will be defined.
            Assert.AreEqual(builder.Build(), copy.Build());
        }
Exemplo n.º 15
0
        public void TestReadWriteJsonWithoutRoot()
        {
            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            TestXmlMessage         message = builder.SetText("abc").SetNumber(123).Build();

            string Json;

            using (StringWriter sw = new StringWriter())
            {
                ICodedOutputStream output = JsonFormatWriter.CreateInstance(sw);

                message.WriteTo(output);
                output.Flush();
                Json = sw.ToString();
            }
            Assert.AreEqual(@"""text"":""abc"",""number"":123", Json);

            ICodedInputStream input = JsonFormatReader.CreateInstance(Json);
            TestXmlMessage    copy  = TestXmlMessage.CreateBuilder().MergeFrom(input).Build();

            Assert.AreEqual(message, copy);
        }
Exemplo n.º 16
0
        public void TestXmlWriterOptions()
        {
            TestXmlMessage       message = TestXmlMessage.CreateBuilder().SetText("a").AddNumbers(1).AddNumbers(2).Build();
            MessageFormatOptions options = new MessageFormatOptions()
            {
                XmlWriterOptions         = XmlWriterOptions.OutputNestedArrays,
                XmlWriterRootElementName = "root-node"
            };

            MemoryStream ms = new MemoryStream();

            Extensions.WriteTo(message, options, "application/xml", ms);
            ms.Position = 0;

            TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
            XmlFormatReader.CreateInstance(ms)
            .SetOptions(XmlReaderOptions.ReadNestedArrays)
            .Merge("root-node", builder);

            Assert.AreEqual("a", builder.Text);
            Assert.AreEqual(1, builder.NumbersList[0]);
            Assert.AreEqual(2, builder.NumbersList[1]);
        }