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
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()
|
|
}
|