Mercurial > pub > ImplabNet
comparison Implab.Test/JsonTests.cs @ 264:3a6e18c432be v3
Added XmlToJson xsl transformation.
Added JsonXmlReader.CreateJsonXmlReader(...) methods
Added SerializationHelpers.SerializeJson/DeserializeJson methods
author | cin |
---|---|
date | Mon, 16 Apr 2018 18:43:49 +0300 |
parents | f1696cdc3d7a |
children | 74e048cbaac8 |
comparison
equal
deleted
inserted
replaced
263:711572866e0c | 264:3a6e18c432be |
---|---|
4 using Implab.Xml; | 4 using Implab.Xml; |
5 using System.Xml; | 5 using System.Xml; |
6 using Implab.Formats; | 6 using Implab.Formats; |
7 using Implab.Formats.Json; | 7 using Implab.Formats.Json; |
8 using System.IO; | 8 using System.IO; |
9 using Implab.Test.Model; | |
9 | 10 |
10 namespace Implab.Test { | 11 namespace Implab.Test { |
11 public class JsonTests { | 12 public class JsonTests { |
12 | 13 |
13 [Fact] | 14 [Fact] |
112 DumpJsonParse("[1,\"\",2,3]"); | 113 DumpJsonParse("[1,\"\",2,3]"); |
113 DumpJsonParse("[{\"info\": [7,8,9]}]"); | 114 DumpJsonParse("[{\"info\": [7,8,9]}]"); |
114 DumpJsonFlatParse("[1,2,\"\",[3,4],{\"info\": [5,6]},{\"num\": [7,8,null]}, null,[null]]"); | 115 DumpJsonFlatParse("[1,2,\"\",[3,4],{\"info\": [5,6]},{\"num\": [7,8,null]}, null,[null]]"); |
115 } | 116 } |
116 | 117 |
118 [Fact] | |
119 public void XmlToJsonTransform() { | |
120 var person = new Person { | |
121 FirstName = "Charlie", | |
122 LastName = "Brown", | |
123 Age = 19, | |
124 AgeSpecified = true | |
125 }; | |
126 | |
127 var doc = SerializationHelpers.SerializeAsXmlDocument(person); | |
128 | |
129 using (var writer = new StringWriter()) { | |
130 XmlToJson.Default.Transform(doc,null, writer); | |
131 Console.WriteLine(writer.ToString()); | |
132 } | |
133 } | |
134 | |
135 [Fact] | |
136 public void JsonSerialization() { | |
137 var person = new Person { | |
138 FirstName = "Charlie", | |
139 LastName = "Brown", | |
140 Age = 19, | |
141 AgeSpecified = true, | |
142 Tags = new [] { "brave", "stupid" } | |
143 }; | |
144 | |
145 var data = SerializationHelpers.SerializeJsonAsString(person); | |
146 Console.WriteLine(data); | |
147 var clone = SerializationHelpers.DeserializeJsonFromString<Person>(data); | |
148 | |
149 Assert.Equal(person.FirstName, clone.FirstName); | |
150 Assert.Equal(person.LastName, clone.LastName); | |
151 Assert.Equal(person.Age, clone.Age); | |
152 Assert.Equal(person.AgeSpecified, clone.AgeSpecified); | |
153 Assert.Equal(person.Tags, person.Tags); | |
154 } | |
155 | |
117 void AssertRead(XmlReader reader, XmlNodeType expected) { | 156 void AssertRead(XmlReader reader, XmlNodeType expected) { |
118 Assert.True(reader.Read()); | 157 Assert.True(reader.Read()); |
119 Console.WriteLine($"{new string(' ', reader.Depth * 2)}{reader}"); | 158 Console.WriteLine($"{new string(' ', reader.Depth * 2)}{reader}"); |
120 Assert.Equal(expected, reader.NodeType); | 159 Assert.Equal(expected, reader.NodeType); |
121 } | 160 } |