using System; using ln.json.mapping; using NUnit.Framework; namespace ln.json.tests { public class JSONTests { enum testEnum1 { A, B, C, D, E, F } enum testEnum2 : ushort { NONE = 0, A = 1, B = 2, C = 4, D = 5, E = 6 } [Flags] enum testEnum3 : ushort { NONE = 0, A = 1, B = 2, C = 4, D = 5, E = 6 } [SetUp] public void Setup() { } [Test] public void Test_00_Primitives() { JSONValue jsonFloat = JSONParser.Parse("1234.564"); Assert.IsTrue(jsonFloat is JSONNumber); Assert.AreEqual(1234.564, jsonFloat.ToNative()); JSONValue jsonInteger = JSONParser.Parse("635462"); Assert.IsTrue(jsonFloat is JSONNumber); Assert.AreEqual(635462, jsonInteger.ToNative()); Assert.Pass(); } [Test] public void TestArrayParser() { JSONParser.Parse("[]"); JSONParser.Parse("[ ]"); JSONParser.Parse("[\t]"); } [Test] public void TestObjectParser() { JSONParser.Parse("{}"); JSONParser.Parse("{ }"); JSONParser.Parse("{\t}"); } [Test] public void TestEnumMappings() { TestEnumSerialization(testEnum1.A); TestEnumSerialization(testEnum1.B); TestEnumSerialization(testEnum1.C); TestEnumSerialization(testEnum1.D); TestEnumSerialization(testEnum1.E); TestEnumSerialization(testEnum1.F); TestEnumSerialization(testEnum2.NONE); TestEnumSerialization(testEnum2.A); TestEnumSerialization(testEnum2.B); TestEnumSerialization(testEnum2.C); TestEnumSerialization(testEnum2.D); TestEnumSerialization(testEnum2.E); TestEnumSerialization(testEnum3.NONE); TestEnumSerialization(testEnum3.A); TestEnumSerialization(testEnum3.B); TestEnumSerialization(testEnum3.C); TestEnumSerialization(testEnum3.D); TestEnumSerialization(testEnum3.E); } bool TestEnumSerialization(object enumValue) { Type enumType = enumValue.GetType(); Assert.IsTrue(JSONMapper.DefaultMapper.Serialize(enumValue, out JSONValue jsonEnum)); JSONMapper.DefaultMapper.Deserialize(jsonEnum, enumType, out object enunValueDeserialized); Assert.AreEqual(enumType, enunValueDeserialized.GetType()); Assert.AreEqual(enumValue, enunValueDeserialized); return true; } } }