github.com/sequix/cortex@v1.1.6/pkg/chunk/cache/memcached_client_test.go (about) 1 package cache_test 2 3 import ( 4 "sync" 5 6 "github.com/bradfitz/gomemcache/memcache" 7 ) 8 9 type mockMemcache struct { 10 sync.RWMutex 11 contents map[string][]byte 12 } 13 14 func newMockMemcache() *mockMemcache { 15 return &mockMemcache{ 16 contents: map[string][]byte{}, 17 } 18 } 19 20 func (m *mockMemcache) GetMulti(keys []string) (map[string]*memcache.Item, error) { 21 m.RLock() 22 defer m.RUnlock() 23 result := map[string]*memcache.Item{} 24 for _, k := range keys { 25 if c, ok := m.contents[k]; ok { 26 result[k] = &memcache.Item{ 27 Value: c, 28 } 29 } 30 } 31 return result, nil 32 } 33 34 func (m *mockMemcache) Set(item *memcache.Item) error { 35 m.Lock() 36 defer m.Unlock() 37 m.contents[item.Key] = item.Value 38 return nil 39 }