public void MissingKnownType() { string json = this.GetTestResource("CommunicationArrayMissing.json"); JObject obj = JObject.Parse(json); JsonKnownTypeConverter converter = new JsonKnownTypeConverter(); JsonConvert.DeserializeObject<Communication[]>(obj.SelectToken("Communication").ToString(), converter); }
public void HandlesNull() { string json = this.GetTestResource("CommunicationArrayNull.json"); JObject obj = JObject.Parse(json); JsonKnownTypeConverter converter = new JsonKnownTypeConverter(); Communication[] array = JsonConvert.DeserializeObject<Communication[]>(obj.SelectToken("Communication").ToString(), converter); Assert.IsNull(array[0]); }
public void ConvertsToCorrectKnownTypes() { string json = this.GetTestResource("CommunicationArray.json"); JObject obj = JObject.Parse(json); JsonKnownTypeConverter converter = new JsonKnownTypeConverter(); Communication[] array = JsonConvert.DeserializeObject<Communication[]>(obj.SelectToken("Communication").ToString(), converter); Assert.IsNotNull(array, "Deserialization resulted in null"); Assert.AreEqual(3, array.Count(), "Deserialization resulted in array of incorrect size"); Assert.IsInstanceOfType(array[0], typeof(EmailCommunication), "Expected [first] object to be of type [EmailCommunication]"); Assert.IsInstanceOfType(array[1], typeof(SmsCommunication), "Expected [second] object to be of type [SmsCommunication]"); Assert.IsInstanceOfType(array[2], typeof(EmailCommunication), "Expected [third] object to be of type [EmailCommunication]"); }