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); } }