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
12// TODO(oe): Find out why this test fails on Travis CI.
13/*
14func TestIndicesOpenAndClose(t *testing.T) {
15	client := setupTestClient(t)
16
17	// Create index
18	createIndex, err := client.CreateIndex(testIndexName).Do(context.TODO())
19	if err != nil {
20		t.Fatal(err)
21	}
22	if !createIndex.Acknowledged {
23		t.Errorf("expected CreateIndexResult.Acknowledged %v; got %v", true, createIndex.Acknowledged)
24	}
25	defer func() {
26		// Delete index
27		deleteIndex, err := client.DeleteIndex(testIndexName).Do(context.TODO())
28		if err != nil {
29			t.Fatal(err)
30		}
31		if !deleteIndex.Acknowledged {
32			t.Errorf("expected DeleteIndexResult.Acknowledged %v; got %v", true, deleteIndex.Acknowledged)
33		}
34	}()
35
36	waitForYellow := func() {
37		// Wait for status yellow
38		res, err := client.ClusterHealth().WaitForStatus("yellow").Timeout("15s").Do(context.TODO())
39		if err != nil {
40			t.Fatal(err)
41		}
42		if res != nil && res.TimedOut {
43			t.Fatalf("cluster time out waiting for status %q", "yellow")
44		}
45	}
46
47	// Wait for cluster
48	waitForYellow()
49
50	// Close index
51	cresp, err := client.CloseIndex(testIndexName).Do(context.TODO())
52	if err != nil {
53		t.Fatal(err)
54	}
55	if !cresp.Acknowledged {
56		t.Fatalf("expected close index of %q to be acknowledged\n", testIndexName)
57	}
58
59	// Wait for cluster
60	waitForYellow()
61
62	// Open index again
63	oresp, err := client.OpenIndex(testIndexName).Do(context.TODO())
64	if err != nil {
65		t.Fatal(err)
66	}
67	if !oresp.Acknowledged {
68		t.Fatalf("expected open index of %q to be acknowledged\n", testIndexName)
69	}
70}
71*/
72
73func TestIndicesCloseValidate(t *testing.T) {
74	client := setupTestClient(t)
75
76	// No index name -> fail with error
77	res, err := NewIndicesCloseService(client).Do(context.TODO())
78	if err == nil {
79		t.Fatalf("expected IndicesClose to fail without index name")
80	}
81	if res != nil {
82		t.Fatalf("expected result to be == nil; got: %v", res)
83	}
84}
85