129 lines
3.7 KiB
C#
129 lines
3.7 KiB
C#
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;
|
|
}
|
|
|
|
[Test]
|
|
public void TestMapper()
|
|
{
|
|
TestPrimitiveMapping((byte)0x80);
|
|
TestPrimitiveMapping((short)0x80);
|
|
TestPrimitiveMapping((ushort)0x80);
|
|
TestPrimitiveMapping((int)0x80);
|
|
TestPrimitiveMapping((uint)0x80);
|
|
TestPrimitiveMapping((long)0x80);
|
|
TestPrimitiveMapping((ulong)0x80);
|
|
}
|
|
|
|
void TestPrimitiveMapping(object primitiveValue)
|
|
{
|
|
Type primitiveType = primitiveValue.GetType();
|
|
Assert.IsTrue(JSONMapper.DefaultMapper.Serialize(primitiveValue, out JSONValue jsonPrimitive));
|
|
JSONMapper.DefaultMapper.Deserialize(jsonPrimitive, primitiveType, out object primitiveValue2);
|
|
Assert.AreEqual(primitiveValue, primitiveValue2);
|
|
Assert.AreEqual(primitiveType, primitiveValue2.GetType());
|
|
|
|
}
|
|
|
|
}
|
|
} |