Add a test for deserializing an IEnumerable with implicit conversion

This commit is contained in:
Hugh Bellamy
2016-10-31 09:29:26 +00:00
parent ae074a3469
commit 123e8a54c5
@@ -224,6 +224,34 @@ namespace Newtonsoft.Json.Tests.Serialization
}", strJsonMainClass);
}
[Test]
public void DeserializeGenericIEnumerableWithImplicitConversion()
{
string deserialized = @"{
""Enumerable"": [ ""abc"", ""def"" ]
}";
var enumerableClass = JsonConvert.DeserializeObject<GenericIEnumerableWithImplicitConversion>(deserialized);
var enumerableObject = enumerableClass.Enumerable.ToArray();
Assert.AreEqual(2, enumerableObject.Length);
Assert.AreEqual("abc", enumerableObject[0].Value);
Assert.AreEqual("def", enumerableObject[1].Value);
}
public class GenericIEnumerableWithImplicitConversion
{
public IEnumerable<ClassWithImplicitOperator> Enumerable { get; set; }
}
public class ClassWithImplicitOperator
{
public string Value { get; set; }
public static implicit operator ClassWithImplicitOperator(string value)
{
return new ClassWithImplicitOperator() { Value = value };
}
}
#if !(PORTABLE || PORTABLE40 || NET20 || NET35)
[Test]
public void LargeIntegerAsString()