public void PASS_CreateRequest()
 {
     FuzzyLikeThisQuery query = new FuzzyLikeThisQuery(new List<string>(){"field"}, "value");
     Assert.IsNotNull(query);
     Assert.AreEqual("field", query.Fields.First());
     Assert.AreEqual("value", query.Query);
 }
        public void PASS_Serialize()
        {
            FuzzyLikeThisQuery query = new FuzzyLikeThisQuery(new List<string>() { "field" }, "value");
            string json = JsonConvert.SerializeObject(query);
            Assert.IsNotNull(json);

            string expectedJson = "{\"fuzzy_like_this\":{\"fields\":[\"field\"],\"like_text\":\"value\"}}";

            Assert.AreEqual(expectedJson, json);
        }
 public void FAIL_CreateRequest_Query()
 {
     try
     {
         FuzzyLikeThisQuery query = new FuzzyLikeThisQuery(new List<string>() { "field" }, null);
         Assert.Fail();
     }
     catch (ArgumentNullException argEx)
     {
         Assert.AreEqual("query", argEx.ParamName);
     }
 }
 public void FAIL_CreateRequest_Field()
 {
     try
     {
         FuzzyLikeThisQuery query = new FuzzyLikeThisQuery(null, "value");
         Assert.Fail();
     }
     catch (ArgumentNullException argEx)
     {
         Assert.AreEqual("field", 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;
        }