public void TestFullMessage()
 {
     FormatterAssert(
         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])))
         .Build(),
         @"""text"":""text""",
         @"[""a"",""b"",""c""]",
         @"[1,2,3]",
         @"""child"":{",
         @"""children"":[{",
         @"AA==",
         @"AAA=",
         @"AAAA",
         0x1010101010L.ToString()
         );
 }
        public void TestMessageMissingExtensions()
        {
            TestXmlMessage original = TestXmlMessage.CreateBuilder()
                                      .SetValid(true)
                                      .SetText("text")
                                      .SetExtension(UnittestExtrasXmltest.ExtensionText, " extension text value ! ")
                                      .SetExtension(UnittestExtrasXmltest.ExtensionMessage, new TestXmlExtension.Builder().SetNumber(42).Build())
                                      .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 100)
                                      .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 101)
                                      .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 102)
                                      .SetExtension(UnittestExtrasXmltest.ExtensionEnum, EnumOptions.ONE)
                                      .Build();

            TestXmlMessage message = original.ToBuilder()
                                     .ClearExtension(UnittestExtrasXmltest.ExtensionText)
                                     .ClearExtension(UnittestExtrasXmltest.ExtensionMessage)
                                     .ClearExtension(UnittestExtrasXmltest.ExtensionNumber)
                                     .ClearExtension(UnittestExtrasXmltest.ExtensionEnum)
                                     .Build();

            JsonFormatWriter writer = JsonFormatWriter.CreateInstance();

            writer.WriteMessage(original);
            Content = writer.ToString();

            IMessageLite copy = JsonFormatReader.CreateInstance(Content)
                                .Merge(message.CreateBuilderForType()).Build();

            Assert.AreNotEqual(original, message);
            Assert.AreNotEqual(original, copy);
            Assert.AreEqual(message, copy);
        }
Esempio n. 3
0
        public void TestFullMessageWithRichTypes()
        {
            TestXmlMessage message = 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])))
                                     .Build();

            StringWriter sw   = new StringWriter();
            XmlWriter    xwtr = XmlWriter.Create(sw, new XmlWriterSettings {
                Indent = true, IndentChars = "  "
            });

            XmlFormatWriter.CreateInstance(xwtr)
            .SetOptions(XmlWriterOptions.OutputNestedArrays | XmlWriterOptions.OutputEnumValues)
            .WriteMessage("root", message);

            string xml = sw.ToString();

            XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);

            rdr.Options = XmlReaderOptions.ReadNestedArrays;
            TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();

            Assert.AreEqual(message, copy);
        }
Esempio n. 4
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);
        }
        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);
        }
        public void Example_WriteJsonUsingICodedOutputStream()
        {
            TestXmlMessage message =
                TestXmlMessage.CreateBuilder()
                .SetValid(true)
                .Build();

            using (TextWriter output = new StringWriter())
            {
                ICodedOutputStream writer = JsonFormatWriter.CreateInstance(output);
                writer.WriteMessageStart();      //manually begin the message, output is '{'

                writer.Flush();
                Assert.AreEqual("{", output.ToString());

                ICodedOutputStream stream = writer;
                message.WriteTo(stream);    //write the message normally

                writer.Flush();
                Assert.AreEqual(@"{""valid"":true", output.ToString());

                writer.WriteMessageEnd();        //manually write the end message '}'
                Assert.AreEqual(@"{""valid"":true}", output.ToString());
            }
        }
        public void TestPlainMessage()
        {
            TestXmlMessage message = 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])))
                                     .Build();

            MemoryStream ms = new MemoryStream();

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

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

            Assert.AreEqual(message, copy);
        }
 public void TestWithExtensionEnum()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionEnum, EnumOptions.ONE)
         .Build(),
         @"{""extension_enum"":""ONE""}"
         );
 }
 public void TestWithEscapeChars()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetText(" \t <- \"leading space and trailing\" -> \\ \xef54 \x0000 \xFF \xFFFF \b \f \r \n \t ")
         .Build(),
         "{\"text\":\" \\t <- \\\"leading space and trailing\\\" -> \\\\ \\uef54 \\u0000 \\u00ff \\uffff \\b \\f \\r \\n \\t \"}"
         );
 }
Esempio n. 10
0
        public void TestWriteToJsonType()
        {
            MemoryStream ms = new MemoryStream();

            Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
                               new MessageFormatOptions(), "application/json", ms);

            Assert.AreEqual(@"{""text"":""a"",""number"":1}", Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
        }
Esempio n. 11
0
 public void TestNestedEmptyMessage()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetChild(TestXmlChild.CreateBuilder().Build())
         .Build(),
         @"{""child"":{}}"
         );
 }
Esempio n. 12
0
 public void TestMessageWithXmlText()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetText("<text></text>")
         .Build(),
         @"{""text"":""<text><\/text>""}"
         );
 }
Esempio n. 13
0
        public void TestWriteToXmlType()
        {
            MemoryStream ms = new MemoryStream();

            Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
                               new MessageFormatOptions(), "application/xml", ms);

            Assert.AreEqual("<root><text>a</text><number>1</number></root>", Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
        }
Esempio n. 14
0
 public void TestBooleanTypes()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetValid(true)
         .Build(),
         @"{""valid"":true}"
         );
 }
Esempio n. 15
0
 public void TestNestedMessage()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.TWO).Build())
         .Build(),
         @"{""child"":{""options"":[""TWO""]}}"
         );
 }
Esempio n. 16
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);
 }
Esempio n. 17
0
 public void TestWithExtensionEnum()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetExtension(UnittestExtrasXmltest.ExtensionEnum, EnumOptions.ONE)
         .Build(),
         @"{""extension_enum"":""ONE""}"
         );
 }
Esempio n. 18
0
 public void TestWithExtensionNumber()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetExtension(UnittestExtrasXmltest.ExtensionMessage,
                       new TestXmlExtension.Builder().SetNumber(42).Build())
         .Build(),
         @"{""number"":42}"
         );
 }
Esempio n. 19
0
 public void TestWithExtensionText()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetValid(false)
         .SetExtension(UnittestExtrasXmltest.ExtensionText, " extension text value ! ")
         .Build(),
         @"{""valid"":false,""extension_text"":"" extension text value ! ""}"
         );
 }
 public void TestWithExtensionNumber()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionMessage,
                       new TestXmlExtension.Builder().SetNumber(42).Build())
         .Build(),
         @"{""number"":42}"
         );
 }
Esempio n. 21
0
        public void TestWriteToProtoType()
        {
            MemoryStream ms = new MemoryStream();

            Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
                               new MessageFormatOptions(), "application/vnd.google.protobuf", ms);

            byte[] bytes = TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build().ToByteArray();
            TestUtil.AssertBytesEqual(bytes, ms.ToArray());
        }
 public void TestWithExtensionArray()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 100)
         .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 101)
         .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 102)
         .Build(),
         @"{""extension_number"":[100,101,102]}"
         );
 }
Esempio n. 23
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);
        }
Esempio n. 24
0
        public void TestMergeFromProtoType()
        {
            TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
                                                      new MessageFormatOptions(), "application/vnd.google.protobuf", new MemoryStream(
                                                          TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build().ToByteArray()
                                                          ))
                                 .Build();

            Assert.AreEqual("a", msg.Text);
            Assert.AreEqual(1, msg.Number);
        }
Esempio n. 25
0
 public void TestWithExtensionArray()
 {
     FormatterAssert(
         TestXmlMessage.CreateBuilder()
         .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 100)
         .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 101)
         .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 102)
         .Build(),
         @"{""extension_number"":[100,101,102]}"
         );
 }
Esempio n. 26
0
        public void TestMergeFromXmlType()
        {
            TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
                                                      new MessageFormatOptions(), "application/xml", new MemoryStream(Encoding.UTF8.GetBytes(
                                                                                                                          Extensions.ToXml(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build())
                                                                                                                          )))
                                 .Build();

            Assert.AreEqual("a", msg.Text);
            Assert.AreEqual(1, msg.Number);
        }
Esempio n. 27
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 '}'
        }
Esempio n. 28
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 '}'
        }
Esempio n. 29
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);
        }
Esempio n. 30
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 '}'
        }