mirror of
https://github.com/datarhei/core.git
synced 2025-09-27 04:16:25 +08:00
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package fs
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestReadOnly(t *testing.T) {
|
|
mem, err := NewMemFilesystemFromDir(".", MemConfig{})
|
|
require.NoError(t, err)
|
|
|
|
ro, err := NewReadOnlyFilesystem(mem)
|
|
require.NoError(t, err)
|
|
|
|
err = ro.Symlink("/readonly.go", "/foobar.go")
|
|
require.Error(t, err)
|
|
|
|
_, _, err = ro.WriteFile("/readonly.go", []byte("foobar"))
|
|
require.Error(t, err)
|
|
|
|
_, _, err = ro.WriteFileReader("/readonly.go", strings.NewReader("foobar"))
|
|
require.Error(t, err)
|
|
|
|
_, _, err = ro.WriteFileSafe("/readonly.go", []byte("foobar"))
|
|
require.Error(t, err)
|
|
|
|
err = ro.MkdirAll("/foobar/baz", 0700)
|
|
require.Error(t, err)
|
|
|
|
res := ro.Remove("/readonly.go")
|
|
require.Equal(t, int64(-1), res)
|
|
|
|
res = ro.RemoveAll()
|
|
require.Equal(t, int64(0), res)
|
|
|
|
rop, ok := ro.(PurgeFilesystem)
|
|
require.True(t, ok, "must implement PurgeFilesystem")
|
|
|
|
size, _ := ro.Size()
|
|
res = rop.Purge(size)
|
|
require.Equal(t, int64(0), res)
|
|
|
|
ros, ok := ro.(SizedFilesystem)
|
|
require.True(t, ok, "must implement SizedFilesystem")
|
|
|
|
err = ros.Resize(100)
|
|
require.Error(t, err)
|
|
}
|