public void Deserialize_ByteArray_WithICustomObjectCreator_CreatesCustomObjects() { // Arrange var creator = new FakeCustomObjectCreator(); var settings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var serializer = new DefaultSerializer(settings, settings) { DeserializationOptions = new DeserializationOptions() { CustomObjectCreator = creator } }; var jsonBuffer = Encoding.UTF8.GetBytes("{\"subNode\":{\"property\":\"value\"}}"); // Act var result = serializer.Deserialize <JsonDocument>(jsonBuffer, 0, jsonBuffer.Length); // Assert Assert.NotNull(result); Assert.NotNull(result.SubNode); Assert.AreEqual(typeof(DocumentSubNodeInherited), result.SubNode.GetType()); Assert.AreEqual("value", result.SubNode.Property); }
public void Deserialize_Stream_WithICustomObjectCreator_CreatesCustomObjects() { // Arrange var creator = new FakeCustomObjectCreator(); var settings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var serializer = new DefaultSerializer(settings, settings) { DeserializationOptions = new DeserializationOptions() { CustomObjectCreator = creator } }; var stream = new MemoryStream(Encoding.UTF8.GetBytes("{\"subNode\":{\"property\":\"value\"}}")); // Act var result = serializer.Deserialize<JsonDocument>(stream); // Assert Assert.NotNull(result); Assert.NotNull(result.SubNode); Assert.AreEqual(typeof(DocumentSubNodeInherited), result.SubNode.GetType()); Assert.AreEqual("value", result.SubNode.Property); }