cache_test.go (1770B)
1 package cache 2 3 import ( 4 "testing" 5 ) 6 7 func TestNewCache(t *testing.T) { 8 ca := NewCache() 9 if ca.CacheSize != 0 { 10 t.Errorf("cache size not 0") 11 } 12 ca = ca.WithCacheSize(102525) 13 if ca.CacheSize != 102525 { 14 t.Errorf("cache size not 102525") 15 } 16 } 17 18 func TestStateCacheUse(t *testing.T) { 19 ca := NewCache() 20 ca = ca.WithCacheSize(10) 21 ca.Push() 22 err := ca.Add("bar", "baz", 0) 23 if err != nil { 24 t.Error(err) 25 } 26 err = ca.Add("inky", "pinky", 0) 27 if err != nil { 28 t.Error(err) 29 } 30 err = ca.Add("blinky", "clyde", 0) 31 if err == nil { 32 t.Errorf("expected capacity error") 33 } 34 } 35 36 func TestStateDownUp(t *testing.T) { 37 ca := NewCache() 38 err := ca.Push() 39 if err != nil { 40 t.Error(err) 41 } 42 err = ca.Add("foo", "bar", 0) 43 if err != nil { 44 t.Error(err) 45 } 46 err = ca.Add("baz", "xyzzy", 0) 47 if err != nil { 48 t.Error(err) 49 } 50 if ca.CacheUseSize != 8 { 51 t.Errorf("expected cache use size 8 got %v", ca.CacheUseSize) 52 } 53 err = ca.Pop() 54 if err != nil { 55 t.Error(err) 56 } 57 err = ca.Pop() 58 if err != nil { 59 t.Error(err) 60 } 61 err = ca.Pop() 62 if err == nil { 63 t.Errorf("expected out of top frame error") 64 } 65 } 66 67 func TestCacheReset(t *testing.T) { 68 ca := NewCache() 69 err := ca.Add("foo", "bar", 0) 70 if err != nil { 71 t.Error(err) 72 } 73 err = ca.Add("baz", "xyzzy", 0) 74 if err != nil { 75 t.Error(err) 76 } 77 ca.Reset() 78 if ca.CacheUseSize != 0 { 79 t.Errorf("expected cache use size 0, got %v", ca.CacheUseSize) 80 } 81 } 82 83 func TestCacheLoadDup(t *testing.T) { 84 ca := NewCache() 85 err := ca.Push() 86 if err != nil { 87 t.Error(err) 88 } 89 err = ca.Add("foo", "xyzzy", 0) 90 if err != nil { 91 t.Error(err) 92 } 93 err = ca.Push() 94 err = ca.Add("foo", "baz", 0) 95 if err == nil { 96 t.Errorf("expected fail on duplicate load") 97 } 98 ca.Pop() 99 err = ca.Add("foo", "baz", 0) 100 if err != nil { 101 t.Error(err) 102 } 103 } 104