You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

55 lines
1.3 KiB

package cache
import (
"testing"
"time"
)
func TestCache(t *testing.T) {
appCache, err := Bootstrap()
if err != nil {
t.Errorf("bootstrap cache failed: %v\n", err)
}
if err := appCache.Set("key", "value"); err != nil {
t.Errorf("set cache failed: %v\n", err)
}
// real result
value, err := appCache.Get("key")
if err != nil {
t.Errorf("get cache failed: %v\n", err)
}
if value == nil {
t.Error("get cache didn't fetch a value for set key")
} else if *value != "value" {
t.Errorf("get cache value should be \"value\" but is \"%s\"", *value)
}
// nil result
value, err = appCache.Get("notExisting")
if err != nil {
t.Errorf("get cache failed: %v\n", err)
}
if value != nil {
t.Error("get cache must return nil for non existing key")
}
if err := appCache.SetWithTTL("ttl", "10", 3); err != nil {
t.Errorf("set cache failed: %v\n", err)
}
value, err = appCache.Get("ttl")
if err != nil {
t.Errorf("get cache failed: %v\n", err)
}
if value == nil {
t.Error("get cache didn't fetch a value for set key")
} else if *value != "10" {
t.Errorf("get cache value should be \"10\" but is \"%s\"", *value)
}
time.Sleep(3 * time.Second)
value, err = appCache.Get("ttl")
if err != nil {
t.Errorf("get cache failed: %v\n", err)
}
if value != nil {
t.Error("get cache must return nil for expired key")
}
appCache.Close()
}