replace is size-aware

This commit is contained in:
Karl Seguin
2014-11-21 15:45:11 +07:00
parent 41ccfbb39a
commit 78e597cdae
6 changed files with 72 additions and 9 deletions

View File

@@ -171,3 +171,27 @@ func (_ LayeredCacheTests) SetUpdatesSizeOnDelta() {
time.Sleep(time.Millisecond * 10)
Expect(cache.size).To.Equal(int64(5))
}
func (_ LayeredCacheTests) ReplaceDoesNotchangeSizeIfNotSet() {
cache := Layered(Configure())
cache.Set("pri", "1", &SizedItem{1, 2}, time.Minute)
cache.Set("pri", "2", &SizedItem{1, 2}, time.Minute)
cache.Set("pri", "3", &SizedItem{1, 2}, time.Minute)
cache.Replace("sec", "3", &SizedItem{1, 2})
Expect(cache.size).To.Equal(int64(6))
}
func (_ LayeredCacheTests) ReplaceChangesSize() {
cache := Layered(Configure())
cache.Set("pri", "1", &SizedItem{1, 2}, time.Minute)
cache.Set("pri", "2", &SizedItem{1, 2}, time.Minute)
cache.Replace("pri", "2", &SizedItem{1, 2})
Expect(cache.size).To.Equal(int64(4))
cache.Replace("pri", "2", &SizedItem{1, 1})
Expect(cache.size).To.Equal(int64(3))
cache.Replace("pri", "2", &SizedItem{1, 3})
Expect(cache.size).To.Equal(int64(5))
}