public void PASS_CreateRequest() { FuzzyLikeThisFieldQuery query = new FuzzyLikeThisFieldQuery("field", "value"); Assert.IsNotNull(query); Assert.AreEqual("field", query.Fields.First()); Assert.AreEqual("value", query.Query); }
public void PASS_Serialize() { FuzzyLikeThisFieldQuery query = new FuzzyLikeThisFieldQuery("field", "value"); string json = JsonConvert.SerializeObject(query); Assert.IsNotNull(json); string expectedJson = "{\"fuzzy_like_this_field\":{\"field\":{\"like_text\":\"value\"}}}"; Assert.AreEqual(expectedJson, json); }
public void FAIL_CreateRequest_Query() { try { FuzzyLikeThisFieldQuery query = new FuzzyLikeThisFieldQuery("field", null); Assert.Fail(); } catch (ArgumentNullException argEx) { Assert.AreEqual("query", argEx.ParamName); } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> fieldDict = serializer.Deserialize<Dictionary<string, object>>(reader); QueryTypeEnum queryType = QueryTypeEnum.FuzzyLikeThis; queryType = QueryTypeEnum.Find(fieldDict.First().Key); FuzzyLikeThisBase query = null; if (queryType != null) { fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString()); } if (fieldDict.ContainsKey(_LIKE_TEXT)) { query = new FuzzyLikeThisQuery(); } else { query = new FuzzyLikeThisFieldQuery(); query.Fields = new List<string>() { fieldDict.First().Key }; fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString()); } if(fieldDict.ContainsKey(_FIELDS)) query.Fields = JsonConvert.DeserializeObject<IEnumerable<string>>(fieldDict.GetString(_FIELDS)); query.Query = fieldDict.GetString(_LIKE_TEXT); query.Analyzer = fieldDict.GetStringOrDefault(_ANALYZER); query.Boost = fieldDict.GetDouble(QuerySerializer._BOOST, QuerySerializer._BOOST_DEFAULT); query.Fuzziness = fieldDict.GetDouble(_FUZZINESS, _FUZZINESS_DEFAULT); query.IgnoreTermFrequency = fieldDict.GetBool(_IGNORE_TERM_FREQUENCY, _IGNORE_TERM_FREQUENCY_DEFAULT); query.MaximumQueryTerms = fieldDict.GetInt32(_MAX_QUERY_TERMS, _MAX_QUERY_TERMS_DEFAULT); query.PrefixLength = fieldDict.GetInt32OrDefault(_PREFIX_LENGTH); query.QueryName = fieldDict.GetStringOrDefault(QuerySerializer._QUERY_NAME); return query; }