public void PASS_Create() { MappingCharacterFilter filter = new MappingCharacterFilter("name", new List<CharacterMapping>() { new CharacterMapping("ph", "f"), new CharacterMapping("qu", "q") }); Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual("ph=>f", filter.Mappings.First().ToString()); Assert.AreEqual("qu=>q", filter.Mappings.Last().ToString()); }
public void PASS_Serialize() { MappingCharacterFilter filter = new MappingCharacterFilter("name", new List<CharacterMapping>() { new CharacterMapping("ph", "f"), new CharacterMapping("qu", "q") }); string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"mapping\",\"mappings\":[\"ph=>f\",\"qu=>q\"]}}"; Assert.AreEqual(expectedJson, json); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> filterDict = serializer.Deserialize<Dictionary<string, object>>(reader); Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(filterDict.First().Value.ToString()); string filterName = filterDict.First().Key; MappingCharacterFilter filter = null; if (fieldDict.ContainsKey(_MAPPINGS)) { filter = new MappingCharacterFilter(filterName, JsonConvert.DeserializeObject<IEnumerable<CharacterMapping>>(fieldDict.GetString(_MAPPINGS))); } else if(fieldDict.ContainsKey(_MAPPINGS_PATH)) { filter = new MappingCharacterFilter(filterName, fieldDict.GetString(_MAPPINGS_PATH)); } else { throw new RequiredPropertyMissingException(_MAPPINGS + "/" + _MAPPINGS_PATH); } CharacterFilterBase.Deserialize(filter, fieldDict); return filter; }