blob: 86a3e3002d668fd358d718e460def9dda5cedc6d [file] [log] [blame]
csharptestafe844b2011-06-10 16:03:22 -05001using System;
2using System.IO;
csharptest3b70dd72011-06-11 12:22:17 -05003using System.Text;
csharptestafe844b2011-06-10 16:03:22 -05004using Google.ProtocolBuffers.Serialization;
csharptesteac64a52011-10-04 13:43:26 -05005using Microsoft.VisualStudio.TestTools.UnitTesting;
csharptestafe844b2011-06-10 16:03:22 -05006using Google.ProtocolBuffers.TestProtos;
7
8namespace Google.ProtocolBuffers
9{
csharptesteac64a52011-10-04 13:43:26 -050010 [TestClass]
csharptestafe844b2011-06-10 16:03:22 -050011 public class TestWriterFormatJson
12 {
csharptesteac64a52011-10-04 13:43:26 -050013 [TestMethod]
csharptestc2d2c1a2011-09-08 20:02:11 -050014 public void Example_FromJson()
15 {
16 TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
17
csharptestb5a7ed22011-10-01 15:10:05 -050018 //3.5: builder.MergeFromJson(@"{""valid"":true}");
19 Extensions.MergeFromJson(builder, @"{""valid"":true}");
csharptestc2d2c1a2011-09-08 20:02:11 -050020
21 TestXmlMessage message = builder.Build();
22 Assert.AreEqual(true, message.Valid);
23 }
24
csharptesteac64a52011-10-04 13:43:26 -050025 [TestMethod]
csharptestc2d2c1a2011-09-08 20:02:11 -050026 public void Example_ToJson()
27 {
28 TestXmlMessage message =
29 TestXmlMessage.CreateBuilder()
30 .SetValid(true)
31 .Build();
32
csharptestb5a7ed22011-10-01 15:10:05 -050033 //3.5: string json = message.ToJson();
34 string json = Extensions.ToJson(message);
csharptestc2d2c1a2011-09-08 20:02:11 -050035
36 Assert.AreEqual(@"{""valid"":true}", json);
37 }
38
csharptesteac64a52011-10-04 13:43:26 -050039 [TestMethod]
csharptestc2d2c1a2011-09-08 20:02:11 -050040 public void Example_WriteJsonUsingICodedOutputStream()
41 {
42 TestXmlMessage message =
43 TestXmlMessage.CreateBuilder()
44 .SetValid(true)
45 .Build();
46
47 using (TextWriter output = new StringWriter())
csharptestc2d2c1a2011-09-08 20:02:11 -050048 {
csharptest353b0fa2011-09-29 16:33:31 -050049 ICodedOutputStream writer = JsonFormatWriter.CreateInstance(output);
csharptest60fd7732011-09-09 12:18:16 -050050 writer.WriteMessageStart(); //manually begin the message, output is '{'
csharptestc2d2c1a2011-09-08 20:02:11 -050051
52 writer.Flush();
53 Assert.AreEqual("{", output.ToString());
54
55 ICodedOutputStream stream = writer;
56 message.WriteTo(stream); //write the message normally
57
58 writer.Flush();
59 Assert.AreEqual(@"{""valid"":true", output.ToString());
60
csharptest60fd7732011-09-09 12:18:16 -050061 writer.WriteMessageEnd(); //manually write the end message '}'
csharptestc2d2c1a2011-09-08 20:02:11 -050062 Assert.AreEqual(@"{""valid"":true}", output.ToString());
63 }
64 }
65
csharptesteac64a52011-10-04 13:43:26 -050066 [TestMethod]
csharptestc2d2c1a2011-09-08 20:02:11 -050067 public void Example_ReadJsonUsingICodedInputStream()
68 {
69 TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
csharptest60fd7732011-09-09 12:18:16 -050070 ICodedInputStream reader = JsonFormatReader.CreateInstance(@"{""valid"":true}");
csharptestc2d2c1a2011-09-08 20:02:11 -050071
csharptest60fd7732011-09-09 12:18:16 -050072 reader.ReadMessageStart(); //manually read the begin the message '{'
csharptestc2d2c1a2011-09-08 20:02:11 -050073
csharptest60fd7732011-09-09 12:18:16 -050074 builder.MergeFrom(reader); //write the message normally
csharptestc2d2c1a2011-09-08 20:02:11 -050075
csharptest60fd7732011-09-09 12:18:16 -050076 reader.ReadMessageEnd(); //manually read the end message '}'
csharptestc2d2c1a2011-09-08 20:02:11 -050077 }
78
csharptestafe844b2011-06-10 16:03:22 -050079 protected string Content;
80 [System.Diagnostics.DebuggerNonUserCode]
81 protected void FormatterAssert<TMessage>(TMessage message, params string[] expecting) where TMessage : IMessageLite
82 {
83 StringWriter sw = new StringWriter();
csharptest7fc785c2011-06-10 23:54:53 -050084 JsonFormatWriter.CreateInstance(sw).WriteMessage(message);
csharptestafe844b2011-06-10 16:03:22 -050085
86 Content = sw.ToString();
87
88 ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
89 UnitTestXmlSerializerTestProtoFile.RegisterAllExtensions(registry);
90
91 IMessageLite copy =
csharptest7fc785c2011-06-10 23:54:53 -050092 JsonFormatReader.CreateInstance(Content)
csharptestafe844b2011-06-10 16:03:22 -050093 .Merge(message.WeakCreateBuilderForType(), registry).WeakBuild();
94
95 Assert.AreEqual(typeof(TMessage), copy.GetType());
96 Assert.AreEqual(message, copy);
97 foreach (string expect in expecting)
98 Assert.IsTrue(Content.IndexOf(expect) >= 0, "Expected to find content '{0}' in: \r\n{1}", expect, Content);
99 }
100
csharptesteac64a52011-10-04 13:43:26 -0500101 [TestMethod]
csharptestf2925232011-06-11 10:41:57 -0500102 public void TestToJsonParseFromJson()
103 {
104 TestAllTypes msg = new TestAllTypes.Builder().SetDefaultBool(true).Build();
csharptestb5a7ed22011-10-01 15:10:05 -0500105 string json = Extensions.ToJson(msg);
csharptestf2925232011-06-11 10:41:57 -0500106 Assert.AreEqual("{\"default_bool\":true}", json);
csharptestb5a7ed22011-10-01 15:10:05 -0500107 TestAllTypes copy = Extensions.MergeFromJson(new TestAllTypes.Builder(), json).Build();
csharptestf2925232011-06-11 10:41:57 -0500108 Assert.IsTrue(copy.HasDefaultBool && copy.DefaultBool);
109 Assert.AreEqual(msg, copy);
110 }
111
csharptesteac64a52011-10-04 13:43:26 -0500112 [TestMethod]
csharptestf2925232011-06-11 10:41:57 -0500113 public void TestToJsonParseFromJsonReader()
114 {
115 TestAllTypes msg = new TestAllTypes.Builder().SetDefaultBool(true).Build();
csharptestb5a7ed22011-10-01 15:10:05 -0500116 string json = Extensions.ToJson(msg);
csharptestf2925232011-06-11 10:41:57 -0500117 Assert.AreEqual("{\"default_bool\":true}", json);
csharptestb5a7ed22011-10-01 15:10:05 -0500118 TestAllTypes copy = Extensions.MergeFromJson(new TestAllTypes.Builder(), new StringReader(json)).Build();
csharptestf2925232011-06-11 10:41:57 -0500119 Assert.IsTrue(copy.HasDefaultBool && copy.DefaultBool);
120 Assert.AreEqual(msg, copy);
121 }
122
csharptesteac64a52011-10-04 13:43:26 -0500123 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500124 public void TestJsonFormatted()
125 {
126 TestXmlMessage message = TestXmlMessage.CreateBuilder()
127 .SetValid(true)
128 .SetNumber(0x1010)
129 .AddChildren(TestXmlMessage.Types.Children.CreateBuilder())
130 .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.ONE))
131 .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.ONE).AddOptions(EnumOptions.TWO))
132 .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().SetBinary(ByteString.CopyFromUtf8("abc")))
133 .Build();
134
135 StringWriter sw = new StringWriter();
csharptest7fc785c2011-06-10 23:54:53 -0500136 JsonFormatWriter.CreateInstance(sw).Formatted()
csharptestafe844b2011-06-10 16:03:22 -0500137 .WriteMessage(message);
138
139 string json = sw.ToString();
140
csharptest7fc785c2011-06-10 23:54:53 -0500141 TestXmlMessage copy = JsonFormatReader.CreateInstance(json)
csharptestafe844b2011-06-10 16:03:22 -0500142 .Merge(TestXmlMessage.CreateBuilder()).Build();
143 Assert.AreEqual(message, copy);
144 }
145
csharptesteac64a52011-10-04 13:43:26 -0500146 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500147 public void TestEmptyMessage()
148 {
149 FormatterAssert(
150 TestXmlChild.CreateBuilder()
151 .Build(),
152 @"{}"
153 );
154 }
csharptesteac64a52011-10-04 13:43:26 -0500155 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500156 public void TestRepeatedField()
157 {
158 FormatterAssert(
159 TestXmlChild.CreateBuilder()
160 .AddOptions(EnumOptions.ONE)
161 .AddOptions(EnumOptions.TWO)
162 .Build(),
163 @"{""options"":[""ONE"",""TWO""]}"
164 );
165 }
csharptesteac64a52011-10-04 13:43:26 -0500166 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500167 public void TestNestedEmptyMessage()
168 {
169 FormatterAssert(
170 TestXmlMessage.CreateBuilder()
171 .SetChild(TestXmlChild.CreateBuilder().Build())
172 .Build(),
173 @"{""child"":{}}"
174 );
175 }
csharptesteac64a52011-10-04 13:43:26 -0500176 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500177 public void TestNestedMessage()
178 {
179 FormatterAssert(
180 TestXmlMessage.CreateBuilder()
181 .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.TWO).Build())
182 .Build(),
183 @"{""child"":{""options"":[""TWO""]}}"
184 );
185 }
csharptesteac64a52011-10-04 13:43:26 -0500186 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500187 public void TestBooleanTypes()
188 {
189 FormatterAssert(
190 TestXmlMessage.CreateBuilder()
191 .SetValid(true)
192 .Build(),
193 @"{""valid"":true}"
194 );
195 }
csharptesteac64a52011-10-04 13:43:26 -0500196 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500197 public void TestFullMessage()
198 {
199 FormatterAssert(
200 TestXmlMessage.CreateBuilder()
201 .SetValid(true)
202 .SetText("text")
203 .AddTextlines("a")
204 .AddTextlines("b")
205 .AddTextlines("c")
206 .SetNumber(0x1010101010)
207 .AddNumbers(1)
208 .AddNumbers(2)
209 .AddNumbers(3)
210 .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.ONE).SetBinary(ByteString.CopyFrom(new byte[1])))
211 .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.TWO).SetBinary(ByteString.CopyFrom(new byte[2])))
212 .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.THREE).SetBinary(ByteString.CopyFrom(new byte[3])))
213 .Build(),
214 @"""text"":""text""",
215 @"[""a"",""b"",""c""]",
216 @"[1,2,3]",
217 @"""child"":{",
218 @"""children"":[{",
219 @"AA==",
220 @"AAA=",
221 @"AAAA",
222 0x1010101010L.ToString()
223 );
224 }
csharptesteac64a52011-10-04 13:43:26 -0500225 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500226 public void TestMessageWithXmlText()
227 {
228 FormatterAssert(
229 TestXmlMessage.CreateBuilder()
230 .SetText("<text></text>")
231 .Build(),
232 @"{""text"":""<text><\/text>""}"
233 );
234 }
csharptesteac64a52011-10-04 13:43:26 -0500235 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500236 public void TestWithEscapeChars()
237 {
238 FormatterAssert(
239 TestXmlMessage.CreateBuilder()
240 .SetText(" \t <- \"leading space and trailing\" -> \\ \xef54 \x0000 \xFF \xFFFF \b \f \r \n \t ")
241 .Build(),
242 "{\"text\":\" \\t <- \\\"leading space and trailing\\\" -> \\\\ \\uef54 \\u0000 \\u00ff \\uffff \\b \\f \\r \\n \\t \"}"
243 );
244 }
csharptesteac64a52011-10-04 13:43:26 -0500245 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500246 public void TestWithExtensionText()
247 {
248 FormatterAssert(
249 TestXmlMessage.CreateBuilder()
250 .SetValid(false)
251 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionText, " extension text value ! ")
252 .Build(),
253 @"{""valid"":false,""extension_text"":"" extension text value ! ""}"
254 );
255 }
csharptesteac64a52011-10-04 13:43:26 -0500256 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500257 public void TestWithExtensionNumber()
258 {
259 FormatterAssert(
260 TestXmlMessage.CreateBuilder()
261 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionMessage,
262 new TestXmlExtension.Builder().SetNumber(42).Build())
263 .Build(),
264 @"{""number"":42}"
265 );
266 }
csharptesteac64a52011-10-04 13:43:26 -0500267 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500268 public void TestWithExtensionArray()
269 {
270 FormatterAssert(
271 TestXmlMessage.CreateBuilder()
272 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 100)
273 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 101)
274 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 102)
275 .Build(),
276 @"{""extension_number"":[100,101,102]}"
277 );
278 }
csharptesteac64a52011-10-04 13:43:26 -0500279 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500280 public void TestWithExtensionEnum()
281 {
282 FormatterAssert(
283 TestXmlMessage.CreateBuilder()
284 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionEnum, EnumOptions.ONE)
285 .Build(),
286 @"{""extension_enum"":""ONE""}"
287 );
288 }
csharptesteac64a52011-10-04 13:43:26 -0500289 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500290 public void TestMessageWithExtensions()
291 {
292 FormatterAssert(
293 TestXmlMessage.CreateBuilder()
294 .SetValid(true)
295 .SetText("text")
296 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionText, "extension text")
297 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionMessage, new TestXmlExtension.Builder().SetNumber(42).Build())
298 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 100)
299 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 101)
300 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 102)
301 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionEnum, EnumOptions.ONE)
302 .Build(),
303 @"""text"":""text""",
304 @"""valid"":true",
305 @"""extension_enum"":""ONE""",
306 @"""extension_text"":""extension text""",
307 @"""extension_number"":[100,101,102]",
308 @"""extension_message"":{""number"":42}"
309 );
310 }
csharptesteac64a52011-10-04 13:43:26 -0500311 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500312 public void TestMessageMissingExtensions()
313 {
314 TestXmlMessage original = TestXmlMessage.CreateBuilder()
315 .SetValid(true)
316 .SetText("text")
317 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionText, " extension text value ! ")
318 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionMessage, new TestXmlExtension.Builder().SetNumber(42).Build())
319 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 100)
320 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 101)
321 .AddExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber, 102)
322 .SetExtension(UnitTestXmlSerializerTestProtoFile.ExtensionEnum, EnumOptions.ONE)
323 .Build();
324
325 TestXmlMessage message = original.ToBuilder()
326 .ClearExtension(UnitTestXmlSerializerTestProtoFile.ExtensionText)
327 .ClearExtension(UnitTestXmlSerializerTestProtoFile.ExtensionMessage)
328 .ClearExtension(UnitTestXmlSerializerTestProtoFile.ExtensionNumber)
329 .ClearExtension(UnitTestXmlSerializerTestProtoFile.ExtensionEnum)
330 .Build();
331
csharptest7fc785c2011-06-10 23:54:53 -0500332 JsonFormatWriter writer = JsonFormatWriter.CreateInstance();
csharptestafe844b2011-06-10 16:03:22 -0500333 writer.WriteMessage(original);
334 Content = writer.ToString();
335
csharptest7fc785c2011-06-10 23:54:53 -0500336 IMessageLite copy = JsonFormatReader.CreateInstance(Content)
csharptestafe844b2011-06-10 16:03:22 -0500337 .Merge(message.CreateBuilderForType()).Build();
338
339 Assert.AreNotEqual(original, message);
340 Assert.AreNotEqual(original, copy);
341 Assert.AreEqual(message, copy);
342 }
csharptesteac64a52011-10-04 13:43:26 -0500343 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500344 public void TestMergeFields()
345 {
346 TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
csharptest7fc785c2011-06-10 23:54:53 -0500347 builder.MergeFrom(JsonFormatReader.CreateInstance("\"valid\": true"));
348 builder.MergeFrom(JsonFormatReader.CreateInstance("\"text\": \"text\", \"number\": \"411\""));
csharptestafe844b2011-06-10 16:03:22 -0500349 Assert.AreEqual(true, builder.Valid);
350 Assert.AreEqual("text", builder.Text);
351 Assert.AreEqual(411, builder.Number);
352 }
csharptesteac64a52011-10-04 13:43:26 -0500353 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500354 public void TestMessageArray()
355 {
csharptest7fc785c2011-06-10 23:54:53 -0500356 JsonFormatWriter writer = JsonFormatWriter.CreateInstance().Formatted();
csharptestafe844b2011-06-10 16:03:22 -0500357 using (writer.StartArray())
358 {
359 writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(1).AddTextlines("a").Build());
360 writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(2).AddTextlines("b").Build());
361 writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(3).AddTextlines("c").Build());
362 }
363 string json = writer.ToString();
csharptest7fc785c2011-06-10 23:54:53 -0500364 JsonFormatReader reader = JsonFormatReader.CreateInstance(json);
csharptestafe844b2011-06-10 16:03:22 -0500365
366 TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
367 int ordinal = 0;
368
369 foreach (JsonFormatReader r in reader.EnumerateArray())
370 {
371 r.Merge(builder);
372 Assert.AreEqual(++ordinal, builder.Number);
373 }
374 Assert.AreEqual(3, ordinal);
375 Assert.AreEqual(3, builder.TextlinesCount);
376 }
csharptesteac64a52011-10-04 13:43:26 -0500377 [TestMethod]
csharptestafe844b2011-06-10 16:03:22 -0500378 public void TestNestedMessageArray()
379 {
csharptest7fc785c2011-06-10 23:54:53 -0500380 JsonFormatWriter writer = JsonFormatWriter.CreateInstance();
csharptestafe844b2011-06-10 16:03:22 -0500381 using (writer.StartArray())
382 {
383 using (writer.StartArray())
384 {
385 writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(1).AddTextlines("a").Build());
386 writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(2).AddTextlines("b").Build());
387 }
388 using (writer.StartArray())
389 writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(3).AddTextlines("c").Build());
390 }
391 string json = writer.ToString();
csharptest7fc785c2011-06-10 23:54:53 -0500392 JsonFormatReader reader = JsonFormatReader.CreateInstance(json);
csharptestafe844b2011-06-10 16:03:22 -0500393
394 TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
395 int ordinal = 0;
396
397 foreach (JsonFormatReader r in reader.EnumerateArray())
398 foreach (JsonFormatReader r2 in r.EnumerateArray())
399 {
400 r2.Merge(builder);
401 Assert.AreEqual(++ordinal, builder.Number);
402 }
403 Assert.AreEqual(3, ordinal);
404 Assert.AreEqual(3, builder.TextlinesCount);
405 }
csharptesteac64a52011-10-04 13:43:26 -0500406 [TestMethod]
csharptest60fd7732011-09-09 12:18:16 -0500407 public void TestReadWriteJsonWithoutRoot()
408 {
409 TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
410 TestXmlMessage message = builder.SetText("abc").SetNumber(123).Build();
411
412 string Json;
413 using (StringWriter sw = new StringWriter())
414 {
415 ICodedOutputStream output = JsonFormatWriter.CreateInstance(sw);
416
417 message.WriteTo(output);
418 output.Flush();
419 Json = sw.ToString();
420 }
421 Assert.AreEqual(@"""text"":""abc"",""number"":123", Json);
422
423 ICodedInputStream input = JsonFormatReader.CreateInstance(Json);
424 TestXmlMessage copy = TestXmlMessage.CreateBuilder().MergeFrom(input).Build();
425
426 Assert.AreEqual(message, copy);
427 }
csharptesteac64a52011-10-04 13:43:26 -0500428 [TestMethod,ExpectedException(typeof(RecursionLimitExceededException))]
csharptest3b70dd72011-06-11 12:22:17 -0500429 public void TestRecursiveLimit()
430 {
431 StringBuilder sb = new StringBuilder(8192);
432 for (int i = 0; i < 80; i++)
433 sb.Append("{\"child\":");
csharptestb5a7ed22011-10-01 15:10:05 -0500434 TestXmlRescursive msg = Extensions.MergeFromJson(new TestXmlRescursive.Builder(), sb.ToString()).Build();
csharptest3b70dd72011-06-11 12:22:17 -0500435 }
csharptesteac64a52011-10-04 13:43:26 -0500436 [TestMethod, ExpectedException(typeof(FormatException))]
csharptestafe844b2011-06-10 16:03:22 -0500437 public void FailWithEmptyText()
438 {
csharptest7fc785c2011-06-10 23:54:53 -0500439 JsonFormatReader.CreateInstance("")
csharptestafe844b2011-06-10 16:03:22 -0500440 .Merge(TestXmlMessage.CreateBuilder());
441 }
csharptesteac64a52011-10-04 13:43:26 -0500442 [TestMethod, ExpectedException(typeof(FormatException))]
csharptestafe844b2011-06-10 16:03:22 -0500443 public void FailWithUnexpectedValue()
444 {
csharptest7fc785c2011-06-10 23:54:53 -0500445 JsonFormatReader.CreateInstance("{{}}")
csharptestafe844b2011-06-10 16:03:22 -0500446 .Merge(TestXmlMessage.CreateBuilder());
447 }
csharptesteac64a52011-10-04 13:43:26 -0500448 [TestMethod, ExpectedException(typeof(FormatException))]
csharptestafe844b2011-06-10 16:03:22 -0500449 public void FailWithUnQuotedName()
450 {
csharptest7fc785c2011-06-10 23:54:53 -0500451 JsonFormatReader.CreateInstance("{name:{}}")
csharptestafe844b2011-06-10 16:03:22 -0500452 .Merge(TestXmlMessage.CreateBuilder());
453 }
csharptesteac64a52011-10-04 13:43:26 -0500454 [TestMethod, ExpectedException(typeof(FormatException))]
csharptestafe844b2011-06-10 16:03:22 -0500455 public void FailWithUnexpectedType()
456 {
csharptest7fc785c2011-06-10 23:54:53 -0500457 JsonFormatReader.CreateInstance("{\"valid\":{}}")
csharptestafe844b2011-06-10 16:03:22 -0500458 .Merge(TestXmlMessage.CreateBuilder());
459 }
460 }
461}