(t *testing.T)
| 18 | ) |
| 19 | |
| 20 | func TestAPIBatch(t *testing.T) { |
| 21 | require.NotNil(t, batchReqSchema, batchReqSchema.Source) |
| 22 | require.NotNil(t, batchResSchema, batchResSchema.Source) |
| 23 | |
| 24 | srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 25 | if r.URL.Path != "/api/objects/batch" { |
| 26 | w.WriteHeader(404) |
| 27 | return |
| 28 | } |
| 29 | |
| 30 | assert.Equal(t, "POST", r.Method) |
| 31 | assert.Equal(t, "106", r.Header.Get("Content-Length")) |
| 32 | |
| 33 | bodyLoader, body := gojsonschema.NewReaderLoader(r.Body) |
| 34 | bReq := &batchRequest{} |
| 35 | err := json.NewDecoder(body).Decode(bReq) |
| 36 | r.Body.Close() |
| 37 | assert.Nil(t, err) |
| 38 | assertSchema(t, batchReqSchema, bodyLoader) |
| 39 | |
| 40 | assert.EqualValues(t, []string{"basic", "whatev"}, bReq.TransferAdapterNames) |
| 41 | if assert.Equal(t, 1, len(bReq.Objects)) { |
| 42 | assert.Equal(t, "a", bReq.Objects[0].Oid) |
| 43 | } |
| 44 | |
| 45 | w.Header().Set("Content-Type", "application/json") |
| 46 | |
| 47 | writeLoader, resWriter := gojsonschema.NewWriterLoader(w) |
| 48 | err = json.NewEncoder(resWriter).Encode(&BatchResponse{ |
| 49 | TransferAdapterName: "basic", |
| 50 | Objects: bReq.Objects, |
| 51 | }) |
| 52 | |
| 53 | assert.Nil(t, err) |
| 54 | assertSchema(t, batchResSchema, writeLoader) |
| 55 | })) |
| 56 | defer srv.Close() |
| 57 | |
| 58 | c, err := lfsapi.NewClient(lfshttp.NewContext(nil, nil, map[string]string{ |
| 59 | "lfs.url": srv.URL + "/api", |
| 60 | })) |
| 61 | require.Nil(t, err) |
| 62 | |
| 63 | tqc := &tqClient{Client: c} |
| 64 | bReq := &batchRequest{ |
| 65 | TransferAdapterNames: []string{"basic", "whatev"}, |
| 66 | Objects: []*Transfer{ |
| 67 | &Transfer{Oid: "a", Size: 1}, |
| 68 | }, |
| 69 | } |
| 70 | bRes, err := tqc.Batch("remote", bReq) |
| 71 | require.Nil(t, err) |
| 72 | assert.Equal(t, "basic", bRes.TransferAdapterName) |
| 73 | if assert.Equal(t, 1, len(bRes.Objects)) { |
| 74 | assert.Equal(t, "a", bRes.Objects[0].Oid) |
| 75 | } |
| 76 | } |
| 77 |
nothing calls this directly
no test coverage detected