/
gus
/
caches
Обзор
Документация
Войти
/
gus
/
caches
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
cache/cache_test.go
95 строк
2 KB
da.guselnikov
append cache with expiration
06 май 2024, 03:33
06 май 2024, 03:33
dd69bf1
Код
Авторство
О чём код?
package cache import ( "testing" "time" "github.com/stretchr/testify/assert" ) var testData = map[string]string{ "key1": "value1", "key2": "value3", "key3": "value3", } func TestCache_Append(t *testing.T) { cache := NewCache[string, string](0, 0) count := cache.Append(testData) assert.Equal(t, 3, count, "The two numbers should be the same") } func TestCache_Clear(t *testing.T) { cache := NewCache[string, string](0, 0) cache.Append(testData) cache.Clear() assert.Equal(t, 0, cache.Count(), "values must be empty") } func TestCache_Get(t *testing.T) { cache := NewCache[string, string](0, 0) cache.Append(testData) value, found := cache.Get("key3") assert.Equal(t, true, found, "key not found") assert.Equal(t, testData["key3"], value, "values not equal") } func TestCache_Set(t *testing.T) { cache := NewCache[string, string](0, 0) cache.Set("key_test", "value_test", 0) value, found := cache.Get("key_test") assert.Equal(t, true, found, "Value not added") assert.Equal(t, "value_test", value, "Error added value") } func TestCache_Exists(t *testing.T) { cache := NewCache[string, string](0, 0) cache.Set("key_test", "value_test", 0) found := cache.Exists("key_test") assert.Equal(t, true, found, "Value not exists") } func TestCache_Delete(t *testing.T) { key := "key_test" cache := NewCache[string, string](0, 0) cache.Set(key, "value_test", 0) cache.Delete(key) _, found := cache.Get(key) assert.Equal(t, false, found, "The value has not been deleted") } func TestCache_Expiration(t *testing.T) { cache := NewCache[string, string](0, 0) cache.Set("key_test", "value_test", 100*time.Millisecond) time.Sleep(200 * time.Millisecond) _, found := cache.Get("key_test") assert.Equal(t, false, found, "The value has not been expired") } func TestCache_Cleanup(t *testing.T) { cache := NewCache[string, string](500*time.Millisecond, 1*time.Second) cache.Append(testData) time.Sleep(1500 * time.Millisecond) count := cache.Count() assert.Equal(t, 0, count, "The values has not been cleanup") } func TestCache_gorutine(t *testing.T) { cache := NewCache[string, string](0, 0) go func() { for i := 0; i < 10; i++ { cache.Set("key_test", "value_test", 0) } }() var value string var found bool for !found { value, found = cache.Get("key_test") } assert.Equal(t, true, found, "Value not added") assert.Equal(t, "value_test", value, "Error added value") }