101 lines
2.1 KiB
Go
101 lines
2.1 KiB
Go
package layer
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/data"
|
|
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func newTestNodeVersion(id oid.ID, name string) *data.NodeVersion {
|
|
return &data.NodeVersion{
|
|
BaseNodeVersion: data.BaseNodeVersion{
|
|
OID: id,
|
|
FilePath: name,
|
|
},
|
|
}
|
|
}
|
|
|
|
func TestTryDirectory(t *testing.T) {
|
|
var id oid.ID
|
|
|
|
cases := []struct {
|
|
name string
|
|
prefix string
|
|
result string
|
|
node *data.NodeVersion
|
|
delimiter string
|
|
}{
|
|
{
|
|
name: "small.jpg",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "small.jpg"),
|
|
},
|
|
{
|
|
name: "small.jpg not matched prefix",
|
|
prefix: "big",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "small.jpg"),
|
|
},
|
|
{
|
|
name: "small.jpg delimiter",
|
|
delimiter: "/",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "small.jpg"),
|
|
},
|
|
{
|
|
name: "test/small.jpg",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "test/small.jpg"),
|
|
},
|
|
{
|
|
name: "test/small.jpg with prefix and delimiter",
|
|
prefix: "test/",
|
|
delimiter: "/",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "test/small.jpg"),
|
|
},
|
|
{
|
|
name: "a/b/small.jpg",
|
|
prefix: "a",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "a/b/small.jpg"),
|
|
},
|
|
{
|
|
name: "a/b/small.jpg",
|
|
prefix: "a/",
|
|
delimiter: "/",
|
|
result: "a/b/",
|
|
node: newTestNodeVersion(id, "a/b/small.jpg"),
|
|
},
|
|
{
|
|
name: "a/b/c/small.jpg",
|
|
prefix: "a/",
|
|
delimiter: "/",
|
|
result: "a/b/",
|
|
node: newTestNodeVersion(id, "a/b/c/small.jpg"),
|
|
},
|
|
{
|
|
name: "a/b/c/small.jpg",
|
|
prefix: "a/b/c/s",
|
|
delimiter: "/",
|
|
result: "",
|
|
node: newTestNodeVersion(id, "a/b/c/small.jpg"),
|
|
},
|
|
{
|
|
name: "a/b/c/big.jpg",
|
|
prefix: "a/b/",
|
|
delimiter: "/",
|
|
result: "a/b/c/",
|
|
node: newTestNodeVersion(id, "a/b/c/big.jpg"),
|
|
},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
dirName := tryDirectoryName(tc.node, tc.prefix, tc.delimiter)
|
|
require.Equal(t, tc.result, dirName)
|
|
})
|
|
}
|
|
}
|