diff options
Diffstat (limited to 'vendor/gopkg.in/olivere/elastic.v5/nodes_stats_test.go')
-rw-r--r-- | vendor/gopkg.in/olivere/elastic.v5/nodes_stats_test.go | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/vendor/gopkg.in/olivere/elastic.v5/nodes_stats_test.go b/vendor/gopkg.in/olivere/elastic.v5/nodes_stats_test.go new file mode 100644 index 000000000..4b249a2f4 --- /dev/null +++ b/vendor/gopkg.in/olivere/elastic.v5/nodes_stats_test.go @@ -0,0 +1,138 @@ +// 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 TestNodesStats(t *testing.T) { + client, err := NewClient() + if err != nil { + t.Fatal(err) + } + + info, err := client.NodesStats().Human(true).Do(context.TODO()) + if err != nil { + t.Fatal(err) + } + if info == nil { + t.Fatal("expected nodes stats") + } + + if info.ClusterName == "" { + t.Errorf("expected cluster name; got: %q", info.ClusterName) + } + if len(info.Nodes) == 0 { + t.Errorf("expected some nodes; got: %d", len(info.Nodes)) + } + for id, node := range info.Nodes { + if id == "" { + t.Errorf("expected node id; got: %q", id) + } + if node == nil { + t.Fatalf("expected node info; got: %v", node) + } + if len(node.Name) == 0 { + t.Errorf("expected node name; got: %q", node.Name) + } + if node.Timestamp == 0 { + t.Errorf("expected timestamp; got: %q", node.Timestamp) + } + } +} + +func TestNodesStatsBuildURL(t *testing.T) { + tests := []struct { + NodeIds []string + Metrics []string + IndexMetrics []string + Expected string + }{ + { + NodeIds: nil, + Metrics: nil, + IndexMetrics: nil, + Expected: "/_nodes/stats", + }, + { + NodeIds: []string{"node1"}, + Metrics: nil, + IndexMetrics: nil, + Expected: "/_nodes/node1/stats", + }, + { + NodeIds: []string{"node1", "node2"}, + Metrics: nil, + IndexMetrics: nil, + Expected: "/_nodes/node1%2Cnode2/stats", + }, + { + NodeIds: nil, + Metrics: []string{"indices"}, + IndexMetrics: nil, + Expected: "/_nodes/stats/indices", + }, + { + NodeIds: nil, + Metrics: []string{"indices", "jvm"}, + IndexMetrics: nil, + Expected: "/_nodes/stats/indices%2Cjvm", + }, + { + NodeIds: []string{"node1"}, + Metrics: []string{"indices", "jvm"}, + IndexMetrics: nil, + Expected: "/_nodes/node1/stats/indices%2Cjvm", + }, + { + NodeIds: nil, + Metrics: nil, + IndexMetrics: []string{"fielddata"}, + Expected: "/_nodes/stats/_all/fielddata", + }, + { + NodeIds: []string{"node1"}, + Metrics: nil, + IndexMetrics: []string{"fielddata"}, + Expected: "/_nodes/node1/stats/_all/fielddata", + }, + { + NodeIds: nil, + Metrics: []string{"indices"}, + IndexMetrics: []string{"fielddata"}, + Expected: "/_nodes/stats/indices/fielddata", + }, + { + NodeIds: []string{"node1"}, + Metrics: []string{"indices"}, + IndexMetrics: []string{"fielddata"}, + Expected: "/_nodes/node1/stats/indices/fielddata", + }, + { + NodeIds: []string{"node1", "node2"}, + Metrics: []string{"indices", "jvm"}, + IndexMetrics: []string{"fielddata", "docs"}, + Expected: "/_nodes/node1%2Cnode2/stats/indices%2Cjvm/fielddata%2Cdocs", + }, + } + + client, err := NewClient() + if err != nil { + t.Fatal(err) + } + for i, tt := range tests { + svc := client.NodesStats().NodeId(tt.NodeIds...).Metric(tt.Metrics...).IndexMetric(tt.IndexMetrics...) + path, _, err := svc.buildURL() + if err != nil { + t.Errorf("#%d: expected no error, got %v", i, err) + } else { + if want, have := tt.Expected, path; want != have { + t.Errorf("#%d: expected %q, got %q", i, want, have) + } + } + } +} |