public void FAIL_CreateQuery_NoQueries()
 {
     try
     {
         BoostingQuery query = new BoostingQuery(null, null, 1.0);
         Assert.Fail();
     }
     catch(ArgumentNullException argEx)
     {
         Assert.AreEqual("query", argEx.ParamName);
     }
 }
        public void PASS_Serialize()
        {
            BoostingQuery query = new BoostingQuery(
                    new TermQuery("field1", "value1"),
                    new TermQuery("field1", "value2"),
                    1.0);

            string json = JsonConvert.SerializeObject(query);

            Assert.IsNotNull(json);

            string expectedJson = "{\"boosting\":{\"positive\":{\"term\":{\"field1\":\"value2\"}},\"negative\":{\"term\":{\"field1\":\"value1\"}},\"negative_boost\":1.0}}";
            Assert.AreEqual(expectedJson, json);
        }
 public void FAIL_CreateQuery_NegativeBoost()
 {
     try
     {
         BoostingQuery query = new BoostingQuery(
             new TermQuery("field1", "value1"), 
             new TermQuery("field1", "value1"), 
             0);
         Assert.Fail();
     }
     catch (ArgumentOutOfRangeException argEx)
     {
         Assert.AreEqual("negativeBoost", argEx.ParamName);
     }
 }
Esempio n. 4
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            Dictionary<string, object> boostingDict = serializer.Deserialize<Dictionary<string, object>>(reader);

            BoostingQuery query = new BoostingQuery();

            if (boostingDict.First().Key.Equals(QueryTypeEnum.Boosting.ToString(), StringComparison.OrdinalIgnoreCase))
                boostingDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(boostingDict.First().Value.ToString());

            if (boostingDict.ContainsKey(_POSITIVE))
                query.PositiveQuery = JsonConvert.DeserializeObject<IQuery>(boostingDict[_POSITIVE].ToString());
            if (boostingDict.ContainsKey(_NEGATIVE))
                query.NegativeQuery = JsonConvert.DeserializeObject<IQuery>(boostingDict[_NEGATIVE].ToString());

            query.NegativeBoost = boostingDict.GetDouble(_NEGATIVE_BOOST, default(Double));
            query.QueryName = boostingDict.GetStringOrDefault(QuerySerializer._QUERY_NAME);

            return query;
        }
 public void PASS_CreateQuery()
 {
     BoostingQuery query = new BoostingQuery(new TermQuery("field1", "value1"), null, 1.0);
     Assert.IsNotNull(query);
 }