/
githubmirror
/
rclone
Обзор
Документация
Войти
/
githubmirror
/
rclone
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
cmd/serve/restic/cache_test.go
55 строк
1 KB
Nolan Woods
restic: refactor to use lib/http
15 дек 2022, 15:38
15 дек 2022, 15:38
52443c2
Код
Авторство
О чём код?
package restic import ( "sort" "strings" "testing" "github.com/rclone/rclone/fstest/mockobject" "github.com/stretchr/testify/assert" ) func (c *cache) String() string { keys := []string{} c.mu.Lock() for k := range c.items { keys = append(keys, k) } c.mu.Unlock() sort.Strings(keys) return strings.Join(keys, ",") } func TestCacheCRUD(t *testing.T) { c := newCache(true) assert.Equal(t, "", c.String()) assert.Nil(t, c.find("potato")) o := mockobject.New("potato") c.add(o.Remote(), o) assert.Equal(t, "potato", c.String()) assert.Equal(t, o, c.find("potato")) c.remove("potato") assert.Equal(t, "", c.String()) assert.Nil(t, c.find("potato")) c.remove("notfound") } func TestCacheRemovePrefix(t *testing.T) { c := newCache(true) for _, remote := range []string{ "a", "b", "b/1", "b/2/3", "b/2/4", "b/2", "c", } { c.add(remote, mockobject.New(remote)) } assert.Equal(t, "a,b,b/1,b/2,b/2/3,b/2/4,c", c.String()) c.removePrefix("b") assert.Equal(t, "a,b,c", c.String()) c.removePrefix("/") assert.Equal(t, "", c.String()) }