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()); EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter(filterDict.First().Key); TokenFilterBase.Deserialize(filter, fieldDict); filter.MinimumSize = fieldDict.GetInt64(_MINIMUM_GRAM, EdgeNGramTokenFilter._MINIMUM_SIZE_DEFAULT); filter.MaximumSize = fieldDict.GetInt64(_MAXIMUM_GRAM, EdgeNGramTokenFilter._MAXIMUM_SIZE_DEFAULT); filter.Side = SideEnum.Find(fieldDict.GetString(_SIDE, EdgeNGramTokenFilter._SIDE_DEFAULT.ToString())); return filter; }
public void PASS_Serialize() { EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter("name") { MinimumSize = 2, MaximumSize = 5, Side = SideEnum.Back }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"type\":\"edgeNGram\",\"min_gram\":2,\"max_gram\":5,\"side\":\"back\"}}"; Assert.AreEqual(expectedJson, json); }
public void PASS_Create() { EdgeNGramTokenFilter filter = new EdgeNGramTokenFilter("name") { MinimumSize = 2, MaximumSize = 5, Side = SideEnum.Back }; Assert.IsNotNull(filter); Assert.AreEqual("name", filter.Name); Assert.AreEqual((int)2, filter.MinimumSize); Assert.AreEqual((int)5, filter.MaximumSize); Assert.AreEqual(SideEnum.Back, filter.Side); }