github.com/xhghs/rclone@v1.51.1-0.20200430155106-e186a28cced8/fs/rc/cache_test.go (about) 1 package rc 2 3 import ( 4 "testing" 5 6 "github.com/rclone/rclone/fs/cache" 7 "github.com/rclone/rclone/fstest/mockfs" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func mockNewFs(t *testing.T) func() { 13 f := mockfs.NewFs("mock", "mock") 14 cache.Put("/", f) 15 return func() { 16 cache.Clear() 17 } 18 } 19 20 func TestGetFsNamed(t *testing.T) { 21 defer mockNewFs(t)() 22 23 in := Params{ 24 "potato": "/", 25 } 26 f, err := GetFsNamed(in, "potato") 27 require.NoError(t, err) 28 assert.NotNil(t, f) 29 30 in = Params{ 31 "sausage": "/", 32 } 33 f, err = GetFsNamed(in, "potato") 34 require.Error(t, err) 35 assert.Nil(t, f) 36 } 37 38 func TestGetFs(t *testing.T) { 39 defer mockNewFs(t)() 40 41 in := Params{ 42 "fs": "/", 43 } 44 f, err := GetFs(in) 45 require.NoError(t, err) 46 assert.NotNil(t, f) 47 } 48 49 func TestGetFsAndRemoteNamed(t *testing.T) { 50 defer mockNewFs(t)() 51 52 in := Params{ 53 "fs": "/", 54 "remote": "hello", 55 } 56 f, remote, err := GetFsAndRemoteNamed(in, "fs", "remote") 57 require.NoError(t, err) 58 assert.NotNil(t, f) 59 assert.Equal(t, "hello", remote) 60 61 f, _, err = GetFsAndRemoteNamed(in, "fsX", "remote") 62 require.Error(t, err) 63 assert.Nil(t, f) 64 65 f, _, err = GetFsAndRemoteNamed(in, "fs", "remoteX") 66 require.Error(t, err) 67 assert.Nil(t, f) 68 69 } 70 71 func TestGetFsAndRemote(t *testing.T) { 72 defer mockNewFs(t)() 73 74 in := Params{ 75 "fs": "/", 76 "remote": "hello", 77 } 78 f, remote, err := GetFsAndRemote(in) 79 require.NoError(t, err) 80 assert.NotNil(t, f) 81 assert.Equal(t, "hello", remote) 82 }