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 TestRangeQuery(t *testing.T) { 13 q := NewRangeQuery("postDate").From("2010-03-01").To("2010-04-01").Boost(3) 14 q = q.QueryName("my_query") 15 src, err := q.Source() 16 if err != nil { 17 t.Fatal(err) 18 } 19 data, err := json.Marshal(src) 20 if err != nil { 21 t.Fatalf("marshaling to JSON failed: %v", err) 22 } 23 got := string(data) 24 expected := `{"range":{"_name":"my_query","postDate":{"boost":3,"from":"2010-03-01","include_lower":true,"include_upper":true,"to":"2010-04-01"}}}` 25 if got != expected { 26 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 27 } 28} 29 30func TestRangeQueryWithTimeZone(t *testing.T) { 31 q := NewRangeQuery("born"). 32 Gte("2012-01-01"). 33 Lte("now"). 34 TimeZone("+1:00") 35 src, err := q.Source() 36 if err != nil { 37 t.Fatal(err) 38 } 39 data, err := json.Marshal(src) 40 if err != nil { 41 t.Fatalf("marshaling to JSON failed: %v", err) 42 } 43 got := string(data) 44 expected := `{"range":{"born":{"from":"2012-01-01","include_lower":true,"include_upper":true,"time_zone":"+1:00","to":"now"}}}` 45 if got != expected { 46 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 47 } 48} 49 50func TestRangeQueryWithFormat(t *testing.T) { 51 q := NewRangeQuery("born"). 52 Gte("2012/01/01"). 53 Lte("now"). 54 Format("yyyy/MM/dd") 55 src, err := q.Source() 56 if err != nil { 57 t.Fatal(err) 58 } 59 data, err := json.Marshal(src) 60 if err != nil { 61 t.Fatalf("marshaling to JSON failed: %v", err) 62 } 63 got := string(data) 64 expected := `{"range":{"born":{"format":"yyyy/MM/dd","from":"2012/01/01","include_lower":true,"include_upper":true,"to":"now"}}}` 65 if got != expected { 66 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 67 } 68} 69