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) }) } }