github.com/xhghs/rclone@v1.51.1-0.20200430155106-e186a28cced8/fs/operations/operations_internal_test.go (about) 1 // Internal tests for operations 2 3 package operations 4 5 import ( 6 "fmt" 7 "testing" 8 "time" 9 10 "github.com/rclone/rclone/fs" 11 "github.com/rclone/rclone/fs/object" 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestSizeDiffers(t *testing.T) { 16 when := time.Now() 17 for _, test := range []struct { 18 ignoreSize bool 19 srcSize int64 20 dstSize int64 21 want bool 22 }{ 23 {false, 0, 0, false}, 24 {false, 1, 2, true}, 25 {false, 1, -1, false}, 26 {false, -1, 1, false}, 27 {true, 0, 0, false}, 28 {true, 1, 2, false}, 29 {true, 1, -1, false}, 30 {true, -1, 1, false}, 31 } { 32 src := object.NewStaticObjectInfo("a", when, test.srcSize, true, nil, nil) 33 dst := object.NewStaticObjectInfo("a", when, test.dstSize, true, nil, nil) 34 oldIgnoreSize := fs.Config.IgnoreSize 35 fs.Config.IgnoreSize = test.ignoreSize 36 got := sizeDiffers(src, dst) 37 fs.Config.IgnoreSize = oldIgnoreSize 38 assert.Equal(t, test.want, got, fmt.Sprintf("ignoreSize=%v, srcSize=%v, dstSize=%v", test.ignoreSize, test.srcSize, test.dstSize)) 39 } 40 }