(t *testing.T)
| 76 | } |
| 77 | |
| 78 | func TestAPIBatchOnlyBasic(t *testing.T) { |
| 79 | require.NotNil(t, batchReqSchema, batchReqSchema.Source) |
| 80 | require.NotNil(t, batchResSchema, batchResSchema.Source) |
| 81 | |
| 82 | srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 83 | if r.URL.Path != "/api/objects/batch" { |
| 84 | w.WriteHeader(404) |
| 85 | return |
| 86 | } |
| 87 | |
| 88 | assert.Equal(t, "POST", r.Method) |
| 89 | |
| 90 | bodyLoader, body := gojsonschema.NewReaderLoader(r.Body) |
| 91 | bReq := &batchRequest{} |
| 92 | err := json.NewDecoder(body).Decode(bReq) |
| 93 | r.Body.Close() |
| 94 | assert.Nil(t, err) |
| 95 | assertSchema(t, batchReqSchema, bodyLoader) |
| 96 | |
| 97 | assert.Equal(t, 0, len(bReq.TransferAdapterNames)) |
| 98 | if assert.Equal(t, 1, len(bReq.Objects)) { |
| 99 | assert.Equal(t, "a", bReq.Objects[0].Oid) |
| 100 | } |
| 101 | |
| 102 | w.Header().Set("Content-Type", "application/json") |
| 103 | writeLoader, resWriter := gojsonschema.NewWriterLoader(w) |
| 104 | err = json.NewEncoder(resWriter).Encode(&BatchResponse{ |
| 105 | TransferAdapterName: "basic", |
| 106 | Objects: make([]*Transfer, 0), |
| 107 | }) |
| 108 | |
| 109 | assert.Nil(t, err) |
| 110 | assertSchema(t, batchResSchema, writeLoader) |
| 111 | })) |
| 112 | defer srv.Close() |
| 113 | |
| 114 | c, err := lfsapi.NewClient(lfshttp.NewContext(nil, nil, map[string]string{ |
| 115 | "lfs.url": srv.URL + "/api", |
| 116 | })) |
| 117 | require.Nil(t, err) |
| 118 | |
| 119 | tqc := &tqClient{Client: c} |
| 120 | bReq := &batchRequest{ |
| 121 | TransferAdapterNames: []string{"basic"}, |
| 122 | Objects: []*Transfer{ |
| 123 | &Transfer{Oid: "a", Size: 1}, |
| 124 | }, |
| 125 | } |
| 126 | bRes, err := tqc.Batch("remote", bReq) |
| 127 | require.Nil(t, err) |
| 128 | assert.Equal(t, "basic", bRes.TransferAdapterName) |
| 129 | } |
| 130 | |
| 131 | func TestAPIBatchEmptyObjects(t *testing.T) { |
| 132 | c, err := lfsapi.NewClient(nil) |
nothing calls this directly
no test coverage detected