1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| package lru
import ( "github.com/stretchr/testify/assert" "testing" )
func TestNewCache(t *testing.T) { cache := NewCache(5) assert.NotNil(t, cache) }
func TestCache_Put(t *testing.T) { cache := NewCache(5) cache.Put("k1", "v1") assert.Equal(t, 1, cache.Len()) cache.Remove("k1") assert.Equal(t, 0, cache.Len()) }
func TestCache_Remove(t *testing.T) { cache := NewCache(5) assert.Equal(t, 0, cache.Len())
cache.Remove("k1") assert.Equal(t, 0, cache.Len())
cache.Put("k1", "v1") assert.Equal(t, 1, cache.Len())
cache.Remove("k1") assert.Equal(t, 0, cache.Len()) }
func TestCache_Get(t *testing.T) { cache := NewCache(1) var val Value var ok bool { cache.Put("k1", "v1") val, ok = cache.Get("k1") assert.True(t, ok) assert.Equal(t, "v1", val) assert.Equal(t, 1, cache.Len()) cache.Clear() }
{ { _, ok = cache.Get("k2") assert.False(t, ok) }
{ cache.Put("k1", "v1") cache.Put("k2", "v2") _, ok = cache.Get("k1") assert.False(t, ok)
val, ok = cache.Get("k2") assert.True(t, ok) assert.Equal(t, "v2", val) cache.Clear() }
} }
func TestCache_Len(t *testing.T) { cache := NewCache(1) assert.Equal(t, 0, cache.Len())
cache.Put("k1", "v1") assert.Equal(t, 1, cache.Len())
cache.Put("k2", "v2") assert.Equal(t, 1, cache.Len()) }
func TestCache_Clear(t *testing.T) { cache := NewCache(1) assert.Equal(t, 0, cache.Len())
cache.Put("k1", "v1") assert.Equal(t, 1, cache.Len())
cache.Put("k2", "v2") assert.Equal(t, 1, cache.Len())
cache.Clear() assert.Equal(t, 0, cache.Len()) }
|