Skip to content

Commit

Permalink
Fix issue while deserializing null values (#1640)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nitin Gurram authored and smadala committed Jun 14, 2018
1 parent a787752 commit eefdea2
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo c
{
// Converting Json data to array of KeyValuePairs with duplicate keys.
var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(TraitObject[]));
var listOfTraitObjects = serializer.ReadObject(stream) as TraitObject[];
var listOfTraitObjects = serializer.ReadObject(stream) as TraitObject[];

return listOfTraitObjects.Select(i => new KeyValuePair<string, string>(i.Key, i.Value)).ToArray();;
return listOfTraitObjects.Select(i => new KeyValuePair<string, string>(i.Key, i.Value)).ToArray();
}
}

return base.ConvertFrom(context, culture, value);
return null;
}

[System.Runtime.Serialization.DataContract]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo c
}
}

return base.ConvertFrom(context, culture, value);
return null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,5 +85,13 @@ public void CustomKeyValueConverterShouldDeserializeDuplicateKeysKvps()
Assert.AreEqual("key1", data[1].Key);
Assert.AreEqual("val2", data[1].Value);
}

[TestMethod]
public void CustomKeyValueConverterShouldDeserializeNullValue()
{
var data = this.customKeyValueConverter.ConvertFrom(null, CultureInfo.InvariantCulture, null) as KeyValuePair<string, string>[];

Assert.AreEqual(null, data);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,14 @@ public void CustomStringArrayConverterShouldDeserializeEmptyKeyOrValue()
Assert.AreEqual(string.Empty, data[0]);
Assert.AreEqual(string.Empty, data[1]);
}


[TestMethod]
public void CustomStringArrayConverterShouldDeserializeNullValue()
{
var data = this.customStringArrayConverter.ConvertFrom(null, CultureInfo.InvariantCulture, null) as string[];

Assert.AreEqual(null, data);
}
}
}

0 comments on commit eefdea2

Please sign in to comment.