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  }