github.com/hawser/git-hawser@v2.5.2+incompatible/tq/transfer_test.go (about) 1 package tq 2 3 import ( 4 "testing" 5 6 "github.com/git-lfs/git-lfs/lfsapi" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 type testAdapter struct { 12 name string 13 dir Direction 14 } 15 16 func (a *testAdapter) Name() string { 17 return a.name 18 } 19 20 func (a *testAdapter) Direction() Direction { 21 return a.dir 22 } 23 24 func (a *testAdapter) Begin(cfg AdapterConfig, cb ProgressCallback) error { 25 return nil 26 } 27 28 func (a *testAdapter) Add(ts ...*Transfer) (retries <-chan TransferResult) { 29 return nil 30 } 31 32 func (a *testAdapter) End() { 33 } 34 35 func (a *testAdapter) ClearTempStorage() error { 36 return nil 37 } 38 39 func newTestAdapter(name string, dir Direction) Adapter { 40 return &testAdapter{name, dir} 41 } 42 43 func newRenamedTestAdapter(name string, dir Direction) Adapter { 44 return &testAdapter{"RENAMED", dir} 45 } 46 47 func testBasicAdapterExists(t *testing.T) { 48 m := NewManifest(nil, nil, "", "") 49 50 assert := assert.New(t) 51 52 dls := m.GetDownloadAdapterNames() 53 if assert.NotNil(dls) { 54 assert.Equal([]string{"basic"}, dls) 55 } 56 uls := m.GetUploadAdapterNames() 57 if assert.NotNil(uls) { 58 assert.Equal([]string{"basic"}, uls) 59 } 60 61 da := m.NewDownloadAdapter("basic") 62 if assert.NotNil(da) { 63 assert.Equal("basic", da.Name()) 64 assert.Equal(Download, da.Direction()) 65 } 66 67 ua := m.NewUploadAdapter("basic") 68 if assert.NotNil(ua) { 69 assert.Equal("basic", ua.Name()) 70 assert.Equal(Upload, ua.Direction()) 71 } 72 } 73 74 func testAdapterRegAndOverride(t *testing.T) { 75 m := NewManifest(nil, nil, "", "") 76 assert := assert.New(t) 77 78 assert.Nil(m.NewDownloadAdapter("test")) 79 assert.Nil(m.NewUploadAdapter("test")) 80 81 m.RegisterNewAdapterFunc("test", Upload, newTestAdapter) 82 assert.Nil(m.NewDownloadAdapter("test")) 83 assert.NotNil(m.NewUploadAdapter("test")) 84 85 m.RegisterNewAdapterFunc("test", Download, newTestAdapter) 86 da := m.NewDownloadAdapter("test") 87 if assert.NotNil(da) { 88 assert.Equal("test", da.Name()) 89 assert.Equal(Download, da.Direction()) 90 } 91 92 ua := m.NewUploadAdapter("test") 93 if assert.NotNil(ua) { 94 assert.Equal("test", ua.Name()) 95 assert.Equal(Upload, ua.Direction()) 96 } 97 98 // Test override 99 m.RegisterNewAdapterFunc("test", Upload, newRenamedTestAdapter) 100 ua = m.NewUploadAdapter("test") 101 if assert.NotNil(ua) { 102 assert.Equal("RENAMED", ua.Name()) 103 assert.Equal(Upload, ua.Direction()) 104 } 105 106 da = m.NewDownloadAdapter("test") 107 if assert.NotNil(da) { 108 assert.Equal("test", da.Name()) 109 assert.Equal(Download, da.Direction()) 110 } 111 112 m.RegisterNewAdapterFunc("test", Download, newRenamedTestAdapter) 113 da = m.NewDownloadAdapter("test") 114 if assert.NotNil(da) { 115 assert.Equal("RENAMED", da.Name()) 116 assert.Equal(Download, da.Direction()) 117 } 118 } 119 120 func testAdapterRegButBasicOnly(t *testing.T) { 121 cli, err := lfsapi.NewClient(lfsapi.NewContext(nil, nil, map[string]string{ 122 "lfs.basictransfersonly": "yes", 123 })) 124 require.Nil(t, err) 125 126 m := NewManifest(nil, cli, "", "") 127 128 assert := assert.New(t) 129 130 m.RegisterNewAdapterFunc("test", Upload, newTestAdapter) 131 m.RegisterNewAdapterFunc("test", Download, newTestAdapter) 132 // Will still be created if we ask for them 133 assert.NotNil(m.NewUploadAdapter("test")) 134 assert.NotNil(m.NewDownloadAdapter("test")) 135 136 // But list will exclude 137 ld := m.GetDownloadAdapterNames() 138 assert.Equal([]string{BasicAdapterName}, ld) 139 lu := m.GetUploadAdapterNames() 140 assert.Equal([]string{BasicAdapterName}, lu) 141 }