public void PASS_Serializer()
 {
     MissingFilter filter = new MissingFilter("field");
     string json = JsonConvert.SerializeObject(filter);
     Assert.IsNotNull(json);
     string expectedJson = "{\"missing\":{\"field\":\"field\"}}";
     Assert.AreEqual(expectedJson, json);
 }
 public void PASS_CreateFilter()
 {
     MissingFilter filter = new MissingFilter("field");
     Assert.IsNotNull(filter);
     Assert.AreEqual("field", filter.Field);
     Assert.AreEqual(false, filter.Existence);
     Assert.AreEqual(false, filter.NullValue);
 }
 public void PASS_Serializer_Existence_NullValue()
 {
     MissingFilter filter = new MissingFilter("field") 
     { 
         Existence = true,
         NullValue = true
     };
     string json = JsonConvert.SerializeObject(filter);
     Assert.IsNotNull(json);
     string expectedJson = "{\"missing\":{\"field\":\"field\",\"existence\":true,\"null_value\":true}}";
     Assert.AreEqual(expectedJson, json);
 }
 public void FAIL_CreateFilter_Field()
 {
     try
     {
         MissingFilter filter = new MissingFilter(null);
         Assert.Fail();
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("field", ex.ParamName);
     }
 }
        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(FilterTypeEnum.Missing.ToString()))
                fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString());

            MissingFilter filter = new MissingFilter(fieldDict.GetString(_FIELD));
            filter.Existence = fieldDict.GetBool(_EXISTENCE, _EXISTENCE_DEFAULT);
            filter.NullValue = fieldDict.GetBool(_NULL_VALUE, _NULL_VALUE_DEFAULT);
            filter.CacheKey = fieldDict.GetStringOrDefault(FilterSerializer._CACHE_KEY);
            filter.FilterName = fieldDict.GetStringOrDefault(FilterSerializer._FILTER_NAME);

            return filter;
        }