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]");
 }