1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using System;
- using System.IO;
- using System.Text;
- using Google.ProtocolBuffers.TestProtos;
- using Google.ProtocolBuffers.Serialization.Http;
- using NUnit.Framework;
- namespace Google.ProtocolBuffers
- {
- public class TestReaderForUrlEncoded
- {
- [Test]
- 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]);
- }
- [Test]
- 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]);
- }
- [Test]
- public void TestEmptyValues()
- {
- 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]);
- }
- [Test]
- 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]);
- }
- [Test]
- public void FormUrlEncodedReaderDoesNotSupportChildren()
- {
- ICodedInputStream input = FormUrlEncodedReader.CreateInstance("child=uh0");
- Assert.Throws<NotSupportedException>(() => TestXmlMessage.CreateBuilder().MergeFrom(input));
- }
- }
- }
|