aboutsummaryrefslogtreecommitdiff
path: root/fs/operations/operations_internal_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'fs/operations/operations_internal_test.go')
-rw-r--r--fs/operations/operations_internal_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/fs/operations/operations_internal_test.go b/fs/operations/operations_internal_test.go
new file mode 100644
index 0000000..658249e
--- /dev/null
+++ b/fs/operations/operations_internal_test.go
@@ -0,0 +1,44 @@
+// Internal tests for operations
+
+package operations
+
+import (
+ "context"
+ "fmt"
+ "testing"
+ "time"
+
+ _ "github.com/mewsen/rclone-studip-backend-oot/backend/studip"
+ "github.com/rclone/rclone/fs"
+ "github.com/rclone/rclone/fs/object"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestSizeDiffers(t *testing.T) {
+ ctx := context.Background()
+ ci := fs.GetConfig(ctx)
+ when := time.Now()
+ for _, test := range []struct {
+ ignoreSize bool
+ srcSize int64
+ dstSize int64
+ want bool
+ }{
+ {false, 0, 0, false},
+ {false, 1, 2, true},
+ {false, 1, -1, false},
+ {false, -1, 1, false},
+ {true, 0, 0, false},
+ {true, 1, 2, false},
+ {true, 1, -1, false},
+ {true, -1, 1, false},
+ } {
+ src := object.NewStaticObjectInfo("a", when, test.srcSize, true, nil, nil)
+ dst := object.NewStaticObjectInfo("a", when, test.dstSize, true, nil, nil)
+ oldIgnoreSize := ci.IgnoreSize
+ ci.IgnoreSize = test.ignoreSize
+ got := sizeDiffers(ctx, src, dst)
+ ci.IgnoreSize = oldIgnoreSize
+ assert.Equal(t, test.want, got, fmt.Sprintf("ignoreSize=%v, srcSize=%v, dstSize=%v", test.ignoreSize, test.srcSize, test.dstSize))
+ }
+}