summaryrefslogtreecommitdiffstats
path: root/client/go/cmd/document_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/cmd/document_test.go')
-rw-r--r--client/go/cmd/document_test.go49
1 files changed, 26 insertions, 23 deletions
diff --git a/client/go/cmd/document_test.go b/client/go/cmd/document_test.go
index 1d650f77d08..77b7d68d666 100644
--- a/client/go/cmd/document_test.go
+++ b/client/go/cmd/document_test.go
@@ -66,21 +66,19 @@ func TestDocumentRemoveWithoutIdArg(t *testing.T) {
}
func TestDocumentSendMissingId(t *testing.T) {
- arguments := []string{"document", "put", "testdata/A-Head-Full-of-Dreams-Without-Operation.json"}
- client := &mock.HTTPClient{}
- _, outErr := execute(command{args: arguments}, t, client)
+ cli, _, stderr := newTestCLI(t)
+ assert.NotNil(t, cli.Run("document", "put", "testdata/A-Head-Full-of-Dreams-Without-Operation.json"))
assert.Equal(t,
"Error: No document id given neither as argument or as a 'put' key in the json file\n",
- outErr)
+ stderr.String())
}
func TestDocumentSendWithDisagreeingOperations(t *testing.T) {
- arguments := []string{"document", "update", "testdata/A-Head-Full-of-Dreams-Put.json"}
- client := &mock.HTTPClient{}
- _, outErr := execute(command{args: arguments}, t, client)
+ cli, _, stderr := newTestCLI(t)
+ assert.NotNil(t, cli.Run("document", "update", "testdata/A-Head-Full-of-Dreams-Put.json"))
assert.Equal(t,
"Error: Wanted document operation is update but the JSON file specifies put\n",
- outErr)
+ stderr.String())
}
func TestDocumentPutDocumentError(t *testing.T) {
@@ -98,14 +96,16 @@ func TestDocumentGet(t *testing.T) {
func assertDocumentSend(arguments []string, expectedOperation string, expectedMethod string, expectedDocumentId string, expectedPayloadFile string, t *testing.T) {
client := &mock.HTTPClient{}
+ cli, stdout, stderr := newTestCLI(t)
+ cli.httpClient = client
documentURL, err := documentServiceURL(client)
if err != nil {
t.Fatal(err)
}
expectedPath, _ := vespa.IdToURLPath(expectedDocumentId)
expectedURL := documentURL + "/document/v1/" + expectedPath
- out, errOut := execute(command{args: arguments}, t, client)
+ assert.Nil(t, cli.Run(arguments...))
verbose := false
for _, a := range arguments {
if a == "-v" {
@@ -114,9 +114,9 @@ func assertDocumentSend(arguments []string, expectedOperation string, expectedMe
}
if verbose {
expectedCurl := "curl -X " + expectedMethod + " -H 'Content-Type: application/json' --data-binary @" + expectedPayloadFile + " " + expectedURL + "\n"
- assert.Equal(t, expectedCurl, errOut)
+ assert.Equal(t, expectedCurl, stderr.String())
}
- assert.Equal(t, "Success: "+expectedOperation+" "+expectedDocumentId+"\n", out)
+ assert.Equal(t, "Success: "+expectedOperation+" "+expectedDocumentId+"\n", stdout.String())
assert.Equal(t, expectedURL, client.LastRequest.URL.String())
assert.Equal(t, "application/json", client.LastRequest.Header.Get("Content-Type"))
assert.Equal(t, expectedMethod, client.LastRequest.Method)
@@ -132,6 +132,9 @@ func assertDocumentGet(arguments []string, documentId string, t *testing.T) {
t.Fatal(err)
}
client.NextResponse(200, "{\"fields\":{\"foo\":\"bar\"}}")
+ cli, stdout, _ := newTestCLI(t)
+ cli.httpClient = client
+ assert.Nil(t, cli.Run(arguments...))
assert.Equal(t,
`{
"fields": {
@@ -139,7 +142,7 @@ func assertDocumentGet(arguments []string, documentId string, t *testing.T) {
}
}
`,
- executeCommand(t, client, arguments, []string{}))
+ stdout.String())
expectedPath, _ := vespa.IdToURLPath(documentId)
assert.Equal(t, documentURL+"/document/v1/"+expectedPath, client.LastRequest.URL.String())
assert.Equal(t, "GET", client.LastRequest.Method)
@@ -148,29 +151,29 @@ func assertDocumentGet(arguments []string, documentId string, t *testing.T) {
func assertDocumentError(t *testing.T, status int, errorMessage string) {
client := &mock.HTTPClient{}
client.NextResponse(status, errorMessage)
- _, outErr := execute(command{args: []string{"document", "put",
+ cli, _, stderr := newTestCLI(t)
+ cli.httpClient = client
+ assert.NotNil(t, cli.Run("document", "put",
"id:mynamespace:music::a-head-full-of-dreams",
- "testdata/A-Head-Full-of-Dreams-Put.json"}}, t, client)
+ "testdata/A-Head-Full-of-Dreams-Put.json"))
assert.Equal(t,
"Error: Invalid document operation: Status "+strconv.Itoa(status)+"\n\n"+errorMessage+"\n",
- outErr)
+ stderr.String())
}
func assertDocumentServerError(t *testing.T, status int, errorMessage string) {
client := &mock.HTTPClient{}
client.NextResponse(status, errorMessage)
- _, outErr := execute(command{args: []string{"document", "put",
+ cli, _, stderr := newTestCLI(t)
+ cli.httpClient = client
+ assert.NotNil(t, cli.Run("document", "put",
"id:mynamespace:music::a-head-full-of-dreams",
- "testdata/A-Head-Full-of-Dreams-Put.json"}}, t, client)
+ "testdata/A-Head-Full-of-Dreams-Put.json"))
assert.Equal(t,
"Error: Container (document API) at 127.0.0.1:8080: Status "+strconv.Itoa(status)+"\n\n"+errorMessage+"\n",
- outErr)
+ stderr.String())
}
func documentServiceURL(client *mock.HTTPClient) (string, error) {
- service, err := getService("document", 0, "")
- if err != nil {
- return "", err
- }
- return service.BaseURL, nil
+ return "http://127.0.0.1:8080", nil
}