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	"context"
9	"testing"
10)
11
12func TestSearchTemplatesLifecycle(t *testing.T) {
13	client := setupTestClientAndCreateIndex(t)
14
15	// Template
16	tmpl := `{"template":{"query":{"match":{"title":"{{query_string}}"}}}}`
17
18	// Create template
19	cresp, err := client.PutTemplate().Id("elastic-test").BodyString(tmpl).Do(context.TODO())
20	if err != nil {
21		t.Fatal(err)
22	}
23	if cresp == nil {
24		t.Fatalf("expected response != nil; got: %v", cresp)
25	}
26	if !cresp.Acknowledged {
27		t.Errorf("expected acknowledged = %v; got: %v", true, cresp.Acknowledged)
28	}
29
30	// Get template
31	resp, err := client.GetTemplate().Id("elastic-test").Do(context.TODO())
32	if err != nil {
33		t.Fatal(err)
34	}
35	if resp == nil {
36		t.Fatalf("expected response != nil; got: %v", resp)
37	}
38	if resp.Template == "" {
39		t.Errorf("expected template != %q; got: %q", "", resp.Template)
40	}
41
42	// Delete template
43	dresp, err := client.DeleteTemplate().Id("elastic-test").Do(context.TODO())
44	if err != nil {
45		t.Fatal(err)
46	}
47	if dresp == nil {
48		t.Fatalf("expected response != nil; got: %v", dresp)
49	}
50	if !dresp.Acknowledged {
51		t.Fatalf("expected acknowledged = %v; got: %v", true, dresp.Acknowledged)
52	}
53}
54