1// Copyright 2012-present Oliver Eilhard. All rights reserved. 2// Use of this source code is governed by a MIT-license. 3// See http://olivere.mit-license.org/license.txt for details. 4 5package elastic 6 7import ( 8 "encoding/json" 9 "testing" 10) 11 12func TestExtendedStatsBucketAggregationWithGapPolicy(t *testing.T) { 13 agg := NewExtendedStatsBucketAggregation().BucketsPath("the_sum").GapPolicy("skip") 14 src, err := agg.Source() 15 if err != nil { 16 t.Fatal(err) 17 } 18 data, err := json.Marshal(src) 19 if err != nil { 20 t.Fatalf("marshaling to JSON failed: %v", err) 21 } 22 got := string(data) 23 expected := `{"extended_stats_bucket":{"buckets_path":"the_sum","gap_policy":"skip"}}` 24 if got != expected { 25 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 26 } 27} 28 29func TestExtendedStatsBucketAggregation(t *testing.T) { 30 31 agg := NewExtendedStatsBucketAggregation().BucketsPath("another_test") 32 src, err := agg.Source() 33 if err != nil { 34 t.Fatal(err) 35 } 36 data, err := json.Marshal(src) 37 if err != nil { 38 t.Fatalf("marshaling to JSON failed: %v", err) 39 } 40 got := string(data) 41 expected := `{"extended_stats_bucket":{"buckets_path":"another_test"}}` 42 if got != expected { 43 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 44 } 45} 46 47func TestExtendedStatsBucketAggregationWithSigma(t *testing.T) { 48 agg := NewExtendedStatsBucketAggregation().BucketsPath("sigma_test") 49 50 agg.Sigma(3) 51 src, err := agg.Source() 52 if err != nil { 53 t.Fatal(err) 54 } 55 data, err := json.Marshal(src) 56 if err != nil { 57 t.Fatalf("marshaling to JSON failed: %v", err) 58 } 59 got := string(data) 60 expected := `{"extended_stats_bucket":{"buckets_path":"sigma_test","sigma":3}}` 61 if got != expected { 62 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 63 } 64} 65