42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
package storage
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewMultiKeepsDuplicateBasenames(t *testing.T) {
|
|
root := t.TempDir()
|
|
first := filepath.Join(root, "same")
|
|
second := filepath.Join(root, "other", "same")
|
|
if err := os.MkdirAll(first, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := os.MkdirAll(second, 0o755); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
m := NewMulti([]string{first, second})
|
|
if len(m.Roots) != 2 || len(m.Names) != 2 {
|
|
t.Fatalf("duplicate basename dropped: roots=%d names=%v", len(m.Roots), m.Names)
|
|
}
|
|
if m.Names[0] != "same" || m.Names[1] != "same-2" {
|
|
t.Fatalf("unexpected virtual names: %v", m.Names)
|
|
}
|
|
}
|
|
|
|
func TestMultiRejectsMutationOfVirtualRoot(t *testing.T) {
|
|
root1 := t.TempDir()
|
|
root2 := t.TempDir()
|
|
m := NewMulti([]string{root1, root2})
|
|
if err := m.Remove(m.Names[0]); err == nil {
|
|
t.Fatal("expected virtual root removal to be rejected")
|
|
}
|
|
if _, err := m.Create(m.Names[0]); err == nil {
|
|
t.Fatal("expected virtual root creation to be rejected")
|
|
}
|
|
if err := m.Rename(m.Names[0], m.Names[1]); err == nil {
|
|
t.Fatal("expected virtual root rename to be rejected")
|
|
}
|
|
}
|