You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
package elastic |
|
|
|
import ( |
|
"net/url" |
|
"reflect" |
|
"testing" |
|
) |
|
|
|
func TestSnapshotValidate(t *testing.T) { |
|
var client *Client |
|
|
|
err := NewSnapshotCreateService(client).Validate() |
|
got := err.Error() |
|
expected := "missing required fields: [Repository Snapshot]" |
|
if got != expected { |
|
t.Errorf("expected %q; got: %q", expected, got) |
|
} |
|
} |
|
|
|
func TestSnapshotPutURL(t *testing.T) { |
|
client := setupTestClient(t) |
|
|
|
tests := []struct { |
|
Repository string |
|
Snapshot string |
|
Pretty bool |
|
MasterTimeout string |
|
WaitForCompletion bool |
|
ExpectedPath string |
|
ExpectedParams url.Values |
|
}{ |
|
{ |
|
Repository: "repo", |
|
Snapshot: "snapshot_of_sunday", |
|
Pretty: true, |
|
MasterTimeout: "60s", |
|
WaitForCompletion: true, |
|
ExpectedPath: "/_snapshot/repo/snapshot_of_sunday", |
|
ExpectedParams: url.Values{ |
|
"pretty": []string{"1"}, |
|
"master_timeout": []string{"60s"}, |
|
"wait_for_completion": []string{"true"}, |
|
}, |
|
}, |
|
} |
|
|
|
for _, test := range tests { |
|
path, params, err := client.SnapshotCreate(test.Repository, test.Snapshot). |
|
Pretty(test.Pretty). |
|
MasterTimeout(test.MasterTimeout). |
|
WaitForCompletion(test.WaitForCompletion). |
|
buildURL() |
|
if err != nil { |
|
t.Fatal(err) |
|
} |
|
if path != test.ExpectedPath { |
|
t.Errorf("expected %q; got: %q", test.ExpectedPath, path) |
|
} |
|
if !reflect.DeepEqual(params, test.ExpectedParams) { |
|
t.Errorf("expected %q; got: %q", test.ExpectedParams, params) |
|
} |
|
} |
|
}
|
|
|