summaryrefslogtreecommitdiffstats
path: root/client/go/internal/vespa/document/http_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/internal/vespa/document/http_test.go')
-rw-r--r--client/go/internal/vespa/document/http_test.go46
1 files changed, 40 insertions, 6 deletions
diff --git a/client/go/internal/vespa/document/http_test.go b/client/go/internal/vespa/document/http_test.go
index b34b322f6eb..f8871cb0905 100644
--- a/client/go/internal/vespa/document/http_test.go
+++ b/client/go/internal/vespa/document/http_test.go
@@ -89,17 +89,19 @@ func TestClientSend(t *testing.T) {
Latency: time.Second,
}
if i < 3 {
- httpClient.NextResponseString(200, `{"message":"All good!"}`)
+ msg := `{"message":"All good!"}`
+ httpClient.NextResponseString(200, msg)
wantRes.Status = StatusSuccess
wantRes.HTTPStatus = 200
- wantRes.Message = "All good!"
+ wantRes.Body = []byte(msg)
wantRes.BytesRecv = 23
} else {
- httpClient.NextResponseString(502, `{"message":"Good bye, cruel world!"}`)
+ errMsg := `something went wront`
+ httpClient.NextResponseString(502, errMsg)
wantRes.Status = StatusVespaFailure
wantRes.HTTPStatus = 502
- wantRes.Message = "Good bye, cruel world!"
- wantRes.BytesRecv = 36
+ wantRes.Body = []byte(errMsg)
+ wantRes.BytesRecv = 20
}
res := client.Send(doc)
wantRes.BytesSent = int64(len(httpClient.LastBody))
@@ -134,13 +136,45 @@ func TestClientSend(t *testing.T) {
MinLatency: time.Second,
MaxLatency: time.Second,
BytesSent: 75,
- BytesRecv: 105,
+ BytesRecv: 89,
}
if !reflect.DeepEqual(want, stats) {
t.Errorf("got %+v, want %+v", stats, want)
}
}
+func TestClientGet(t *testing.T) {
+ httpClient := mock.HTTPClient{ReadBody: true}
+ client, _ := NewClient(ClientOptions{
+ BaseURL: "https://example.com:1337",
+ Timeout: time.Duration(5 * time.Second),
+ }, []util.HTTPClient{&httpClient})
+ clock := manualClock{t: time.Now(), tick: time.Second}
+ client.now = clock.now
+ doc := `{
+ "pathId": "/document/v1/mynamespace/music/docid/doc1",
+ "id": "id:mynamespace:music::doc1",
+ "fields": {
+ "artist": "Metallica",
+ "album": "Master of Puppets"
+ }
+}`
+ id := Id{Namespace: "mynamespace", Type: "music", UserSpecific: "doc1"}
+ httpClient.NextResponseString(200, doc)
+ result := client.Get(id)
+ want := Result{
+ Id: id,
+ Body: []byte(doc),
+ Status: StatusSuccess,
+ HTTPStatus: 200,
+ Latency: time.Second,
+ BytesRecv: 192,
+ }
+ if !reflect.DeepEqual(want, result) {
+ t.Errorf("got %+v, want %+v", result, want)
+ }
+}
+
func TestClientSendCompressed(t *testing.T) {
httpClient := &mock.HTTPClient{ReadBody: true}
client, _ := NewClient(ClientOptions{