mirror of
https://github.com/ICDSystems/ICD.Common.Utils.git
synced 2026-01-11 19:44:55 +00:00
119 lines
2.7 KiB
C#
119 lines
2.7 KiB
C#
#if NETFRAMEWORK
|
|
extern alias RealNewtonsoft;
|
|
using RealNewtonsoft.Newtonsoft.Json;
|
|
#else
|
|
using Newtonsoft.Json;
|
|
#endif
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using ICD.Common.Utils.Extensions;
|
|
using ICD.Common.Utils.IO;
|
|
using NUnit.Framework;
|
|
|
|
namespace ICD.Common.Utils.Tests.Extensions
|
|
{
|
|
[TestFixture]
|
|
public sealed class JsonExtensionsTest
|
|
{
|
|
[Test]
|
|
public void WriteObjectTest()
|
|
{
|
|
Assert.Inconclusive();
|
|
}
|
|
|
|
[Test]
|
|
public void ReadObjectTest()
|
|
{
|
|
const string json =
|
|
"{\"name\":\"Test\",\"help\":\"Test test.\",\"type\":\"System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e\",\"value\":\"Test\"}";
|
|
|
|
Dictionary<string, string> expected = new Dictionary<string, string>
|
|
{
|
|
{"name", "Test"},
|
|
{"help", "Test test."},
|
|
{"type", "System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"},
|
|
{"value", "Test"}
|
|
};
|
|
|
|
Dictionary<string, string> deserialized = new Dictionary<string, string>();
|
|
|
|
using (IcdStringReader textReader = new IcdStringReader(json))
|
|
{
|
|
using (JsonReader reader = new JsonTextReader(textReader.WrappedTextReader))
|
|
{
|
|
JsonSerializer serializer = new JsonSerializer();
|
|
|
|
reader.Read();
|
|
reader.ReadObject(serializer, (p, r, s) => deserialized.Add(p, (string)r.Value));
|
|
}
|
|
}
|
|
|
|
Assert.IsTrue(deserialized.DictionaryEqual(expected));
|
|
}
|
|
|
|
[Test]
|
|
public void GetValueAsIntTest()
|
|
{
|
|
Assert.Inconclusive();
|
|
}
|
|
|
|
[Test]
|
|
public void GetValueAsStringTest()
|
|
{
|
|
Assert.Inconclusive();
|
|
}
|
|
|
|
[Test]
|
|
public void GetValueAsBoolTest()
|
|
{
|
|
Assert.Inconclusive();
|
|
}
|
|
|
|
[Test]
|
|
public void GetValueAsEnumTest()
|
|
{
|
|
Assert.Inconclusive();
|
|
}
|
|
|
|
[Test]
|
|
public void SerializeArrayTest()
|
|
{
|
|
JsonSerializer serializer = new JsonSerializer();
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
using (StringWriter stringWriter = new StringWriter(stringBuilder))
|
|
{
|
|
using (JsonWriter writer = new JsonTextWriter(stringWriter))
|
|
{
|
|
serializer.SerializeArray(writer, new[] {1, 2, 3, 4});
|
|
}
|
|
}
|
|
|
|
string json = stringBuilder.ToString();
|
|
Assert.AreEqual("[1,2,3,4]", json);
|
|
}
|
|
|
|
[Test]
|
|
public void DeserializeArrayTest()
|
|
{
|
|
const string json = "[1,2,3,4]";
|
|
|
|
JsonSerializer serializer = new JsonSerializer();
|
|
int[] deserialized;
|
|
|
|
using (StringReader stringReader = new StringReader(json))
|
|
{
|
|
using (JsonReader reader = new JsonTextReader(stringReader))
|
|
{
|
|
reader.Read();
|
|
deserialized = serializer.DeserializeArray<int>(reader).ToArray();
|
|
}
|
|
}
|
|
|
|
Assert.IsTrue(deserialized.SequenceEqual(new[] {1, 2, 3, 4}));
|
|
}
|
|
}
|
|
}
|