root / trunk / Libraries / Json40r2 / Source / Src / Newtonsoft.Json.Tests / JsonTextWriterTest.cs @ 0eea575a
History | View | Annotate | Download (18.6 kB)
1 | d78cbf09 | Panagiotis Kanavos | #region License |
---|---|---|---|
2 | d78cbf09 | Panagiotis Kanavos | // Copyright (c) 2007 James Newton-King |
3 | d78cbf09 | Panagiotis Kanavos | // |
4 | d78cbf09 | Panagiotis Kanavos | // Permission is hereby granted, free of charge, to any person |
5 | d78cbf09 | Panagiotis Kanavos | // obtaining a copy of this software and associated documentation |
6 | d78cbf09 | Panagiotis Kanavos | // files (the "Software"), to deal in the Software without |
7 | d78cbf09 | Panagiotis Kanavos | // restriction, including without limitation the rights to use, |
8 | d78cbf09 | Panagiotis Kanavos | // copy, modify, merge, publish, distribute, sublicense, and/or sell |
9 | d78cbf09 | Panagiotis Kanavos | // copies of the Software, and to permit persons to whom the |
10 | d78cbf09 | Panagiotis Kanavos | // Software is furnished to do so, subject to the following |
11 | d78cbf09 | Panagiotis Kanavos | // conditions: |
12 | d78cbf09 | Panagiotis Kanavos | // |
13 | d78cbf09 | Panagiotis Kanavos | // The above copyright notice and this permission notice shall be |
14 | d78cbf09 | Panagiotis Kanavos | // included in all copies or substantial portions of the Software. |
15 | d78cbf09 | Panagiotis Kanavos | // |
16 | d78cbf09 | Panagiotis Kanavos | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
17 | d78cbf09 | Panagiotis Kanavos | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
18 | d78cbf09 | Panagiotis Kanavos | // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
19 | d78cbf09 | Panagiotis Kanavos | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
20 | d78cbf09 | Panagiotis Kanavos | // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
21 | d78cbf09 | Panagiotis Kanavos | // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
22 | d78cbf09 | Panagiotis Kanavos | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
23 | d78cbf09 | Panagiotis Kanavos | // OTHER DEALINGS IN THE SOFTWARE. |
24 | d78cbf09 | Panagiotis Kanavos | #endregion |
25 | d78cbf09 | Panagiotis Kanavos | |
26 | d78cbf09 | Panagiotis Kanavos | using System; |
27 | d78cbf09 | Panagiotis Kanavos | using System.Collections.Generic; |
28 | d78cbf09 | Panagiotis Kanavos | using System.Text; |
29 | d78cbf09 | Panagiotis Kanavos | using NUnit.Framework; |
30 | d78cbf09 | Panagiotis Kanavos | using Newtonsoft.Json; |
31 | d78cbf09 | Panagiotis Kanavos | using System.IO; |
32 | d78cbf09 | Panagiotis Kanavos | |
33 | d78cbf09 | Panagiotis Kanavos | namespace Newtonsoft.Json.Tests |
34 | d78cbf09 | Panagiotis Kanavos | { |
35 | d78cbf09 | Panagiotis Kanavos | public class JsonTextWriterTest : TestFixtureBase |
36 | d78cbf09 | Panagiotis Kanavos | { |
37 | d78cbf09 | Panagiotis Kanavos | [Test] |
38 | d78cbf09 | Panagiotis Kanavos | public void CloseOutput() |
39 | d78cbf09 | Panagiotis Kanavos | { |
40 | d78cbf09 | Panagiotis Kanavos | MemoryStream ms = new MemoryStream(); |
41 | d78cbf09 | Panagiotis Kanavos | JsonTextWriter writer = new JsonTextWriter(new StreamWriter(ms)); |
42 | d78cbf09 | Panagiotis Kanavos | |
43 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(ms.CanRead); |
44 | d78cbf09 | Panagiotis Kanavos | writer.Close(); |
45 | d78cbf09 | Panagiotis Kanavos | Assert.IsFalse(ms.CanRead); |
46 | d78cbf09 | Panagiotis Kanavos | |
47 | d78cbf09 | Panagiotis Kanavos | ms = new MemoryStream(); |
48 | d78cbf09 | Panagiotis Kanavos | writer = new JsonTextWriter(new StreamWriter(ms)) { CloseOutput = false }; |
49 | d78cbf09 | Panagiotis Kanavos | |
50 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(ms.CanRead); |
51 | d78cbf09 | Panagiotis Kanavos | writer.Close(); |
52 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(ms.CanRead); |
53 | d78cbf09 | Panagiotis Kanavos | } |
54 | d78cbf09 | Panagiotis Kanavos | |
55 | d78cbf09 | Panagiotis Kanavos | [Test] |
56 | d78cbf09 | Panagiotis Kanavos | public void ValueFormatting() |
57 | d78cbf09 | Panagiotis Kanavos | { |
58 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
59 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
60 | d78cbf09 | Panagiotis Kanavos | |
61 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
62 | d78cbf09 | Panagiotis Kanavos | { |
63 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
64 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue('@'); |
65 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("\r\n\t\f\b?{\\r\\n\"\'"); |
66 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(true); |
67 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(10); |
68 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(10.99); |
69 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.99); |
70 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.000000000000000001d); |
71 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.000000000000000001m); |
72 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((string)null); |
73 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((object)null); |
74 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("This is a string."); |
75 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteNull(); |
76 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteUndefined(); |
77 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
78 | d78cbf09 | Panagiotis Kanavos | } |
79 | d78cbf09 | Panagiotis Kanavos | |
80 | d78cbf09 | Panagiotis Kanavos | string expected = @"[""@"",""\r\n\t\f\b?{\\r\\n\""'"",true,10,10.99,0.99,1E-18,0.000000000000000001,null,null,""This is a string."",null,undefined]"; |
81 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
82 | d78cbf09 | Panagiotis Kanavos | |
83 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine("ValueFormatting"); |
84 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine(result); |
85 | d78cbf09 | Panagiotis Kanavos | |
86 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
87 | d78cbf09 | Panagiotis Kanavos | } |
88 | d78cbf09 | Panagiotis Kanavos | |
89 | d78cbf09 | Panagiotis Kanavos | [Test] |
90 | d78cbf09 | Panagiotis Kanavos | public void NullableValueFormatting() |
91 | d78cbf09 | Panagiotis Kanavos | { |
92 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(); |
93 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
94 | d78cbf09 | Panagiotis Kanavos | { |
95 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
96 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((char?)null); |
97 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((char?)'c'); |
98 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((bool?)null); |
99 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((bool?)true); |
100 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((byte?)null); |
101 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((byte?)1); |
102 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((sbyte?)null); |
103 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((sbyte?)1); |
104 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((short?)null); |
105 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((short?)1); |
106 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((ushort?)null); |
107 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((ushort?)1); |
108 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((int?)null); |
109 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((int?)1); |
110 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((uint?)null); |
111 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((uint?)1); |
112 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((long?)null); |
113 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((long?)1); |
114 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((ulong?)null); |
115 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((ulong?)1); |
116 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((double?)null); |
117 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((double?)1.1); |
118 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((float?)null); |
119 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((float?)1.1); |
120 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((decimal?)null); |
121 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((decimal?)1.1m); |
122 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((DateTime?)null); |
123 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((DateTime?)new DateTime(JsonConvert.InitialJavaScriptDateTicks, DateTimeKind.Utc)); |
124 | d78cbf09 | Panagiotis Kanavos | #if !PocketPC && !NET20 |
125 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((DateTimeOffset?)null); |
126 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((DateTimeOffset?)new DateTimeOffset(JsonConvert.InitialJavaScriptDateTicks, TimeSpan.Zero)); |
127 | d78cbf09 | Panagiotis Kanavos | #endif |
128 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
129 | d78cbf09 | Panagiotis Kanavos | } |
130 | d78cbf09 | Panagiotis Kanavos | |
131 | d78cbf09 | Panagiotis Kanavos | string json = sw.ToString(); |
132 | d78cbf09 | Panagiotis Kanavos | string expected; |
133 | d78cbf09 | Panagiotis Kanavos | |
134 | d78cbf09 | Panagiotis Kanavos | #if !PocketPC && !NET20 |
135 | d78cbf09 | Panagiotis Kanavos | expected = @"[null,""c"",null,true,null,1,null,1,null,1,null,1,null,1,null,1,null,1,null,1,null,1.1,null,1.1,null,1.1,null,""\/Date(0)\/"",null,""\/Date(0+0000)\/""]"; |
136 | d78cbf09 | Panagiotis Kanavos | #else |
137 | d78cbf09 | Panagiotis Kanavos | expected = @"[null,""c"",null,true,null,1,null,1,null,1,null,1,null,1,null,1,null,1,null,1,null,1.1,null,1.1,null,1.1,null,""\/Date(0)\/""]"; |
138 | d78cbf09 | Panagiotis Kanavos | #endif |
139 | d78cbf09 | Panagiotis Kanavos | |
140 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, json); |
141 | d78cbf09 | Panagiotis Kanavos | } |
142 | d78cbf09 | Panagiotis Kanavos | |
143 | d78cbf09 | Panagiotis Kanavos | [Test] |
144 | d78cbf09 | Panagiotis Kanavos | public void WriteValueObjectWithNullable() |
145 | d78cbf09 | Panagiotis Kanavos | { |
146 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(); |
147 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
148 | d78cbf09 | Panagiotis Kanavos | { |
149 | d78cbf09 | Panagiotis Kanavos | char? value = 'c'; |
150 | d78cbf09 | Panagiotis Kanavos | |
151 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
152 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((object)value); |
153 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
154 | d78cbf09 | Panagiotis Kanavos | } |
155 | d78cbf09 | Panagiotis Kanavos | |
156 | d78cbf09 | Panagiotis Kanavos | string json = sw.ToString(); |
157 | d78cbf09 | Panagiotis Kanavos | string expected = @"[""c""]"; |
158 | d78cbf09 | Panagiotis Kanavos | |
159 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, json); |
160 | d78cbf09 | Panagiotis Kanavos | } |
161 | d78cbf09 | Panagiotis Kanavos | |
162 | d78cbf09 | Panagiotis Kanavos | [Test] |
163 | d78cbf09 | Panagiotis Kanavos | [ExpectedException(typeof(ArgumentException), ExpectedMessage = @"Unsupported type: System.Version. Use the JsonSerializer class to get the object's JSON representation.")] |
164 | d78cbf09 | Panagiotis Kanavos | public void WriteValueObjectWithUnsupportedValue() |
165 | d78cbf09 | Panagiotis Kanavos | { |
166 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(); |
167 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
168 | d78cbf09 | Panagiotis Kanavos | { |
169 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
170 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(new Version(1, 1, 1, 1)); |
171 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
172 | d78cbf09 | Panagiotis Kanavos | } |
173 | d78cbf09 | Panagiotis Kanavos | } |
174 | d78cbf09 | Panagiotis Kanavos | |
175 | d78cbf09 | Panagiotis Kanavos | [Test] |
176 | d78cbf09 | Panagiotis Kanavos | public void StringEscaping() |
177 | d78cbf09 | Panagiotis Kanavos | { |
178 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
179 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
180 | d78cbf09 | Panagiotis Kanavos | |
181 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
182 | d78cbf09 | Panagiotis Kanavos | { |
183 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
184 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(@"""These pretzels are making me thirsty!"""); |
185 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("Jeff's house was burninated."); |
186 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(@"1. You don't talk about fight club. |
187 | d78cbf09 | Panagiotis Kanavos | 2. You don't talk about fight club."); |
188 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("35% of\t statistics\n are made\r up."); |
189 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
190 | d78cbf09 | Panagiotis Kanavos | } |
191 | d78cbf09 | Panagiotis Kanavos | |
192 | d78cbf09 | Panagiotis Kanavos | string expected = @"[""\""These pretzels are making me thirsty!\"""",""Jeff's house was burninated."",""1. You don't talk about fight club.\r\n2. You don't talk about fight club."",""35% of\t statistics\n are made\r up.""]"; |
193 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
194 | d78cbf09 | Panagiotis Kanavos | |
195 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine("StringEscaping"); |
196 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine(result); |
197 | d78cbf09 | Panagiotis Kanavos | |
198 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
199 | d78cbf09 | Panagiotis Kanavos | } |
200 | d78cbf09 | Panagiotis Kanavos | |
201 | d78cbf09 | Panagiotis Kanavos | [Test] |
202 | d78cbf09 | Panagiotis Kanavos | public void Indenting() |
203 | d78cbf09 | Panagiotis Kanavos | { |
204 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
205 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
206 | d78cbf09 | Panagiotis Kanavos | |
207 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
208 | d78cbf09 | Panagiotis Kanavos | { |
209 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
210 | d78cbf09 | Panagiotis Kanavos | |
211 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
212 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("CPU"); |
213 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("Intel"); |
214 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("PSU"); |
215 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("500W"); |
216 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("Drives"); |
217 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
218 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("DVD read/writer"); |
219 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteComment("(broken)"); |
220 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("500 gigabyte hard drive"); |
221 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("200 gigabype hard drive"); |
222 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEnd(); |
223 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndObject(); |
224 | d78cbf09 | Panagiotis Kanavos | } |
225 | d78cbf09 | Panagiotis Kanavos | |
226 | d78cbf09 | Panagiotis Kanavos | // { |
227 | d78cbf09 | Panagiotis Kanavos | // "CPU": "Intel", |
228 | d78cbf09 | Panagiotis Kanavos | // "PSU": "500W", |
229 | d78cbf09 | Panagiotis Kanavos | // "Drives": [ |
230 | d78cbf09 | Panagiotis Kanavos | // "DVD read/writer" |
231 | d78cbf09 | Panagiotis Kanavos | // /*(broken)*/, |
232 | d78cbf09 | Panagiotis Kanavos | // "500 gigabyte hard drive", |
233 | d78cbf09 | Panagiotis Kanavos | // "200 gigabype hard drive" |
234 | d78cbf09 | Panagiotis Kanavos | // ] |
235 | d78cbf09 | Panagiotis Kanavos | // } |
236 | d78cbf09 | Panagiotis Kanavos | |
237 | d78cbf09 | Panagiotis Kanavos | string expected = @"{ |
238 | d78cbf09 | Panagiotis Kanavos | ""CPU"": ""Intel"", |
239 | d78cbf09 | Panagiotis Kanavos | ""PSU"": ""500W"", |
240 | d78cbf09 | Panagiotis Kanavos | ""Drives"": [ |
241 | d78cbf09 | Panagiotis Kanavos | ""DVD read/writer"" |
242 | d78cbf09 | Panagiotis Kanavos | /*(broken)*/, |
243 | d78cbf09 | Panagiotis Kanavos | ""500 gigabyte hard drive"", |
244 | d78cbf09 | Panagiotis Kanavos | ""200 gigabype hard drive"" |
245 | d78cbf09 | Panagiotis Kanavos | ] |
246 | d78cbf09 | Panagiotis Kanavos | }"; |
247 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
248 | d78cbf09 | Panagiotis Kanavos | |
249 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine("Indenting"); |
250 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine(result); |
251 | d78cbf09 | Panagiotis Kanavos | |
252 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
253 | d78cbf09 | Panagiotis Kanavos | } |
254 | d78cbf09 | Panagiotis Kanavos | |
255 | d78cbf09 | Panagiotis Kanavos | [Test] |
256 | d78cbf09 | Panagiotis Kanavos | public void State() |
257 | d78cbf09 | Panagiotis Kanavos | { |
258 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
259 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
260 | d78cbf09 | Panagiotis Kanavos | |
261 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
262 | d78cbf09 | Panagiotis Kanavos | { |
263 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Start, jsonWriter.WriteState); |
264 | d78cbf09 | Panagiotis Kanavos | |
265 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
266 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); |
267 | d78cbf09 | Panagiotis Kanavos | |
268 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("CPU"); |
269 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Property, jsonWriter.WriteState); |
270 | d78cbf09 | Panagiotis Kanavos | |
271 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("Intel"); |
272 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); |
273 | d78cbf09 | Panagiotis Kanavos | |
274 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("Drives"); |
275 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Property, jsonWriter.WriteState); |
276 | d78cbf09 | Panagiotis Kanavos | |
277 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
278 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); |
279 | d78cbf09 | Panagiotis Kanavos | |
280 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("DVD read/writer"); |
281 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Array, jsonWriter.WriteState); |
282 | d78cbf09 | Panagiotis Kanavos | |
283 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEnd(); |
284 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Object, jsonWriter.WriteState); |
285 | d78cbf09 | Panagiotis Kanavos | |
286 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndObject(); |
287 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(WriteState.Start, jsonWriter.WriteState); |
288 | d78cbf09 | Panagiotis Kanavos | } |
289 | d78cbf09 | Panagiotis Kanavos | } |
290 | d78cbf09 | Panagiotis Kanavos | |
291 | d78cbf09 | Panagiotis Kanavos | [Test] |
292 | d78cbf09 | Panagiotis Kanavos | public void FloatingPointNonFiniteNumbers() |
293 | d78cbf09 | Panagiotis Kanavos | { |
294 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
295 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
296 | d78cbf09 | Panagiotis Kanavos | |
297 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
298 | d78cbf09 | Panagiotis Kanavos | { |
299 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
300 | d78cbf09 | Panagiotis Kanavos | |
301 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
302 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NaN); |
303 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.PositiveInfinity); |
304 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NegativeInfinity); |
305 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.NaN); |
306 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.PositiveInfinity); |
307 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.NegativeInfinity); |
308 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
309 | d78cbf09 | Panagiotis Kanavos | |
310 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Flush(); |
311 | d78cbf09 | Panagiotis Kanavos | } |
312 | d78cbf09 | Panagiotis Kanavos | |
313 | d78cbf09 | Panagiotis Kanavos | string expected = @"[ |
314 | d78cbf09 | Panagiotis Kanavos | NaN, |
315 | d78cbf09 | Panagiotis Kanavos | Infinity, |
316 | d78cbf09 | Panagiotis Kanavos | -Infinity, |
317 | d78cbf09 | Panagiotis Kanavos | NaN, |
318 | d78cbf09 | Panagiotis Kanavos | Infinity, |
319 | d78cbf09 | Panagiotis Kanavos | -Infinity |
320 | d78cbf09 | Panagiotis Kanavos | ]"; |
321 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
322 | d78cbf09 | Panagiotis Kanavos | |
323 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
324 | d78cbf09 | Panagiotis Kanavos | } |
325 | d78cbf09 | Panagiotis Kanavos | |
326 | d78cbf09 | Panagiotis Kanavos | [Test] |
327 | d78cbf09 | Panagiotis Kanavos | public void WriteRawInStart() |
328 | d78cbf09 | Panagiotis Kanavos | { |
329 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
330 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
331 | d78cbf09 | Panagiotis Kanavos | |
332 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
333 | d78cbf09 | Panagiotis Kanavos | { |
334 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
335 | d78cbf09 | Panagiotis Kanavos | |
336 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteRaw("[1,2,3,4,5]"); |
337 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteWhitespace(" "); |
338 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
339 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NaN); |
340 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
341 | d78cbf09 | Panagiotis Kanavos | } |
342 | d78cbf09 | Panagiotis Kanavos | |
343 | d78cbf09 | Panagiotis Kanavos | string expected = @"[1,2,3,4,5] [ |
344 | d78cbf09 | Panagiotis Kanavos | NaN |
345 | d78cbf09 | Panagiotis Kanavos | ]"; |
346 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
347 | d78cbf09 | Panagiotis Kanavos | |
348 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
349 | d78cbf09 | Panagiotis Kanavos | } |
350 | d78cbf09 | Panagiotis Kanavos | |
351 | d78cbf09 | Panagiotis Kanavos | [Test] |
352 | d78cbf09 | Panagiotis Kanavos | public void WriteRawInArray() |
353 | d78cbf09 | Panagiotis Kanavos | { |
354 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
355 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
356 | d78cbf09 | Panagiotis Kanavos | |
357 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
358 | d78cbf09 | Panagiotis Kanavos | { |
359 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
360 | d78cbf09 | Panagiotis Kanavos | |
361 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
362 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NaN); |
363 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteRaw(",[1,2,3,4,5]"); |
364 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteRaw(",[1,2,3,4,5]"); |
365 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.NaN); |
366 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
367 | d78cbf09 | Panagiotis Kanavos | } |
368 | d78cbf09 | Panagiotis Kanavos | |
369 | d78cbf09 | Panagiotis Kanavos | string expected = @"[ |
370 | d78cbf09 | Panagiotis Kanavos | NaN,[1,2,3,4,5],[1,2,3,4,5], |
371 | d78cbf09 | Panagiotis Kanavos | NaN |
372 | d78cbf09 | Panagiotis Kanavos | ]"; |
373 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
374 | d78cbf09 | Panagiotis Kanavos | |
375 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
376 | d78cbf09 | Panagiotis Kanavos | } |
377 | d78cbf09 | Panagiotis Kanavos | |
378 | d78cbf09 | Panagiotis Kanavos | [Test] |
379 | d78cbf09 | Panagiotis Kanavos | public void WriteRawInObject() |
380 | d78cbf09 | Panagiotis Kanavos | { |
381 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
382 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
383 | d78cbf09 | Panagiotis Kanavos | |
384 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
385 | d78cbf09 | Panagiotis Kanavos | { |
386 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
387 | d78cbf09 | Panagiotis Kanavos | |
388 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
389 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteRaw(@"""PropertyName"":[1,2,3,4,5]"); |
390 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEnd(); |
391 | d78cbf09 | Panagiotis Kanavos | } |
392 | d78cbf09 | Panagiotis Kanavos | |
393 | d78cbf09 | Panagiotis Kanavos | string expected = @"{""PropertyName"":[1,2,3,4,5]}"; |
394 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
395 | d78cbf09 | Panagiotis Kanavos | |
396 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
397 | d78cbf09 | Panagiotis Kanavos | } |
398 | d78cbf09 | Panagiotis Kanavos | |
399 | d78cbf09 | Panagiotis Kanavos | [Test] |
400 | d78cbf09 | Panagiotis Kanavos | public void WriteToken() |
401 | d78cbf09 | Panagiotis Kanavos | { |
402 | d78cbf09 | Panagiotis Kanavos | JsonTextReader reader = new JsonTextReader(new StringReader("[1,2,3,4,5]")); |
403 | d78cbf09 | Panagiotis Kanavos | reader.Read(); |
404 | d78cbf09 | Panagiotis Kanavos | reader.Read(); |
405 | d78cbf09 | Panagiotis Kanavos | |
406 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(); |
407 | d78cbf09 | Panagiotis Kanavos | JsonTextWriter writer = new JsonTextWriter(sw); |
408 | d78cbf09 | Panagiotis Kanavos | writer.WriteToken(reader); |
409 | d78cbf09 | Panagiotis Kanavos | |
410 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("1", sw.ToString()); |
411 | d78cbf09 | Panagiotis Kanavos | } |
412 | d78cbf09 | Panagiotis Kanavos | |
413 | d78cbf09 | Panagiotis Kanavos | [Test] |
414 | d78cbf09 | Panagiotis Kanavos | public void WriteRawValue() |
415 | d78cbf09 | Panagiotis Kanavos | { |
416 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
417 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
418 | d78cbf09 | Panagiotis Kanavos | |
419 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
420 | d78cbf09 | Panagiotis Kanavos | { |
421 | d78cbf09 | Panagiotis Kanavos | int i = 0; |
422 | d78cbf09 | Panagiotis Kanavos | string rawJson = "[1,2]"; |
423 | d78cbf09 | Panagiotis Kanavos | |
424 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
425 | d78cbf09 | Panagiotis Kanavos | |
426 | d78cbf09 | Panagiotis Kanavos | while (i < 3) |
427 | d78cbf09 | Panagiotis Kanavos | { |
428 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("d" + i); |
429 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteRawValue(rawJson); |
430 | d78cbf09 | Panagiotis Kanavos | |
431 | d78cbf09 | Panagiotis Kanavos | i++; |
432 | d78cbf09 | Panagiotis Kanavos | } |
433 | d78cbf09 | Panagiotis Kanavos | |
434 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndObject(); |
435 | d78cbf09 | Panagiotis Kanavos | } |
436 | d78cbf09 | Panagiotis Kanavos | |
437 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(@"{""d0"":[1,2],""d1"":[1,2],""d2"":[1,2]}", sb.ToString()); |
438 | d78cbf09 | Panagiotis Kanavos | } |
439 | d78cbf09 | Panagiotis Kanavos | |
440 | d78cbf09 | Panagiotis Kanavos | [Test] |
441 | d78cbf09 | Panagiotis Kanavos | public void WriteObjectNestedInConstructor() |
442 | d78cbf09 | Panagiotis Kanavos | { |
443 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
444 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
445 | d78cbf09 | Panagiotis Kanavos | |
446 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
447 | d78cbf09 | Panagiotis Kanavos | { |
448 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
449 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("con"); |
450 | d78cbf09 | Panagiotis Kanavos | |
451 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartConstructor("Ext.data.JsonStore"); |
452 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
453 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("aa"); |
454 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue("aa"); |
455 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndObject(); |
456 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndConstructor(); |
457 | d78cbf09 | Panagiotis Kanavos | |
458 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndObject(); |
459 | d78cbf09 | Panagiotis Kanavos | } |
460 | d78cbf09 | Panagiotis Kanavos | |
461 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(@"{""con"":new Ext.data.JsonStore({""aa"":""aa""})}", sb.ToString()); |
462 | d78cbf09 | Panagiotis Kanavos | } |
463 | d78cbf09 | Panagiotis Kanavos | |
464 | d78cbf09 | Panagiotis Kanavos | [Test] |
465 | d78cbf09 | Panagiotis Kanavos | public void WriteFloatingPointNumber() |
466 | d78cbf09 | Panagiotis Kanavos | { |
467 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
468 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
469 | d78cbf09 | Panagiotis Kanavos | |
470 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
471 | d78cbf09 | Panagiotis Kanavos | { |
472 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
473 | d78cbf09 | Panagiotis Kanavos | |
474 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.0); |
475 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0f); |
476 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.1); |
477 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(1.0); |
478 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(1.000001); |
479 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.000001); |
480 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.Epsilon); |
481 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.PositiveInfinity); |
482 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NegativeInfinity); |
483 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NaN); |
484 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.MaxValue); |
485 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.MinValue); |
486 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.PositiveInfinity); |
487 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.NegativeInfinity); |
488 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(float.NaN); |
489 | d78cbf09 | Panagiotis Kanavos | |
490 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
491 | d78cbf09 | Panagiotis Kanavos | } |
492 | d78cbf09 | Panagiotis Kanavos | |
493 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(@"[0.0,0.0,0.1,1.0,1.000001,1E-06,4.94065645841247E-324,Infinity,-Infinity,NaN,1.7976931348623157E+308,-1.7976931348623157E+308,Infinity,-Infinity,NaN]", sb.ToString()); |
494 | d78cbf09 | Panagiotis Kanavos | } |
495 | d78cbf09 | Panagiotis Kanavos | |
496 | d78cbf09 | Panagiotis Kanavos | [Test] |
497 | d78cbf09 | Panagiotis Kanavos | [ExpectedException(typeof(JsonWriterException), ExpectedMessage = "No token to close.")] |
498 | d78cbf09 | Panagiotis Kanavos | public void BadWriteEndArray() |
499 | d78cbf09 | Panagiotis Kanavos | { |
500 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
501 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
502 | d78cbf09 | Panagiotis Kanavos | |
503 | d78cbf09 | Panagiotis Kanavos | using (JsonWriter jsonWriter = new JsonTextWriter(sw)) |
504 | d78cbf09 | Panagiotis Kanavos | { |
505 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
506 | d78cbf09 | Panagiotis Kanavos | |
507 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(0.0); |
508 | d78cbf09 | Panagiotis Kanavos | |
509 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
510 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
511 | d78cbf09 | Panagiotis Kanavos | } |
512 | d78cbf09 | Panagiotis Kanavos | } |
513 | d78cbf09 | Panagiotis Kanavos | |
514 | d78cbf09 | Panagiotis Kanavos | [Test] |
515 | d78cbf09 | Panagiotis Kanavos | [ExpectedException(typeof(ArgumentException), ExpectedMessage = @"Invalid JavaScript string quote character. Valid quote characters are ' and "".")] |
516 | d78cbf09 | Panagiotis Kanavos | public void InvalidQuoteChar() |
517 | d78cbf09 | Panagiotis Kanavos | { |
518 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
519 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
520 | d78cbf09 | Panagiotis Kanavos | |
521 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
522 | d78cbf09 | Panagiotis Kanavos | { |
523 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
524 | d78cbf09 | Panagiotis Kanavos | jsonWriter.QuoteChar = '*'; |
525 | d78cbf09 | Panagiotis Kanavos | } |
526 | d78cbf09 | Panagiotis Kanavos | } |
527 | d78cbf09 | Panagiotis Kanavos | |
528 | d78cbf09 | Panagiotis Kanavos | [Test] |
529 | d78cbf09 | Panagiotis Kanavos | public void Indentation() |
530 | d78cbf09 | Panagiotis Kanavos | { |
531 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
532 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
533 | d78cbf09 | Panagiotis Kanavos | |
534 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
535 | d78cbf09 | Panagiotis Kanavos | { |
536 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
537 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(Formatting.Indented, jsonWriter.Formatting); |
538 | d78cbf09 | Panagiotis Kanavos | |
539 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Indentation = 5; |
540 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, jsonWriter.Indentation); |
541 | d78cbf09 | Panagiotis Kanavos | jsonWriter.IndentChar = '_'; |
542 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual('_', jsonWriter.IndentChar); |
543 | d78cbf09 | Panagiotis Kanavos | jsonWriter.QuoteName = true; |
544 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, jsonWriter.QuoteName); |
545 | d78cbf09 | Panagiotis Kanavos | jsonWriter.QuoteChar = '\''; |
546 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual('\'', jsonWriter.QuoteChar); |
547 | d78cbf09 | Panagiotis Kanavos | |
548 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartObject(); |
549 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WritePropertyName("propertyName"); |
550 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(double.NaN); |
551 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndObject(); |
552 | d78cbf09 | Panagiotis Kanavos | } |
553 | d78cbf09 | Panagiotis Kanavos | |
554 | d78cbf09 | Panagiotis Kanavos | string expected = @"{ |
555 | d78cbf09 | Panagiotis Kanavos | _____'propertyName': NaN |
556 | d78cbf09 | Panagiotis Kanavos | }"; |
557 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
558 | d78cbf09 | Panagiotis Kanavos | |
559 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
560 | d78cbf09 | Panagiotis Kanavos | } |
561 | d78cbf09 | Panagiotis Kanavos | |
562 | d78cbf09 | Panagiotis Kanavos | [Test] |
563 | d78cbf09 | Panagiotis Kanavos | public void WriteSingleBytes() |
564 | d78cbf09 | Panagiotis Kanavos | { |
565 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
566 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
567 | d78cbf09 | Panagiotis Kanavos | |
568 | d78cbf09 | Panagiotis Kanavos | string text = "Hello world."; |
569 | d78cbf09 | Panagiotis Kanavos | byte[] data = Encoding.UTF8.GetBytes(text); |
570 | d78cbf09 | Panagiotis Kanavos | |
571 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
572 | d78cbf09 | Panagiotis Kanavos | { |
573 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
574 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(Formatting.Indented, jsonWriter.Formatting); |
575 | d78cbf09 | Panagiotis Kanavos | |
576 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(data); |
577 | d78cbf09 | Panagiotis Kanavos | } |
578 | d78cbf09 | Panagiotis Kanavos | |
579 | d78cbf09 | Panagiotis Kanavos | string expected = @"""SGVsbG8gd29ybGQu"""; |
580 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
581 | d78cbf09 | Panagiotis Kanavos | |
582 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
583 | d78cbf09 | Panagiotis Kanavos | |
584 | d78cbf09 | Panagiotis Kanavos | byte[] d2 = Convert.FromBase64String(result.Trim('"')); |
585 | d78cbf09 | Panagiotis Kanavos | |
586 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(text, Encoding.UTF8.GetString(d2, 0, d2.Length)); |
587 | d78cbf09 | Panagiotis Kanavos | } |
588 | d78cbf09 | Panagiotis Kanavos | |
589 | d78cbf09 | Panagiotis Kanavos | [Test] |
590 | d78cbf09 | Panagiotis Kanavos | public void WriteBytesInArray() |
591 | d78cbf09 | Panagiotis Kanavos | { |
592 | d78cbf09 | Panagiotis Kanavos | StringBuilder sb = new StringBuilder(); |
593 | d78cbf09 | Panagiotis Kanavos | StringWriter sw = new StringWriter(sb); |
594 | d78cbf09 | Panagiotis Kanavos | |
595 | d78cbf09 | Panagiotis Kanavos | string text = "Hello world."; |
596 | d78cbf09 | Panagiotis Kanavos | byte[] data = Encoding.UTF8.GetBytes(text); |
597 | d78cbf09 | Panagiotis Kanavos | |
598 | d78cbf09 | Panagiotis Kanavos | using (JsonTextWriter jsonWriter = new JsonTextWriter(sw)) |
599 | d78cbf09 | Panagiotis Kanavos | { |
600 | d78cbf09 | Panagiotis Kanavos | jsonWriter.Formatting = Formatting.Indented; |
601 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(Formatting.Indented, jsonWriter.Formatting); |
602 | d78cbf09 | Panagiotis Kanavos | |
603 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteStartArray(); |
604 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(data); |
605 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue(data); |
606 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((object)data); |
607 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteValue((byte[])null); |
608 | d78cbf09 | Panagiotis Kanavos | jsonWriter.WriteEndArray(); |
609 | d78cbf09 | Panagiotis Kanavos | } |
610 | d78cbf09 | Panagiotis Kanavos | |
611 | d78cbf09 | Panagiotis Kanavos | string expected = @"[ |
612 | d78cbf09 | Panagiotis Kanavos | ""SGVsbG8gd29ybGQu"", |
613 | d78cbf09 | Panagiotis Kanavos | ""SGVsbG8gd29ybGQu"", |
614 | d78cbf09 | Panagiotis Kanavos | ""SGVsbG8gd29ybGQu"", |
615 | d78cbf09 | Panagiotis Kanavos | null |
616 | d78cbf09 | Panagiotis Kanavos | ]"; |
617 | d78cbf09 | Panagiotis Kanavos | string result = sb.ToString(); |
618 | d78cbf09 | Panagiotis Kanavos | |
619 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(expected, result); |
620 | d78cbf09 | Panagiotis Kanavos | } |
621 | d78cbf09 | Panagiotis Kanavos | } |
622 | d78cbf09 | Panagiotis Kanavos | } |