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()); PatternCaptureTokenFilter filter = new PatternCaptureTokenFilter(filterDict.First().Key, JsonConvert.DeserializeObject<IEnumerable<string>>(fieldDict.GetString(_PATTERNS))); TokenFilterBase.Deserialize(filter, fieldDict); filter.PreserveOriginal = fieldDict.GetBool(_PRESERVE_ORIGINAL, PatternCaptureTokenFilter._PRESERVE_ORIGINAL_DEFAULT); return filter; }
public void PASS_Serialize() { PatternCaptureTokenFilter filter = new PatternCaptureTokenFilter("name", new List<string>() { "p1", "p2" }) { Version = 2.4, PreserveOriginal = false }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"pattern_capture\",\"version\":2.4,\"preserve_original\":false,\"patterns\":[\"p1\",\"p2\"]}}"; Assert.AreEqual(expectedJson, json); }
public void PASS_Create() { PatternCaptureTokenFilter filter = new PatternCaptureTokenFilter("name", new List<string>() { "p1", "p2" }) { Version = 2.4, PreserveOriginal = false }; Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual(2.4, filter.Version); Assert.AreEqual("p1", filter.Patterns.First()); Assert.AreEqual("p2", filter.Patterns.Last()); Assert.AreEqual(false, filter.PreserveOriginal); }