diff --git a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java index 62dfce2409b..94e75d76cdd 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java +++ b/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramBuilder.java @@ -41,8 +41,8 @@ public class DateHistogramBuilder extends ValuesSourceAggregationBuilder buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(2)); + + DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-10"); + assertThat(bucket, Matchers.notNullValue()); + assertThat(bucket.getDocCount(), equalTo(2l)); + + bucket = histo.getBucketByKey("2014-03-11"); + assertThat(bucket, Matchers.notNullValue()); + assertThat(bucket.getDocCount(), equalTo(3l)); + } + + @Test + public void singleValue_WithPostOffset() throws Exception { + prepareCreate("idx2").addMapping("type", "date", "type=date").execute().actionGet(); + IndexRequestBuilder[] reqs = new IndexRequestBuilder[5]; + DateTime date = date("2014-03-11T00:00:00+00:00"); + for (int i = 0; i < reqs.length; i++) { + reqs[i] = client().prepareIndex("idx2", "type", "" + i).setSource(jsonBuilder().startObject().field("date", date).endObject()); + date = date.plusHours(6); + } + indexRandom(true, reqs); + + SearchResponse response = client().prepareSearch("idx2") + .setQuery(matchAllQuery()) + .addAggregation(dateHistogram("date_histo") + .field("date") + .postOffset("2d") + .interval(DateHistogram.Interval.DAY) + .format("yyyy-MM-dd")) + .execute().actionGet(); + + assertThat(response.getHits().getTotalHits(), equalTo(5l)); + + DateHistogram histo = response.getAggregations().get("date_histo"); + Collection buckets = histo.getBuckets(); + assertThat(buckets.size(), equalTo(2)); + + DateHistogram.Bucket bucket = histo.getBucketByKey("2014-03-13"); + assertThat(bucket, Matchers.notNullValue()); + assertThat(bucket.getDocCount(), equalTo(4l)); + + bucket = histo.getBucketByKey("2014-03-14"); + assertThat(bucket, Matchers.notNullValue()); + assertThat(bucket.getDocCount(), equalTo(1l)); + } + @Test public void singleValue_WithPreZone_WithAadjustLargeInterval() throws Exception { prepareCreate("idx2").addMapping("type", "date", "type=date").execute().actionGet();