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 TestTermQuery(t *testing.T) { 13 q := NewTermQuery("user", "ki") 14 src, err := q.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 := `{"term":{"user":"ki"}}` 24 if got != expected { 25 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 26 } 27} 28 29func TestTermQueryWithOptions(t *testing.T) { 30 q := NewTermQuery("user", "ki") 31 q = q.Boost(2.79) 32 q = q.QueryName("my_tq") 33 src, err := q.Source() 34 if err != nil { 35 t.Fatal(err) 36 } 37 data, err := json.Marshal(src) 38 if err != nil { 39 t.Fatalf("marshaling to JSON failed: %v", err) 40 } 41 got := string(data) 42 expected := `{"term":{"user":{"_name":"my_tq","boost":2.79,"value":"ki"}}}` 43 if got != expected { 44 t.Errorf("expected\n%s\n,got:\n%s", expected, got) 45 } 46} 47