MCPcopy
hub / github.com/git-lfs/git-lfs / TestAPIBatch

Function TestAPIBatch

tq/api_test.go:20–76  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

18)
19
20func 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

Callers

nothing calls this directly

Calls 9

BatchMethod · 0.95
NewClientFunction · 0.92
NewContextFunction · 0.92
EncodeMethod · 0.80
assertSchemaFunction · 0.70
GetMethod · 0.65
CloseMethod · 0.65
SetMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected