github.com/git-lfs/git-lfs@v2.5.2+incompatible/tq/custom_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 func TestCustomTransferBasicConfig(t *testing.T) { 12 path := "/path/to/binary" 13 cli, err := lfsapi.NewClient(lfsapi.NewContext(nil, nil, map[string]string{ 14 "lfs.customtransfer.testsimple.path": path, 15 })) 16 require.Nil(t, err) 17 18 m := NewManifest(nil, cli, "", "") 19 u := m.NewUploadAdapter("testsimple") 20 assert.NotNil(t, u, "Upload adapter should be present") 21 cu, _ := u.(*customAdapter) 22 assert.NotNil(t, cu, "Upload adapter should be customAdapter") 23 assert.Equal(t, cu.path, path, "Path should be correct") 24 assert.Equal(t, cu.args, "", "args should be blank") 25 assert.Equal(t, cu.concurrent, true, "concurrent should be defaulted") 26 27 d := m.NewDownloadAdapter("testsimple") 28 assert.NotNil(t, d, "Download adapter should be present") 29 cd, _ := u.(*customAdapter) 30 assert.NotNil(t, cd, "Download adapter should be customAdapter") 31 assert.Equal(t, cd.path, path, "Path should be correct") 32 assert.Equal(t, cd.args, "", "args should be blank") 33 assert.Equal(t, cd.concurrent, true, "concurrent should be defaulted") 34 } 35 36 func TestCustomTransferDownloadConfig(t *testing.T) { 37 path := "/path/to/binary" 38 args := "-c 1 --whatever" 39 cli, err := lfsapi.NewClient(lfsapi.NewContext(nil, nil, map[string]string{ 40 "lfs.customtransfer.testdownload.path": path, 41 "lfs.customtransfer.testdownload.args": args, 42 "lfs.customtransfer.testdownload.concurrent": "false", 43 "lfs.customtransfer.testdownload.direction": "download", 44 })) 45 require.Nil(t, err) 46 47 m := NewManifest(nil, cli, "", "") 48 u := m.NewUploadAdapter("testdownload") 49 assert.NotNil(t, u, "Upload adapter should always be created") 50 cu, _ := u.(*customAdapter) 51 assert.Nil(t, cu, "Upload adapter should NOT be custom (default to basic)") 52 53 d := m.NewDownloadAdapter("testdownload") 54 assert.NotNil(t, d, "Download adapter should be present") 55 cd, _ := d.(*customAdapter) 56 assert.NotNil(t, cd, "Download adapter should be customAdapter") 57 assert.Equal(t, cd.path, path, "Path should be correct") 58 assert.Equal(t, cd.args, args, "args should be correct") 59 assert.Equal(t, cd.concurrent, false, "concurrent should be set") 60 } 61 62 func TestCustomTransferUploadConfig(t *testing.T) { 63 path := "/path/to/binary" 64 args := "-c 1 --whatever" 65 cli, err := lfsapi.NewClient(lfsapi.NewContext(nil, nil, map[string]string{ 66 "lfs.customtransfer.testupload.path": path, 67 "lfs.customtransfer.testupload.args": args, 68 "lfs.customtransfer.testupload.concurrent": "false", 69 "lfs.customtransfer.testupload.direction": "upload", 70 })) 71 require.Nil(t, err) 72 73 m := NewManifest(nil, cli, "", "") 74 d := m.NewDownloadAdapter("testupload") 75 assert.NotNil(t, d, "Download adapter should always be created") 76 cd, _ := d.(*customAdapter) 77 assert.Nil(t, cd, "Download adapter should NOT be custom (default to basic)") 78 79 u := m.NewUploadAdapter("testupload") 80 assert.NotNil(t, u, "Upload adapter should be present") 81 cu, _ := u.(*customAdapter) 82 assert.NotNil(t, cu, "Upload adapter should be customAdapter") 83 assert.Equal(t, cu.path, path, "Path should be correct") 84 assert.Equal(t, cu.args, args, "args should be correct") 85 assert.Equal(t, cu.concurrent, false, "concurrent should be set") 86 } 87 88 func TestCustomTransferBothConfig(t *testing.T) { 89 path := "/path/to/binary" 90 args := "-c 1 --whatever --yeah" 91 cli, err := lfsapi.NewClient(lfsapi.NewContext(nil, nil, map[string]string{ 92 "lfs.customtransfer.testboth.path": path, 93 "lfs.customtransfer.testboth.args": args, 94 "lfs.customtransfer.testboth.concurrent": "yes", 95 "lfs.customtransfer.testboth.direction": "both", 96 })) 97 require.Nil(t, err) 98 99 m := NewManifest(nil, cli, "", "") 100 d := m.NewDownloadAdapter("testboth") 101 assert.NotNil(t, d, "Download adapter should be present") 102 cd, _ := d.(*customAdapter) 103 assert.NotNil(t, cd, "Download adapter should be customAdapter") 104 assert.Equal(t, cd.path, path, "Path should be correct") 105 assert.Equal(t, cd.args, args, "args should be correct") 106 assert.Equal(t, cd.concurrent, true, "concurrent should be set") 107 108 u := m.NewUploadAdapter("testboth") 109 assert.NotNil(t, u, "Upload adapter should be present") 110 cu, _ := u.(*customAdapter) 111 assert.NotNil(t, cu, "Upload adapter should be customAdapter") 112 assert.Equal(t, cu.path, path, "Path should be correct") 113 assert.Equal(t, cu.args, args, "args should be correct") 114 assert.Equal(t, cu.concurrent, true, "concurrent should be set") 115 }