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()); NGramTokenFilter filter = new NGramTokenFilter(filterDict.First().Key); TokenFilterBase.Deserialize(filter, fieldDict); filter.MinimumSize = fieldDict.GetInt64(_MINIMUM_GRAM, NGramTokenFilter._MINIMUM_SIZE_DEFAULT); filter.MaximumSize = fieldDict.GetInt64(_MAXIMUM_GRAM, NGramTokenFilter._MAXIMUM_SIZE_DEFAULT); return filter; }
public void PASS_Create() { NGramTokenFilter filter = new NGramTokenFilter("name") { MinimumSize = 2, MaximumSize = 5 }; Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual((int)2, filter.MinimumSize); Assert.AreEqual((int)5, filter.MaximumSize); }
public void PASS_Serialize() { NGramTokenFilter filter = new NGramTokenFilter("name") { MinimumSize = 2, MaximumSize = 5 }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"nGram\",\"min_gram\":2,\"max_gram\":5}}"; Assert.AreEqual(expectedJson, json); }