diff options
Diffstat (limited to 'client/go/cmd/document_test.go')
-rw-r--r-- | client/go/cmd/document_test.go | 49 |
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 } |