public void PASS_Serialize_Filter() { HasChildFilter filter = new HasChildFilter("child", new TermFilter("field", "value")); string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"has_child\":{\"type\":\"child\",\"filter\":{\"term\":{\"field\":\"value\"}}}}"; Assert.AreEqual(expectedJson, json); }
public void PASS_CreateFilter_Query() { HasChildFilter filter = new HasChildFilter("child", new TermQuery("field", "value")); Assert.IsNotNull("child", filter.ChildType); Assert.IsTrue(filter.Query is TermQuery); TermQuery termQuery = filter.Query as TermQuery; Assert.AreEqual("field", termQuery.Field); Assert.AreEqual("value", termQuery.Value); }
public void PASS_CreateFilter_Filter() { HasChildFilter filter = new HasChildFilter("child", new TermFilter("field", "value")); Assert.IsNotNull("child", filter.ChildType); Assert.IsTrue(filter.Filter is TermFilter); TermFilter termFilter = filter.Filter as TermFilter; Assert.AreEqual("field", termFilter.Field); Assert.AreEqual("value", termFilter.Value); }
public void FAIL_CreateFilter_Query() { try { HasChildFilter filter = new HasChildFilter("child", (IQuery)null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("query", ex.ParamName); } }
public void FAIL_CreateFilter_ChildType() { try { HasChildFilter filter = new HasChildFilter(null, (IFilter)null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("childType", ex.ParamName); } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> fieldDict = serializer.Deserialize<Dictionary<string, object>>(reader); if (fieldDict.ContainsKey(FilterTypeEnum.HasChild.ToString())) fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString()); HasChildFilter filter = null; if(fieldDict.ContainsKey(_FILTER)) { filter = new HasChildFilter( fieldDict.GetString(_TYPE), JsonConvert.DeserializeObject<IFilter>(fieldDict.GetString(_FILTER))); } else { filter = new HasChildFilter( fieldDict.GetString(_TYPE), JsonConvert.DeserializeObject<IQuery>(fieldDict.GetString(_QUERY))); } filter.FilterName = fieldDict.GetStringOrDefault(FilterSerializer._FILTER_NAME); return filter; }