2016-12-12 00:28:47 +00:00
|
|
|
package tq
|
2016-05-31 10:04:17 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2017-01-04 16:05:29 +00:00
|
|
|
"github.com/git-lfs/git-lfs/lfsapi"
|
2016-05-31 10:04:17 +00:00
|
|
|
"github.com/stretchr/testify/assert"
|
2017-01-04 16:05:29 +00:00
|
|
|
"github.com/stretchr/testify/require"
|
2016-05-31 10:04:17 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type testAdapter struct {
|
|
|
|
name string
|
|
|
|
dir Direction
|
|
|
|
}
|
|
|
|
|
|
|
|
func (a *testAdapter) Name() string {
|
|
|
|
return a.name
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-05-31 10:04:17 +00:00
|
|
|
func (a *testAdapter) Direction() Direction {
|
|
|
|
return a.dir
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-12-15 16:59:06 +00:00
|
|
|
func (a *testAdapter) Begin(cfg AdapterConfig, cb ProgressCallback) error {
|
2016-05-31 10:04:17 +00:00
|
|
|
return nil
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-12-09 20:55:04 +00:00
|
|
|
func (a *testAdapter) Add(ts ...*Transfer) (retries <-chan TransferResult) {
|
|
|
|
return nil
|
2016-05-31 10:04:17 +00:00
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-05-31 10:04:17 +00:00
|
|
|
func (a *testAdapter) End() {
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-05-31 10:04:17 +00:00
|
|
|
func (a *testAdapter) ClearTempStorage() error {
|
|
|
|
return nil
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-12-12 00:55:14 +00:00
|
|
|
func newTestAdapter(name string, dir Direction) Adapter {
|
2016-05-31 10:04:17 +00:00
|
|
|
return &testAdapter{name, dir}
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-12-12 00:55:14 +00:00
|
|
|
func newRenamedTestAdapter(name string, dir Direction) Adapter {
|
2016-05-31 10:04:17 +00:00
|
|
|
return &testAdapter{"RENAMED", dir}
|
|
|
|
}
|
|
|
|
|
|
|
|
func testBasicAdapterExists(t *testing.T) {
|
2017-10-25 17:46:37 +00:00
|
|
|
m := NewManifest(nil, nil, "", "")
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-05-31 10:04:17 +00:00
|
|
|
assert := assert.New(t)
|
|
|
|
|
2016-08-09 21:43:29 +00:00
|
|
|
dls := m.GetDownloadAdapterNames()
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(dls) {
|
|
|
|
assert.Equal([]string{"basic"}, dls)
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
uls := m.GetUploadAdapterNames()
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(uls) {
|
|
|
|
assert.Equal([]string{"basic"}, uls)
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
|
|
|
da := m.NewDownloadAdapter("basic")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(da) {
|
|
|
|
assert.Equal("basic", da.Name())
|
|
|
|
assert.Equal(Download, da.Direction())
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
|
|
|
ua := m.NewUploadAdapter("basic")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(ua) {
|
|
|
|
assert.Equal("basic", ua.Name())
|
|
|
|
assert.Equal(Upload, ua.Direction())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func testAdapterRegAndOverride(t *testing.T) {
|
2017-10-25 17:46:37 +00:00
|
|
|
m := NewManifest(nil, nil, "", "")
|
2016-05-31 10:04:17 +00:00
|
|
|
assert := assert.New(t)
|
|
|
|
|
2016-08-09 21:43:29 +00:00
|
|
|
assert.Nil(m.NewDownloadAdapter("test"))
|
|
|
|
assert.Nil(m.NewUploadAdapter("test"))
|
2016-05-31 10:04:17 +00:00
|
|
|
|
2016-12-12 00:55:14 +00:00
|
|
|
m.RegisterNewAdapterFunc("test", Upload, newTestAdapter)
|
2016-08-09 21:43:29 +00:00
|
|
|
assert.Nil(m.NewDownloadAdapter("test"))
|
|
|
|
assert.NotNil(m.NewUploadAdapter("test"))
|
2016-05-31 10:04:17 +00:00
|
|
|
|
2016-12-12 00:55:14 +00:00
|
|
|
m.RegisterNewAdapterFunc("test", Download, newTestAdapter)
|
2016-08-09 21:43:29 +00:00
|
|
|
da := m.NewDownloadAdapter("test")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(da) {
|
|
|
|
assert.Equal("test", da.Name())
|
|
|
|
assert.Equal(Download, da.Direction())
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
|
|
|
ua := m.NewUploadAdapter("test")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(ua) {
|
|
|
|
assert.Equal("test", ua.Name())
|
|
|
|
assert.Equal(Upload, ua.Direction())
|
|
|
|
}
|
|
|
|
|
|
|
|
// Test override
|
2016-12-12 00:55:14 +00:00
|
|
|
m.RegisterNewAdapterFunc("test", Upload, newRenamedTestAdapter)
|
2016-08-09 21:43:29 +00:00
|
|
|
ua = m.NewUploadAdapter("test")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(ua) {
|
|
|
|
assert.Equal("RENAMED", ua.Name())
|
|
|
|
assert.Equal(Upload, ua.Direction())
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
|
|
|
da = m.NewDownloadAdapter("test")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(da) {
|
|
|
|
assert.Equal("test", da.Name())
|
|
|
|
assert.Equal(Download, da.Direction())
|
|
|
|
}
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-12-12 00:55:14 +00:00
|
|
|
m.RegisterNewAdapterFunc("test", Download, newRenamedTestAdapter)
|
2016-08-09 21:43:29 +00:00
|
|
|
da = m.NewDownloadAdapter("test")
|
2016-05-31 10:04:17 +00:00
|
|
|
if assert.NotNil(da) {
|
|
|
|
assert.Equal("RENAMED", da.Name())
|
|
|
|
assert.Equal(Download, da.Direction())
|
|
|
|
}
|
|
|
|
}
|
2016-06-09 10:45:24 +00:00
|
|
|
|
|
|
|
func testAdapterRegButBasicOnly(t *testing.T) {
|
2017-10-25 21:38:13 +00:00
|
|
|
cli, err := lfsapi.NewClient(lfsapi.NewContext(nil, nil, map[string]string{
|
2017-01-04 16:05:29 +00:00
|
|
|
"lfs.basictransfersonly": "yes",
|
|
|
|
}))
|
|
|
|
require.Nil(t, err)
|
|
|
|
|
2017-10-25 17:46:37 +00:00
|
|
|
m := NewManifest(nil, cli, "", "")
|
2016-08-09 21:43:29 +00:00
|
|
|
|
2016-06-09 10:45:24 +00:00
|
|
|
assert := assert.New(t)
|
|
|
|
|
2016-12-12 00:55:14 +00:00
|
|
|
m.RegisterNewAdapterFunc("test", Upload, newTestAdapter)
|
|
|
|
m.RegisterNewAdapterFunc("test", Download, newTestAdapter)
|
2016-06-09 10:45:24 +00:00
|
|
|
// Will still be created if we ask for them
|
2016-08-09 21:43:29 +00:00
|
|
|
assert.NotNil(m.NewUploadAdapter("test"))
|
|
|
|
assert.NotNil(m.NewDownloadAdapter("test"))
|
2016-06-09 10:45:24 +00:00
|
|
|
|
|
|
|
// But list will exclude
|
2016-08-09 21:43:29 +00:00
|
|
|
ld := m.GetDownloadAdapterNames()
|
2016-06-09 10:45:24 +00:00
|
|
|
assert.Equal([]string{BasicAdapterName}, ld)
|
2016-08-09 21:43:29 +00:00
|
|
|
lu := m.GetUploadAdapterNames()
|
2016-06-09 10:45:24 +00:00
|
|
|
assert.Equal([]string{BasicAdapterName}, lu)
|
|
|
|
}
|