Merge pull request #1064 from hughbe/implicit-conversion

Add a test for deserializing an IEnumerable with implicit conversion
This commit is contained in:
James Newton-King
2016-10-31 23:22:30 +13:00
committed by GitHub
@@ -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()