Exemplo n.º 1
0
        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.Wildcard.ToString()))
                fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString());

            Dictionary<string, object> internalDict = null;
            try
            {
                internalDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString());
            }
            catch
            {
                return new WildcardQuery(fieldDict.First().Key, fieldDict.First().Value.ToString());
            }

            string value = null;
            if(internalDict.ContainsKey(_WILDCARD))
                value = internalDict.GetString(_WILDCARD);
            else if(internalDict.ContainsKey(_VALUE))
                value = internalDict.GetString(_VALUE);
            else
                throw new RequiredPropertyMissingException(_WILDCARD + "/" + _VALUE);

            WildcardQuery query = new WildcardQuery(fieldDict.First().Key, value);
            query.Boost = internalDict.GetDouble(QuerySerializer._BOOST, QuerySerializer._BOOST_DEFAULT);
            query.QueryName = internalDict.GetStringOrDefault(QuerySerializer._QUERY_NAME);
            return query;
        }
 public void PASS_Serialize()
 {
     WildcardQuery query = new WildcardQuery("field", "value");
     string json = JsonConvert.SerializeObject(query);
     Assert.IsNotNull(json);
     string expectedJson = "{\"wildcard\":{\"field\":\"value\"}}";
     Assert.IsNotNull(expectedJson, json);
 }
 public void PASS_CreateQuery()
 {
     WildcardQuery query = new WildcardQuery("field", "value");
     Assert.IsNotNull(query);
     Assert.AreEqual("field", query.Field);
     Assert.AreEqual("value", query.Value);
     Assert.AreEqual(1.0, query.Boost);
 }
 public void FAIL_CreateQuery_Value()
 {
     try
     {
         WildcardQuery query = new WildcardQuery("field", null);
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("value", ex.ParamName);
     }  
 }