public void PASS_Create() { GeoHashGridAggregate agg = new GeoHashGridAggregate("name", "field", 7); Assert.IsNotNull(agg); Assert.AreEqual("name", agg.Name); Assert.AreEqual("field", agg.Field); Assert.AreEqual((int)7, agg.Precision); }
public void PASS_Serialize() { GeoHashGridAggregate agg = new GeoHashGridAggregate("name", "field", 7) { Size = 12, ShardSize = 13 }; string json = JsonConvert.SerializeObject(agg); Assert.IsNotNull(json); string expectedJson = "{\"name\":{\"geohash_grid\":{\"field\":\"field\",\"precision\":7,\"size\":12,\"shard_size\":13}}}"; Assert.AreEqual(expectedJson, json); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { Dictionary<string, object> wholeDict = serializer.Deserialize<Dictionary<string, object>>(reader); Dictionary<string, object> aggDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(wholeDict.First().Value.ToString()); Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(aggDict.GetString(AggregationTypeEnum.GeoHashGrid.ToString())); GeoHashGridAggregate agg = new GeoHashGridAggregate( wholeDict.First().Key, fieldDict.GetString(_FIELD), fieldDict.GetInt32(_PRECISION, _PRECISION_DEFAULT)); agg.Size = fieldDict.GetInt32(_SIZE, _SIZE_DEFAULT); agg.ShardSize = fieldDict.GetInt32(_SHARD_SIZE, agg.Size); agg.SubAggregations = BucketAggregationBase.DeserializeSubAggregations(aggDict); return agg; }