-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathscript_get_test.go
91 lines (82 loc) · 2.04 KB
/
script_get_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Copyright 2012-present Oliver Eilhard. All rights reserved.
// Use of this source code is governed by a MIT-license.
// See http://olivere.mit-license.org/license.txt for details.
package elastic
import (
"context"
"testing"
)
func TestGetScript(t *testing.T) {
client := setupTestClientAndCreateIndex(t)
scriptID := "example-get-script-id"
// Ensure the script does not exist
_, err := client.PerformRequest(
context.Background(),
PerformRequestOptions{
Method: "DELETE",
Path: "/_scripts/" + scriptID,
})
if err != nil && !IsNotFound(err) {
t.Fatal(err)
}
// PutScript API
script := `{
"script": {
"lang": "painless",
"source": "ctx._source.message = params.new_message"
}
}`
putRes, err := client.PutScript().
Id(scriptID).
BodyString(script).
Do(context.Background())
if err != nil {
t.Fatal(err)
}
if putRes == nil {
t.Errorf("expected result to be != nil; got: %v", putRes)
}
if !putRes.Acknowledged {
t.Errorf("expected ack for PutScript op; got %v", putRes.Acknowledged)
}
// Must exist now
_, err = client.PerformRequest(
context.Background(),
PerformRequestOptions{
Method: "GET",
Path: "/_scripts/" + scriptID,
})
if err != nil {
t.Fatal(err)
}
// GetScript API
res, err := client.GetScript().
Id(scriptID).
Do(context.Background())
if err != nil {
t.Fatal(err)
}
if res == nil {
t.Errorf("expected result to be != nil; got: %v", res)
}
if want, have := scriptID, res.Id; want != have {
t.Fatalf("expected _id = %q; got: %q", want, have)
}
if want, have := true, res.Found; want != have {
t.Fatalf("expected found = %v; got: %v", want, have)
}
if res.Script == nil {
t.Fatal("expected script; got: nil")
}
outScript := `{"lang":"painless","source":"ctx._source.message = params.new_message"}`
if want, have := outScript, string(res.Script); want != have {
t.Fatalf("expected script = %q; got: %q", want, have)
}
// Cleanup
client.PerformRequest(
context.Background(),
PerformRequestOptions{
Method: "DELETE",
Path: "/_scripts/" + scriptID,
})
}