root / trunk / Libraries / Json40r2 / Source / Src / Newtonsoft.Json.Tests / Linq / JTokenTests.cs @ d78cbf09
History | View | Annotate | Download (22.3 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.Linq; |
29 | d78cbf09 | Panagiotis Kanavos | using System.Text; |
30 | d78cbf09 | Panagiotis Kanavos | using Newtonsoft.Json.Converters; |
31 | d78cbf09 | Panagiotis Kanavos | using NUnit.Framework; |
32 | d78cbf09 | Panagiotis Kanavos | using Newtonsoft.Json.Linq; |
33 | d78cbf09 | Panagiotis Kanavos | using System.IO; |
34 | d78cbf09 | Panagiotis Kanavos | |
35 | d78cbf09 | Panagiotis Kanavos | namespace Newtonsoft.Json.Tests.Linq |
36 | d78cbf09 | Panagiotis Kanavos | { |
37 | d78cbf09 | Panagiotis Kanavos | public class JTokenTests : TestFixtureBase |
38 | d78cbf09 | Panagiotis Kanavos | { |
39 | d78cbf09 | Panagiotis Kanavos | [Test] |
40 | d78cbf09 | Panagiotis Kanavos | public void ReadFrom() |
41 | d78cbf09 | Panagiotis Kanavos | { |
42 | d78cbf09 | Panagiotis Kanavos | JObject o = (JObject)JToken.ReadFrom(new JsonTextReader(new StringReader("{'pie':true}"))); |
43 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, (bool)o["pie"]); |
44 | d78cbf09 | Panagiotis Kanavos | |
45 | d78cbf09 | Panagiotis Kanavos | JArray a = (JArray)JToken.ReadFrom(new JsonTextReader(new StringReader("[1,2,3]"))); |
46 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(1, (int)a[0]); |
47 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, (int)a[1]); |
48 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(3, (int)a[2]); |
49 | d78cbf09 | Panagiotis Kanavos | |
50 | d78cbf09 | Panagiotis Kanavos | JsonReader reader = new JsonTextReader(new StringReader("{'pie':true}")); |
51 | d78cbf09 | Panagiotis Kanavos | reader.Read(); |
52 | d78cbf09 | Panagiotis Kanavos | reader.Read(); |
53 | d78cbf09 | Panagiotis Kanavos | |
54 | d78cbf09 | Panagiotis Kanavos | JProperty p = (JProperty)JToken.ReadFrom(reader); |
55 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("pie", p.Name); |
56 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, (bool)p.Value); |
57 | d78cbf09 | Panagiotis Kanavos | |
58 | d78cbf09 | Panagiotis Kanavos | JConstructor c = (JConstructor)JToken.ReadFrom(new JsonTextReader(new StringReader("new Date(1)"))); |
59 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("Date", c.Name); |
60 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(1), c.Values().ElementAt(0))); |
61 | d78cbf09 | Panagiotis Kanavos | |
62 | d78cbf09 | Panagiotis Kanavos | JValue v; |
63 | d78cbf09 | Panagiotis Kanavos | |
64 | d78cbf09 | Panagiotis Kanavos | v = (JValue)JToken.ReadFrom(new JsonTextReader(new StringReader(@"""stringvalue"""))); |
65 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("stringvalue", (string)v); |
66 | d78cbf09 | Panagiotis Kanavos | |
67 | d78cbf09 | Panagiotis Kanavos | v = (JValue)JToken.ReadFrom(new JsonTextReader(new StringReader(@"1"))); |
68 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(1, (int)v); |
69 | d78cbf09 | Panagiotis Kanavos | |
70 | d78cbf09 | Panagiotis Kanavos | v = (JValue)JToken.ReadFrom(new JsonTextReader(new StringReader(@"1.1"))); |
71 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(1.1, (double)v); |
72 | d78cbf09 | Panagiotis Kanavos | } |
73 | d78cbf09 | Panagiotis Kanavos | |
74 | d78cbf09 | Panagiotis Kanavos | [Test] |
75 | d78cbf09 | Panagiotis Kanavos | public void Load() |
76 | d78cbf09 | Panagiotis Kanavos | { |
77 | d78cbf09 | Panagiotis Kanavos | JObject o = (JObject)JToken.Load(new JsonTextReader(new StringReader("{'pie':true}"))); |
78 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, (bool)o["pie"]); |
79 | d78cbf09 | Panagiotis Kanavos | } |
80 | d78cbf09 | Panagiotis Kanavos | |
81 | d78cbf09 | Panagiotis Kanavos | [Test] |
82 | d78cbf09 | Panagiotis Kanavos | public void Parse() |
83 | d78cbf09 | Panagiotis Kanavos | { |
84 | d78cbf09 | Panagiotis Kanavos | JObject o = (JObject)JToken.Parse("{'pie':true}"); |
85 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, (bool)o["pie"]); |
86 | d78cbf09 | Panagiotis Kanavos | } |
87 | d78cbf09 | Panagiotis Kanavos | |
88 | d78cbf09 | Panagiotis Kanavos | [Test] |
89 | d78cbf09 | Panagiotis Kanavos | public void Parent() |
90 | d78cbf09 | Panagiotis Kanavos | { |
91 | d78cbf09 | Panagiotis Kanavos | JArray v = new JArray(new JConstructor("TestConstructor"), new JValue(new DateTime(2000, 12, 20))); |
92 | d78cbf09 | Panagiotis Kanavos | |
93 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, v.Parent); |
94 | d78cbf09 | Panagiotis Kanavos | |
95 | d78cbf09 | Panagiotis Kanavos | JObject o = |
96 | d78cbf09 | Panagiotis Kanavos | new JObject( |
97 | d78cbf09 | Panagiotis Kanavos | new JProperty("Test1", v), |
98 | d78cbf09 | Panagiotis Kanavos | new JProperty("Test2", "Test2Value"), |
99 | d78cbf09 | Panagiotis Kanavos | new JProperty("Test3", "Test3Value"), |
100 | d78cbf09 | Panagiotis Kanavos | new JProperty("Test4", null) |
101 | d78cbf09 | Panagiotis Kanavos | ); |
102 | d78cbf09 | Panagiotis Kanavos | |
103 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(o.Property("Test1"), v.Parent); |
104 | d78cbf09 | Panagiotis Kanavos | |
105 | d78cbf09 | Panagiotis Kanavos | JProperty p = new JProperty("NewProperty", v); |
106 | d78cbf09 | Panagiotis Kanavos | |
107 | d78cbf09 | Panagiotis Kanavos | // existing value should still have same parent |
108 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(o.Property("Test1"), v.Parent); |
109 | d78cbf09 | Panagiotis Kanavos | |
110 | d78cbf09 | Panagiotis Kanavos | // new value should be cloned |
111 | d78cbf09 | Panagiotis Kanavos | Assert.AreNotSame(p.Value, v); |
112 | d78cbf09 | Panagiotis Kanavos | |
113 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual((DateTime)((JValue)p.Value[1]).Value, (DateTime)((JValue)v[1]).Value); |
114 | d78cbf09 | Panagiotis Kanavos | |
115 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(v, o["Test1"]); |
116 | d78cbf09 | Panagiotis Kanavos | |
117 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, o.Parent); |
118 | d78cbf09 | Panagiotis Kanavos | JProperty o1 = new JProperty("O1", o); |
119 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(o, o1.Value); |
120 | d78cbf09 | Panagiotis Kanavos | |
121 | d78cbf09 | Panagiotis Kanavos | Assert.AreNotEqual(null, o.Parent); |
122 | d78cbf09 | Panagiotis Kanavos | JProperty o2 = new JProperty("O2", o); |
123 | d78cbf09 | Panagiotis Kanavos | |
124 | d78cbf09 | Panagiotis Kanavos | Assert.AreNotSame(o1.Value, o2.Value); |
125 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(o1.Value.Children().Count(), o2.Value.Children().Count()); |
126 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(false, JToken.DeepEquals(o1, o2)); |
127 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, JToken.DeepEquals(o1.Value, o2.Value)); |
128 | d78cbf09 | Panagiotis Kanavos | } |
129 | d78cbf09 | Panagiotis Kanavos | |
130 | d78cbf09 | Panagiotis Kanavos | [Test] |
131 | d78cbf09 | Panagiotis Kanavos | public void Next() |
132 | d78cbf09 | Panagiotis Kanavos | { |
133 | d78cbf09 | Panagiotis Kanavos | JArray a = |
134 | d78cbf09 | Panagiotis Kanavos | new JArray( |
135 | d78cbf09 | Panagiotis Kanavos | 5, |
136 | d78cbf09 | Panagiotis Kanavos | 6, |
137 | d78cbf09 | Panagiotis Kanavos | new JArray(7, 8), |
138 | d78cbf09 | Panagiotis Kanavos | new JArray(9, 10) |
139 | d78cbf09 | Panagiotis Kanavos | ); |
140 | d78cbf09 | Panagiotis Kanavos | |
141 | d78cbf09 | Panagiotis Kanavos | JToken next = a[0].Next; |
142 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, (int)next); |
143 | d78cbf09 | Panagiotis Kanavos | |
144 | d78cbf09 | Panagiotis Kanavos | next = next.Next; |
145 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(7, 8), next)); |
146 | d78cbf09 | Panagiotis Kanavos | |
147 | d78cbf09 | Panagiotis Kanavos | next = next.Next; |
148 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(9, 10), next)); |
149 | d78cbf09 | Panagiotis Kanavos | |
150 | d78cbf09 | Panagiotis Kanavos | next = next.Next; |
151 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(next); |
152 | d78cbf09 | Panagiotis Kanavos | } |
153 | d78cbf09 | Panagiotis Kanavos | |
154 | d78cbf09 | Panagiotis Kanavos | [Test] |
155 | d78cbf09 | Panagiotis Kanavos | public void Previous() |
156 | d78cbf09 | Panagiotis Kanavos | { |
157 | d78cbf09 | Panagiotis Kanavos | JArray a = |
158 | d78cbf09 | Panagiotis Kanavos | new JArray( |
159 | d78cbf09 | Panagiotis Kanavos | 5, |
160 | d78cbf09 | Panagiotis Kanavos | 6, |
161 | d78cbf09 | Panagiotis Kanavos | new JArray(7, 8), |
162 | d78cbf09 | Panagiotis Kanavos | new JArray(9, 10) |
163 | d78cbf09 | Panagiotis Kanavos | ); |
164 | d78cbf09 | Panagiotis Kanavos | |
165 | d78cbf09 | Panagiotis Kanavos | JToken previous = a[3].Previous; |
166 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(7, 8), previous)); |
167 | d78cbf09 | Panagiotis Kanavos | |
168 | d78cbf09 | Panagiotis Kanavos | previous = previous.Previous; |
169 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, (int)previous); |
170 | d78cbf09 | Panagiotis Kanavos | |
171 | d78cbf09 | Panagiotis Kanavos | previous = previous.Previous; |
172 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)previous); |
173 | d78cbf09 | Panagiotis Kanavos | |
174 | d78cbf09 | Panagiotis Kanavos | previous = previous.Previous; |
175 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(previous); |
176 | d78cbf09 | Panagiotis Kanavos | } |
177 | d78cbf09 | Panagiotis Kanavos | |
178 | d78cbf09 | Panagiotis Kanavos | [Test] |
179 | d78cbf09 | Panagiotis Kanavos | public void Children() |
180 | d78cbf09 | Panagiotis Kanavos | { |
181 | d78cbf09 | Panagiotis Kanavos | JArray a = |
182 | d78cbf09 | Panagiotis Kanavos | new JArray( |
183 | d78cbf09 | Panagiotis Kanavos | 5, |
184 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
185 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
186 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
187 | d78cbf09 | Panagiotis Kanavos | ); |
188 | d78cbf09 | Panagiotis Kanavos | |
189 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(4, a.Count()); |
190 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(3, a.Children<JArray>().Count()); |
191 | d78cbf09 | Panagiotis Kanavos | } |
192 | d78cbf09 | Panagiotis Kanavos | |
193 | d78cbf09 | Panagiotis Kanavos | [Test] |
194 | d78cbf09 | Panagiotis Kanavos | public void BeforeAfter() |
195 | d78cbf09 | Panagiotis Kanavos | { |
196 | d78cbf09 | Panagiotis Kanavos | JArray a = |
197 | d78cbf09 | Panagiotis Kanavos | new JArray( |
198 | d78cbf09 | Panagiotis Kanavos | 5, |
199 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3), |
200 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3), |
201 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
202 | d78cbf09 | Panagiotis Kanavos | ); |
203 | d78cbf09 | Panagiotis Kanavos | |
204 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)a[1].Previous); |
205 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, a[2].BeforeSelf().Count()); |
206 | d78cbf09 | Panagiotis Kanavos | //Assert.AreEqual(2, a[2].AfterSelf().Count()); |
207 | d78cbf09 | Panagiotis Kanavos | } |
208 | d78cbf09 | Panagiotis Kanavos | |
209 | d78cbf09 | Panagiotis Kanavos | [Test] |
210 | d78cbf09 | Panagiotis Kanavos | public void Casting() |
211 | d78cbf09 | Panagiotis Kanavos | { |
212 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(new DateTime(2000, 12, 20), (DateTime)new JValue(new DateTime(2000, 12, 20))); |
213 | d78cbf09 | Panagiotis Kanavos | #if !PocketPC && !NET20 |
214 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(new DateTimeOffset(2000, 12, 20, 23, 50, 10, TimeSpan.Zero), (DateTimeOffset)new JValue(new DateTimeOffset(2000, 12, 20, 23, 50, 10, TimeSpan.Zero))); |
215 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (DateTimeOffset?)new JValue((DateTimeOffset?)null)); |
216 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (DateTimeOffset?)(JValue)null); |
217 | d78cbf09 | Panagiotis Kanavos | #endif |
218 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, (bool)new JValue(true)); |
219 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(true, (bool?)new JValue(true)); |
220 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (bool?)((JValue)null)); |
221 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (bool?)new JValue((object)null)); |
222 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(10, (long)new JValue(10)); |
223 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (long?)new JValue((long?)null)); |
224 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (long?)(JValue)null); |
225 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (int?)new JValue((int?)null)); |
226 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (int?)(JValue)null); |
227 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (DateTime?)new JValue((DateTime?)null)); |
228 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (DateTime?)(JValue)null); |
229 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (short?)new JValue((short?)null)); |
230 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (short?)(JValue)null); |
231 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (float?)new JValue((float?)null)); |
232 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (float?)(JValue)null); |
233 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (double?)new JValue((double?)null)); |
234 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (double?)(JValue)null); |
235 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (decimal?)new JValue((decimal?)null)); |
236 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (decimal?)(JValue)null); |
237 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (uint?)new JValue((uint?)null)); |
238 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (uint?)(JValue)null); |
239 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (sbyte?)new JValue((sbyte?)null)); |
240 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (sbyte?)(JValue)null); |
241 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (ulong?)new JValue((ulong?)null)); |
242 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (ulong?)(JValue)null); |
243 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (uint?)new JValue((uint?)null)); |
244 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (uint?)(JValue)null); |
245 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(11.1f, (float)new JValue(11.1)); |
246 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(float.MinValue, (float)new JValue(float.MinValue)); |
247 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(1.1, (double)new JValue(1.1)); |
248 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(uint.MaxValue, (uint)new JValue(uint.MaxValue)); |
249 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(ulong.MaxValue, (ulong)new JValue(ulong.MaxValue)); |
250 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(ulong.MaxValue, (ulong)new JProperty("Test", new JValue(ulong.MaxValue))); |
251 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(null, (string)new JValue((string)null)); |
252 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5m, (decimal)(new JValue(5L))); |
253 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5m, (decimal?)(new JValue(5L))); |
254 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5f, (float)(new JValue(5L))); |
255 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5f, (float)(new JValue(5m))); |
256 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5f, (float?)(new JValue(5m))); |
257 | d78cbf09 | Panagiotis Kanavos | |
258 | d78cbf09 | Panagiotis Kanavos | byte[] data = new byte[0]; |
259 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(data, (byte[])(new JValue(data))); |
260 | d78cbf09 | Panagiotis Kanavos | |
261 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)(new JValue(StringComparison.OrdinalIgnoreCase))); |
262 | d78cbf09 | Panagiotis Kanavos | } |
263 | d78cbf09 | Panagiotis Kanavos | |
264 | d78cbf09 | Panagiotis Kanavos | [Test] |
265 | d78cbf09 | Panagiotis Kanavos | public void ImplicitCastingTo() |
266 | d78cbf09 | Panagiotis Kanavos | { |
267 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(new DateTime(2000, 12, 20)), (JValue)new DateTime(2000, 12, 20))); |
268 | d78cbf09 | Panagiotis Kanavos | #if !PocketPC && !NET20 |
269 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(new DateTimeOffset(2000, 12, 20, 23, 50, 10, TimeSpan.Zero)), (JValue)new DateTimeOffset(2000, 12, 20, 23, 50, 10, TimeSpan.Zero))); |
270 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((DateTimeOffset?)null), (JValue)(DateTimeOffset?)null)); |
271 | d78cbf09 | Panagiotis Kanavos | #endif |
272 | d78cbf09 | Panagiotis Kanavos | |
273 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(true), (JValue)true)); |
274 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(true), (JValue)(bool?)true)); |
275 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((bool?)null), (JValue)(bool?)null)); |
276 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(10), (JValue)10)); |
277 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((long?)null), (JValue)(long?)null)); |
278 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((DateTime?)null), (JValue)(DateTime?)null)); |
279 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(long.MaxValue), (JValue)long.MaxValue)); |
280 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((int?)null), (JValue)(int?)null)); |
281 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((short?)null), (JValue)(short?)null)); |
282 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((double?)null), (JValue)(double?)null)); |
283 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((uint?)null), (JValue)(uint?)null)); |
284 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((decimal?)null), (JValue)(decimal?)null)); |
285 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((ulong?)null), (JValue)(ulong?)null)); |
286 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((sbyte?)null), (JValue)(sbyte?)null)); |
287 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((ushort?)null), (JValue)(ushort?)null)); |
288 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(ushort.MaxValue), (JValue)ushort.MaxValue)); |
289 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(11.1f), (JValue)11.1f)); |
290 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(float.MinValue), (JValue)float.MinValue)); |
291 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(double.MinValue), (JValue)double.MinValue)); |
292 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(uint.MaxValue), (JValue)uint.MaxValue)); |
293 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(ulong.MaxValue), (JValue)ulong.MaxValue)); |
294 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(ulong.MinValue), (JValue)ulong.MinValue)); |
295 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((string)null), (JValue)(string)null)); |
296 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((DateTime?)null), (JValue)(DateTime?)null)); |
297 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(decimal.MaxValue), (JValue)decimal.MaxValue)); |
298 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(decimal.MaxValue), (JValue)(decimal?)decimal.MaxValue)); |
299 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(decimal.MinValue), (JValue)decimal.MinValue)); |
300 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(float.MaxValue), (JValue)(float?)float.MaxValue)); |
301 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(double.MaxValue), (JValue)(double?)double.MaxValue)); |
302 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue((object)null), (JValue)(double?)null)); |
303 | d78cbf09 | Panagiotis Kanavos | |
304 | d78cbf09 | Panagiotis Kanavos | Assert.IsFalse(JToken.DeepEquals(new JValue(true), (JValue)(bool?)null)); |
305 | d78cbf09 | Panagiotis Kanavos | Assert.IsFalse(JToken.DeepEquals(new JValue((object)null), (JValue)(object)null)); |
306 | d78cbf09 | Panagiotis Kanavos | |
307 | d78cbf09 | Panagiotis Kanavos | byte[] emptyData = new byte[0]; |
308 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(emptyData), (JValue)emptyData)); |
309 | d78cbf09 | Panagiotis Kanavos | Assert.IsFalse(JToken.DeepEquals(new JValue(emptyData), (JValue)new byte[1])); |
310 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(Encoding.UTF8.GetBytes("Hi")), (JValue)Encoding.UTF8.GetBytes("Hi"))); |
311 | d78cbf09 | Panagiotis Kanavos | } |
312 | d78cbf09 | Panagiotis Kanavos | |
313 | d78cbf09 | Panagiotis Kanavos | [Test] |
314 | d78cbf09 | Panagiotis Kanavos | public void Root() |
315 | d78cbf09 | Panagiotis Kanavos | { |
316 | d78cbf09 | Panagiotis Kanavos | JArray a = |
317 | d78cbf09 | Panagiotis Kanavos | new JArray( |
318 | d78cbf09 | Panagiotis Kanavos | 5, |
319 | d78cbf09 | Panagiotis Kanavos | 6, |
320 | d78cbf09 | Panagiotis Kanavos | new JArray(7, 8), |
321 | d78cbf09 | Panagiotis Kanavos | new JArray(9, 10) |
322 | d78cbf09 | Panagiotis Kanavos | ); |
323 | d78cbf09 | Panagiotis Kanavos | |
324 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, a.Root); |
325 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, a[0].Root); |
326 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, ((JArray)a[2])[0].Root); |
327 | d78cbf09 | Panagiotis Kanavos | } |
328 | d78cbf09 | Panagiotis Kanavos | |
329 | d78cbf09 | Panagiotis Kanavos | [Test] |
330 | d78cbf09 | Panagiotis Kanavos | public void Remove() |
331 | d78cbf09 | Panagiotis Kanavos | { |
332 | d78cbf09 | Panagiotis Kanavos | JToken t; |
333 | d78cbf09 | Panagiotis Kanavos | JArray a = |
334 | d78cbf09 | Panagiotis Kanavos | new JArray( |
335 | d78cbf09 | Panagiotis Kanavos | 5, |
336 | d78cbf09 | Panagiotis Kanavos | 6, |
337 | d78cbf09 | Panagiotis Kanavos | new JArray(7, 8), |
338 | d78cbf09 | Panagiotis Kanavos | new JArray(9, 10) |
339 | d78cbf09 | Panagiotis Kanavos | ); |
340 | d78cbf09 | Panagiotis Kanavos | |
341 | d78cbf09 | Panagiotis Kanavos | a[0].Remove(); |
342 | d78cbf09 | Panagiotis Kanavos | |
343 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, (int)a[0]); |
344 | d78cbf09 | Panagiotis Kanavos | |
345 | d78cbf09 | Panagiotis Kanavos | a[1].Remove(); |
346 | d78cbf09 | Panagiotis Kanavos | |
347 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, (int)a[0]); |
348 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(9, 10), a[1])); |
349 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, a.Count()); |
350 | d78cbf09 | Panagiotis Kanavos | |
351 | d78cbf09 | Panagiotis Kanavos | t = a[1]; |
352 | d78cbf09 | Panagiotis Kanavos | t.Remove(); |
353 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, (int)a[0]); |
354 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(t.Next); |
355 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(t.Previous); |
356 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(t.Parent); |
357 | d78cbf09 | Panagiotis Kanavos | |
358 | d78cbf09 | Panagiotis Kanavos | t = a[0]; |
359 | d78cbf09 | Panagiotis Kanavos | t.Remove(); |
360 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(0, a.Count()); |
361 | d78cbf09 | Panagiotis Kanavos | |
362 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(t.Next); |
363 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(t.Previous); |
364 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(t.Parent); |
365 | d78cbf09 | Panagiotis Kanavos | } |
366 | d78cbf09 | Panagiotis Kanavos | |
367 | d78cbf09 | Panagiotis Kanavos | [Test] |
368 | d78cbf09 | Panagiotis Kanavos | public void AfterSelf() |
369 | d78cbf09 | Panagiotis Kanavos | { |
370 | d78cbf09 | Panagiotis Kanavos | JArray a = |
371 | d78cbf09 | Panagiotis Kanavos | new JArray( |
372 | d78cbf09 | Panagiotis Kanavos | 5, |
373 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
374 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
375 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
376 | d78cbf09 | Panagiotis Kanavos | ); |
377 | d78cbf09 | Panagiotis Kanavos | |
378 | d78cbf09 | Panagiotis Kanavos | JToken t = a[1]; |
379 | d78cbf09 | Panagiotis Kanavos | List<JToken> afterTokens = t.AfterSelf().ToList(); |
380 | d78cbf09 | Panagiotis Kanavos | |
381 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, afterTokens.Count); |
382 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2), afterTokens[0])); |
383 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), afterTokens[1])); |
384 | d78cbf09 | Panagiotis Kanavos | } |
385 | d78cbf09 | Panagiotis Kanavos | |
386 | d78cbf09 | Panagiotis Kanavos | [Test] |
387 | d78cbf09 | Panagiotis Kanavos | public void BeforeSelf() |
388 | d78cbf09 | Panagiotis Kanavos | { |
389 | d78cbf09 | Panagiotis Kanavos | JArray a = |
390 | d78cbf09 | Panagiotis Kanavos | new JArray( |
391 | d78cbf09 | Panagiotis Kanavos | 5, |
392 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
393 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
394 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
395 | d78cbf09 | Panagiotis Kanavos | ); |
396 | d78cbf09 | Panagiotis Kanavos | |
397 | d78cbf09 | Panagiotis Kanavos | JToken t = a[2]; |
398 | d78cbf09 | Panagiotis Kanavos | List<JToken> beforeTokens = t.BeforeSelf().ToList(); |
399 | d78cbf09 | Panagiotis Kanavos | |
400 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, beforeTokens.Count); |
401 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JValue(5), beforeTokens[0])); |
402 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(1), beforeTokens[1])); |
403 | d78cbf09 | Panagiotis Kanavos | } |
404 | d78cbf09 | Panagiotis Kanavos | |
405 | d78cbf09 | Panagiotis Kanavos | [Test] |
406 | d78cbf09 | Panagiotis Kanavos | public void HasValues() |
407 | d78cbf09 | Panagiotis Kanavos | { |
408 | d78cbf09 | Panagiotis Kanavos | JArray a = |
409 | d78cbf09 | Panagiotis Kanavos | new JArray( |
410 | d78cbf09 | Panagiotis Kanavos | 5, |
411 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
412 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
413 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
414 | d78cbf09 | Panagiotis Kanavos | ); |
415 | d78cbf09 | Panagiotis Kanavos | |
416 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(a.HasValues); |
417 | d78cbf09 | Panagiotis Kanavos | } |
418 | d78cbf09 | Panagiotis Kanavos | |
419 | d78cbf09 | Panagiotis Kanavos | [Test] |
420 | d78cbf09 | Panagiotis Kanavos | public void Ancestors() |
421 | d78cbf09 | Panagiotis Kanavos | { |
422 | d78cbf09 | Panagiotis Kanavos | JArray a = |
423 | d78cbf09 | Panagiotis Kanavos | new JArray( |
424 | d78cbf09 | Panagiotis Kanavos | 5, |
425 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
426 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
427 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
428 | d78cbf09 | Panagiotis Kanavos | ); |
429 | d78cbf09 | Panagiotis Kanavos | |
430 | d78cbf09 | Panagiotis Kanavos | JToken t = a[1][0]; |
431 | d78cbf09 | Panagiotis Kanavos | List<JToken> ancestors = t.Ancestors().ToList(); |
432 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, ancestors.Count()); |
433 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a[1], ancestors[0]); |
434 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, ancestors[1]); |
435 | d78cbf09 | Panagiotis Kanavos | } |
436 | d78cbf09 | Panagiotis Kanavos | |
437 | d78cbf09 | Panagiotis Kanavos | [Test] |
438 | d78cbf09 | Panagiotis Kanavos | public void Descendants() |
439 | d78cbf09 | Panagiotis Kanavos | { |
440 | d78cbf09 | Panagiotis Kanavos | JArray a = |
441 | d78cbf09 | Panagiotis Kanavos | new JArray( |
442 | d78cbf09 | Panagiotis Kanavos | 5, |
443 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
444 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
445 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
446 | d78cbf09 | Panagiotis Kanavos | ); |
447 | d78cbf09 | Panagiotis Kanavos | |
448 | d78cbf09 | Panagiotis Kanavos | List<JToken> descendants = a.Descendants().ToList(); |
449 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(10, descendants.Count()); |
450 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)descendants[0]); |
451 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(1, 2, 3), descendants[descendants.Count - 4])); |
452 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(1, (int)descendants[descendants.Count - 3]); |
453 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(2, (int)descendants[descendants.Count - 2]); |
454 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(3, (int)descendants[descendants.Count - 1]); |
455 | d78cbf09 | Panagiotis Kanavos | } |
456 | d78cbf09 | Panagiotis Kanavos | |
457 | d78cbf09 | Panagiotis Kanavos | [Test] |
458 | d78cbf09 | Panagiotis Kanavos | public void CreateWriter() |
459 | d78cbf09 | Panagiotis Kanavos | { |
460 | d78cbf09 | Panagiotis Kanavos | JArray a = |
461 | d78cbf09 | Panagiotis Kanavos | new JArray( |
462 | d78cbf09 | Panagiotis Kanavos | 5, |
463 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
464 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
465 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
466 | d78cbf09 | Panagiotis Kanavos | ); |
467 | d78cbf09 | Panagiotis Kanavos | |
468 | d78cbf09 | Panagiotis Kanavos | JsonWriter writer = a.CreateWriter(); |
469 | d78cbf09 | Panagiotis Kanavos | Assert.IsNotNull(writer); |
470 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(4, a.Count()); |
471 | d78cbf09 | Panagiotis Kanavos | |
472 | d78cbf09 | Panagiotis Kanavos | writer.WriteValue("String"); |
473 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, a.Count()); |
474 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("String", (string)a[4]); |
475 | d78cbf09 | Panagiotis Kanavos | |
476 | d78cbf09 | Panagiotis Kanavos | writer.WriteStartObject(); |
477 | d78cbf09 | Panagiotis Kanavos | writer.WritePropertyName("Property"); |
478 | d78cbf09 | Panagiotis Kanavos | writer.WriteValue("PropertyValue"); |
479 | d78cbf09 | Panagiotis Kanavos | writer.WriteEnd(); |
480 | d78cbf09 | Panagiotis Kanavos | |
481 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, a.Count()); |
482 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JObject(new JProperty("Property", "PropertyValue")), a[5])); |
483 | d78cbf09 | Panagiotis Kanavos | } |
484 | d78cbf09 | Panagiotis Kanavos | |
485 | d78cbf09 | Panagiotis Kanavos | [Test] |
486 | d78cbf09 | Panagiotis Kanavos | public void AddFirst() |
487 | d78cbf09 | Panagiotis Kanavos | { |
488 | d78cbf09 | Panagiotis Kanavos | JArray a = |
489 | d78cbf09 | Panagiotis Kanavos | new JArray( |
490 | d78cbf09 | Panagiotis Kanavos | 5, |
491 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
492 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
493 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
494 | d78cbf09 | Panagiotis Kanavos | ); |
495 | d78cbf09 | Panagiotis Kanavos | |
496 | d78cbf09 | Panagiotis Kanavos | a.AddFirst("First"); |
497 | d78cbf09 | Panagiotis Kanavos | |
498 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("First", (string)a[0]); |
499 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, a[0].Parent); |
500 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a[1], a[0].Next); |
501 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, a.Count()); |
502 | d78cbf09 | Panagiotis Kanavos | |
503 | d78cbf09 | Panagiotis Kanavos | a.AddFirst("NewFirst"); |
504 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("NewFirst", (string)a[0]); |
505 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, a[0].Parent); |
506 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a[1], a[0].Next); |
507 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, a.Count()); |
508 | d78cbf09 | Panagiotis Kanavos | |
509 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a[0], a[0].Next.Previous); |
510 | d78cbf09 | Panagiotis Kanavos | } |
511 | d78cbf09 | Panagiotis Kanavos | |
512 | d78cbf09 | Panagiotis Kanavos | [Test] |
513 | d78cbf09 | Panagiotis Kanavos | public void RemoveAll() |
514 | d78cbf09 | Panagiotis Kanavos | { |
515 | d78cbf09 | Panagiotis Kanavos | JArray a = |
516 | d78cbf09 | Panagiotis Kanavos | new JArray( |
517 | d78cbf09 | Panagiotis Kanavos | 5, |
518 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
519 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
520 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
521 | d78cbf09 | Panagiotis Kanavos | ); |
522 | d78cbf09 | Panagiotis Kanavos | |
523 | d78cbf09 | Panagiotis Kanavos | JToken first = a.First; |
524 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)first); |
525 | d78cbf09 | Panagiotis Kanavos | |
526 | d78cbf09 | Panagiotis Kanavos | a.RemoveAll(); |
527 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(0, a.Count()); |
528 | d78cbf09 | Panagiotis Kanavos | |
529 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(first.Parent); |
530 | d78cbf09 | Panagiotis Kanavos | Assert.IsNull(first.Next); |
531 | d78cbf09 | Panagiotis Kanavos | } |
532 | d78cbf09 | Panagiotis Kanavos | |
533 | d78cbf09 | Panagiotis Kanavos | [Test] |
534 | d78cbf09 | Panagiotis Kanavos | [ExpectedException(typeof(ArgumentException), ExpectedMessage = "Can not add Newtonsoft.Json.Linq.JProperty to Newtonsoft.Json.Linq.JArray.")] |
535 | d78cbf09 | Panagiotis Kanavos | public void AddPropertyToArray() |
536 | d78cbf09 | Panagiotis Kanavos | { |
537 | d78cbf09 | Panagiotis Kanavos | JArray a = new JArray(); |
538 | d78cbf09 | Panagiotis Kanavos | a.Add(new JProperty("PropertyName")); |
539 | d78cbf09 | Panagiotis Kanavos | } |
540 | d78cbf09 | Panagiotis Kanavos | |
541 | d78cbf09 | Panagiotis Kanavos | [Test] |
542 | d78cbf09 | Panagiotis Kanavos | [ExpectedException(typeof(ArgumentException), ExpectedMessage = "Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject.")] |
543 | d78cbf09 | Panagiotis Kanavos | public void AddValueToObject() |
544 | d78cbf09 | Panagiotis Kanavos | { |
545 | d78cbf09 | Panagiotis Kanavos | JObject o = new JObject(); |
546 | d78cbf09 | Panagiotis Kanavos | o.Add(5); |
547 | d78cbf09 | Panagiotis Kanavos | } |
548 | d78cbf09 | Panagiotis Kanavos | |
549 | d78cbf09 | Panagiotis Kanavos | [Test] |
550 | d78cbf09 | Panagiotis Kanavos | public void Replace() |
551 | d78cbf09 | Panagiotis Kanavos | { |
552 | d78cbf09 | Panagiotis Kanavos | JArray a = |
553 | d78cbf09 | Panagiotis Kanavos | new JArray( |
554 | d78cbf09 | Panagiotis Kanavos | 5, |
555 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
556 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
557 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
558 | d78cbf09 | Panagiotis Kanavos | ); |
559 | d78cbf09 | Panagiotis Kanavos | |
560 | d78cbf09 | Panagiotis Kanavos | a[0].Replace(new JValue(int.MaxValue)); |
561 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(int.MaxValue, (int)a[0]); |
562 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(4, a.Count()); |
563 | d78cbf09 | Panagiotis Kanavos | |
564 | d78cbf09 | Panagiotis Kanavos | a[1][0].Replace(new JValue("Test")); |
565 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("Test", (string)a[1][0]); |
566 | d78cbf09 | Panagiotis Kanavos | |
567 | d78cbf09 | Panagiotis Kanavos | a[2].Replace(new JValue(int.MaxValue)); |
568 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(int.MaxValue, (int)a[2]); |
569 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(4, a.Count()); |
570 | d78cbf09 | Panagiotis Kanavos | |
571 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(JToken.DeepEquals(new JArray(int.MaxValue, new JArray("Test"), int.MaxValue, new JArray(1, 2, 3)), a)); |
572 | d78cbf09 | Panagiotis Kanavos | } |
573 | d78cbf09 | Panagiotis Kanavos | |
574 | d78cbf09 | Panagiotis Kanavos | [Test] |
575 | d78cbf09 | Panagiotis Kanavos | public void ToStringWithConverters() |
576 | d78cbf09 | Panagiotis Kanavos | { |
577 | d78cbf09 | Panagiotis Kanavos | JArray a = |
578 | d78cbf09 | Panagiotis Kanavos | new JArray( |
579 | d78cbf09 | Panagiotis Kanavos | new JValue(new DateTime(2009, 2, 15, 0, 0, 0, DateTimeKind.Utc)) |
580 | d78cbf09 | Panagiotis Kanavos | ); |
581 | d78cbf09 | Panagiotis Kanavos | |
582 | d78cbf09 | Panagiotis Kanavos | string json = a.ToString(Formatting.Indented, new IsoDateTimeConverter()); |
583 | d78cbf09 | Panagiotis Kanavos | |
584 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(@"[ |
585 | d78cbf09 | Panagiotis Kanavos | ""2009-02-15T00:00:00Z"" |
586 | d78cbf09 | Panagiotis Kanavos | ]", json); |
587 | d78cbf09 | Panagiotis Kanavos | |
588 | d78cbf09 | Panagiotis Kanavos | json = JsonConvert.SerializeObject(a, new IsoDateTimeConverter()); |
589 | d78cbf09 | Panagiotis Kanavos | |
590 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(@"[""2009-02-15T00:00:00Z""]", json); |
591 | d78cbf09 | Panagiotis Kanavos | } |
592 | d78cbf09 | Panagiotis Kanavos | |
593 | d78cbf09 | Panagiotis Kanavos | [Test] |
594 | d78cbf09 | Panagiotis Kanavos | public void ToStringWithNoIndenting() |
595 | d78cbf09 | Panagiotis Kanavos | { |
596 | d78cbf09 | Panagiotis Kanavos | JArray a = |
597 | d78cbf09 | Panagiotis Kanavos | new JArray( |
598 | d78cbf09 | Panagiotis Kanavos | new JValue(new DateTime(2009, 2, 15, 0, 0, 0, DateTimeKind.Utc)) |
599 | d78cbf09 | Panagiotis Kanavos | ); |
600 | d78cbf09 | Panagiotis Kanavos | |
601 | d78cbf09 | Panagiotis Kanavos | string json = a.ToString(Formatting.None, new IsoDateTimeConverter()); |
602 | d78cbf09 | Panagiotis Kanavos | |
603 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(@"[""2009-02-15T00:00:00Z""]", json); |
604 | d78cbf09 | Panagiotis Kanavos | } |
605 | d78cbf09 | Panagiotis Kanavos | |
606 | d78cbf09 | Panagiotis Kanavos | [Test] |
607 | d78cbf09 | Panagiotis Kanavos | public void AddAfterSelf() |
608 | d78cbf09 | Panagiotis Kanavos | { |
609 | d78cbf09 | Panagiotis Kanavos | JArray a = |
610 | d78cbf09 | Panagiotis Kanavos | new JArray( |
611 | d78cbf09 | Panagiotis Kanavos | 5, |
612 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
613 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
614 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
615 | d78cbf09 | Panagiotis Kanavos | ); |
616 | d78cbf09 | Panagiotis Kanavos | |
617 | d78cbf09 | Panagiotis Kanavos | a[1].AddAfterSelf("pie"); |
618 | d78cbf09 | Panagiotis Kanavos | |
619 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)a[0]); |
620 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(1, a[1].Count()); |
621 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("pie", (string)a[2]); |
622 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, a.Count()); |
623 | d78cbf09 | Panagiotis Kanavos | |
624 | d78cbf09 | Panagiotis Kanavos | a[4].AddAfterSelf("lastpie"); |
625 | d78cbf09 | Panagiotis Kanavos | |
626 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("lastpie", (string)a[5]); |
627 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("lastpie", (string)a.Last); |
628 | d78cbf09 | Panagiotis Kanavos | } |
629 | d78cbf09 | Panagiotis Kanavos | |
630 | d78cbf09 | Panagiotis Kanavos | [Test] |
631 | d78cbf09 | Panagiotis Kanavos | public void AddBeforeSelf() |
632 | d78cbf09 | Panagiotis Kanavos | { |
633 | d78cbf09 | Panagiotis Kanavos | JArray a = |
634 | d78cbf09 | Panagiotis Kanavos | new JArray( |
635 | d78cbf09 | Panagiotis Kanavos | 5, |
636 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
637 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
638 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3) |
639 | d78cbf09 | Panagiotis Kanavos | ); |
640 | d78cbf09 | Panagiotis Kanavos | |
641 | d78cbf09 | Panagiotis Kanavos | a[1].AddBeforeSelf("pie"); |
642 | d78cbf09 | Panagiotis Kanavos | |
643 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)a[0]); |
644 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("pie", (string)a[1]); |
645 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, a[1].Parent); |
646 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a[2], a[1].Next); |
647 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, a.Count()); |
648 | d78cbf09 | Panagiotis Kanavos | |
649 | d78cbf09 | Panagiotis Kanavos | a[0].AddBeforeSelf("firstpie"); |
650 | d78cbf09 | Panagiotis Kanavos | |
651 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("firstpie", (string)a[0]); |
652 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(5, (int)a[1]); |
653 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("pie", (string)a[2]); |
654 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a, a[0].Parent); |
655 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(a[1], a[0].Next); |
656 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(6, a.Count()); |
657 | d78cbf09 | Panagiotis Kanavos | |
658 | d78cbf09 | Panagiotis Kanavos | a.Last.AddBeforeSelf("secondlastpie"); |
659 | d78cbf09 | Panagiotis Kanavos | |
660 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual("secondlastpie", (string)a[5]); |
661 | d78cbf09 | Panagiotis Kanavos | Assert.AreEqual(7, a.Count()); |
662 | d78cbf09 | Panagiotis Kanavos | } |
663 | d78cbf09 | Panagiotis Kanavos | |
664 | d78cbf09 | Panagiotis Kanavos | [Test] |
665 | d78cbf09 | Panagiotis Kanavos | public void DeepClone() |
666 | d78cbf09 | Panagiotis Kanavos | { |
667 | d78cbf09 | Panagiotis Kanavos | JArray a = |
668 | d78cbf09 | Panagiotis Kanavos | new JArray( |
669 | d78cbf09 | Panagiotis Kanavos | 5, |
670 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
671 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
672 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3), |
673 | d78cbf09 | Panagiotis Kanavos | new JObject( |
674 | d78cbf09 | Panagiotis Kanavos | new JProperty("First", new JValue(Encoding.UTF8.GetBytes("Hi"))), |
675 | d78cbf09 | Panagiotis Kanavos | new JProperty("Second", 1), |
676 | d78cbf09 | Panagiotis Kanavos | new JProperty("Third", null), |
677 | d78cbf09 | Panagiotis Kanavos | new JProperty("Fourth", new JConstructor("Date", 12345)), |
678 | d78cbf09 | Panagiotis Kanavos | new JProperty("Fifth", double.PositiveInfinity), |
679 | d78cbf09 | Panagiotis Kanavos | new JProperty("Sixth", double.NaN) |
680 | d78cbf09 | Panagiotis Kanavos | ) |
681 | d78cbf09 | Panagiotis Kanavos | ); |
682 | d78cbf09 | Panagiotis Kanavos | |
683 | d78cbf09 | Panagiotis Kanavos | JArray a2 = (JArray)a.DeepClone(); |
684 | d78cbf09 | Panagiotis Kanavos | |
685 | d78cbf09 | Panagiotis Kanavos | Console.WriteLine(a2.ToString(Formatting.Indented)); |
686 | d78cbf09 | Panagiotis Kanavos | |
687 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(a.DeepEquals(a2)); |
688 | d78cbf09 | Panagiotis Kanavos | } |
689 | d78cbf09 | Panagiotis Kanavos | |
690 | d78cbf09 | Panagiotis Kanavos | #if !SILVERLIGHT |
691 | d78cbf09 | Panagiotis Kanavos | [Test] |
692 | d78cbf09 | Panagiotis Kanavos | public void Clone() |
693 | d78cbf09 | Panagiotis Kanavos | { |
694 | d78cbf09 | Panagiotis Kanavos | JArray a = |
695 | d78cbf09 | Panagiotis Kanavos | new JArray( |
696 | d78cbf09 | Panagiotis Kanavos | 5, |
697 | d78cbf09 | Panagiotis Kanavos | new JArray(1), |
698 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2), |
699 | d78cbf09 | Panagiotis Kanavos | new JArray(1, 2, 3), |
700 | d78cbf09 | Panagiotis Kanavos | new JObject( |
701 | d78cbf09 | Panagiotis Kanavos | new JProperty("First", new JValue(Encoding.UTF8.GetBytes("Hi"))), |
702 | d78cbf09 | Panagiotis Kanavos | new JProperty("Second", 1), |
703 | d78cbf09 | Panagiotis Kanavos | new JProperty("Third", null), |
704 | d78cbf09 | Panagiotis Kanavos | new JProperty("Fourth", new JConstructor("Date", 12345)), |
705 | d78cbf09 | Panagiotis Kanavos | new JProperty("Fifth", double.PositiveInfinity), |
706 | d78cbf09 | Panagiotis Kanavos | new JProperty("Sixth", double.NaN) |
707 | d78cbf09 | Panagiotis Kanavos | ) |
708 | d78cbf09 | Panagiotis Kanavos | ); |
709 | d78cbf09 | Panagiotis Kanavos | |
710 | d78cbf09 | Panagiotis Kanavos | ICloneable c = a; |
711 | d78cbf09 | Panagiotis Kanavos | |
712 | d78cbf09 | Panagiotis Kanavos | JArray a2 = (JArray) c.Clone(); |
713 | d78cbf09 | Panagiotis Kanavos | |
714 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(a.DeepEquals(a2)); |
715 | d78cbf09 | Panagiotis Kanavos | } |
716 | d78cbf09 | Panagiotis Kanavos | #endif |
717 | d78cbf09 | Panagiotis Kanavos | |
718 | d78cbf09 | Panagiotis Kanavos | [Test] |
719 | d78cbf09 | Panagiotis Kanavos | public void DoubleDeepEquals() |
720 | d78cbf09 | Panagiotis Kanavos | { |
721 | d78cbf09 | Panagiotis Kanavos | JArray a = |
722 | d78cbf09 | Panagiotis Kanavos | new JArray( |
723 | d78cbf09 | Panagiotis Kanavos | double.NaN, |
724 | d78cbf09 | Panagiotis Kanavos | double.PositiveInfinity, |
725 | d78cbf09 | Panagiotis Kanavos | double.NegativeInfinity |
726 | d78cbf09 | Panagiotis Kanavos | ); |
727 | d78cbf09 | Panagiotis Kanavos | |
728 | d78cbf09 | Panagiotis Kanavos | JArray a2 = (JArray)a.DeepClone(); |
729 | d78cbf09 | Panagiotis Kanavos | |
730 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(a.DeepEquals(a2)); |
731 | d78cbf09 | Panagiotis Kanavos | |
732 | d78cbf09 | Panagiotis Kanavos | double d = 1 + 0.1 + 0.1 + 0.1; |
733 | d78cbf09 | Panagiotis Kanavos | |
734 | d78cbf09 | Panagiotis Kanavos | JValue v1 = new JValue(d); |
735 | d78cbf09 | Panagiotis Kanavos | JValue v2 = new JValue(1.3); |
736 | d78cbf09 | Panagiotis Kanavos | |
737 | d78cbf09 | Panagiotis Kanavos | Assert.IsTrue(v1.DeepEquals(v2)); |
738 | d78cbf09 | Panagiotis Kanavos | } |
739 | d78cbf09 | Panagiotis Kanavos | } |
740 | d78cbf09 | Panagiotis Kanavos | } |