public void PASS_CreateFilter_Terms() { TermsFilter filter = new TermsFilter("field", new List<object>() { "1", "2" }); Assert.IsNotNull(filter); Assert.AreEqual("field", filter.Field); Assert.AreEqual(2, filter.Terms.Count()); }
public void PASS_CreateFilter_IndexedTerms() { TermsFilter filter = new TermsFilter("field", "index", "type", "id", "path"); Assert.IsNotNull(filter); Assert.AreEqual("field", filter.Field); Assert.AreEqual("index", filter.Index); Assert.AreEqual("type", filter.DocumentType); Assert.AreEqual("id", filter.DocumentId); Assert.AreEqual("path", filter.Path); }
public void FAIL_CreateFilter_IndexTerms_DocumentType() { try { TermsFilter filter = new TermsFilter("field", "index", "", "id", "path"); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("documentType", ex.ParamName); } }
public void FAIL_CreateFilter_Terms_Terms() { try { TermsFilter filter = new TermsFilter("field", null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("terms", ex.ParamName); } }
public void FAIL_CreateFilter_Terms_Field() { try { TermsFilter filter = new TermsFilter(null, new List<object>() { "1", "2" }); 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.Terms.ToString()) || fieldDict.ContainsKey(FilterTypeEnum.In.ToString())) fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldDict.First().Value.ToString()); KeyValuePair<string, object> fieldKvp = fieldDict.FirstOrDefault(x => !_KnownFields.Contains(x.Key, StringComparer.OrdinalIgnoreCase)); if (string.IsNullOrWhiteSpace(fieldKvp.Key)) throw new RequiredPropertyMissingException("field"); TermsFilter filter = null; Dictionary<string, object> indexTermsDict = null; try { indexTermsDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(fieldKvp.Value.ToString()); } catch { filter = new TermsFilter(fieldKvp.Key, JsonConvert.DeserializeObject<IEnumerable<object>>(fieldKvp.Value.ToString())); filter.ExecutionType = ExecutionTypeEnum.Find(fieldDict.GetString(_EXECUTION, _EXECUTION_DEFAULT.ToString())); FilterSerializer.DeserializeBaseValues(filter, filter.ExecutionType.CacheDefault, fieldDict); return filter; } filter = new TermsFilter(fieldKvp.Key, indexTermsDict.GetString(_INDEX), indexTermsDict.GetString(_TYPE), indexTermsDict.GetString(_ID), indexTermsDict.GetString(_PATH)); filter.Routing = indexTermsDict.GetStringOrDefault(_ROUTING); FilterSerializer.DeserializeBaseValues(filter, _INDEXED_TERMS_CACHE_DEFAULT, fieldDict); return filter; }
public void PASS_Serialize_IndexedTerms() { TermsFilter filter = new TermsFilter("field", "index", "type", "id", "path") { CacheKey = "cache_key"}; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"terms\":{\"field\":{\"index\":\"index\",\"type\":\"type\",\"id\":\"id\",\"path\":\"path\"},\"_cache_key\":\"cache_key\"}}"; Assert.AreEqual(expectedJson, json); }
public void PASS_Serialize_Terms_BoolNoCache() { TermsFilter filter = new TermsFilter("field", new List<object>() { "1", "2" }) { ExecutionType = ExecutionTypeEnum.BoolNoCache }; string json = JsonConvert.SerializeObject(filter); Assert.IsNotNull(json); string expectedJson = "{\"terms\":{\"field\":[\"1\",\"2\"],\"execution\":\"bool_nocache\",\"_cache\":true}}"; Assert.AreEqual(expectedJson, json); }