public void PASS_Serialize() { TopChildrenQuery query = new TopChildrenQuery("child", new TermQuery("field", "value")); string json = JsonConvert.SerializeObject(query); Assert.IsNotNull(json); string expectedJson = "{\"top_children\":{\"type\":\"child\",\"query\":{\"term\":{\"field\":\"value\"}}}}"; Assert.AreEqual(expectedJson, json); }
public void FAIL_CreateQuery_Query() { try { TopChildrenQuery query = new TopChildrenQuery("child", null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("query", ex.ParamName); } }
public void FAIL_CreateQuery_DocumentType() { try { TopChildrenQuery query = new TopChildrenQuery(null, null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("documentType", ex.ParamName); } }
public void PASS_CreateQuery() { TopChildrenQuery query = new TopChildrenQuery("child", new TermQuery("field", "value")); Assert.IsNotNull(query); Assert.AreEqual("child", query.DocumentType); Assert.IsTrue(query.Query is TermQuery); TermQuery termQuery = query.Query as TermQuery; Assert.AreEqual("field", termQuery.Field); Assert.AreEqual("value", termQuery.Value); Assert.AreEqual(ScoreTypeEnum.Maximum, query.Score); Assert.IsNull(query.Scope); Assert.AreEqual(5, query.Factor); Assert.AreEqual(2, query.IncrementalFactor); }
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(QueryTypeEnum.TopChildren.ToString())) fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString()); TopChildrenQuery query = new TopChildrenQuery( fieldDict.GetString(_TYPE), JsonConvert.DeserializeObject<IQuery>(fieldDict.GetString(_QUERY))); query.Factor = fieldDict.GetInt32(_FACTOR, _FACTOR_DEFAULT); query.IncrementalFactor = fieldDict.GetInt32(_INCREMENTAL_FACTOR, _INCREMENTAL_FACTOR_DEFAULT); query.Scope = fieldDict.GetStringOrDefault(_SCOPE); query.Score = ScoreTypeEnum.Find(fieldDict.GetString(_SCORE, _SCORE_DEFAULT.ToString())); query.QueryName = fieldDict.GetStringOrDefault(QuerySerializer._QUERY_NAME); return query; }