Files
fission-src/pkg/newcache/poolcache_test.go
T

59 lines
1.0 KiB
Go

package poolcache
import (
"log"
"testing"
"time"
)
func checkErr(err error) {
if err != nil {
log.Panicf("err: %v", err)
}
}
func TestPoolCache(t *testing.T) {
c := NewPoolCache()
c.SetValue("func", "ip", "value")
c.SetValue("func2", "ip2", "value2")
c.SetValue("func2", "ip22", "value22")
cc := c.ListAvailableValue()
if len(cc) != 0 {
log.Panicf("expected 0 available items")
}
active := c.GetTotalAvailable("func2")
if active != 2 {
log.Panicf("expected 2 items")
}
checkErr(c.DeleteValue("func2", "ip2"))
c.MarkAvailable("func", "ip")
cc = c.ListAvailableValue()
if len(cc) != 1 {
log.Panic("expected 1 available items, received", len(cc))
}
_, err := c.GetValue("func")
checkErr(err)
checkErr(c.DeleteValue("func", "ip"))
_, err = c.GetValue("func")
if err == nil {
log.Panicf("found deleted element")
}
c.SetValue("expires", "42", "all answers")
time.Sleep(150 * time.Millisecond)
_, err = c.GetValue("expires")
if err == nil {
log.Panicf("found expired element")
}
}