cacheinterface/lru_test.go

97 lines
1.5 KiB
Go

package cache
import (
"testing"
"time"
)
func TestNew_LruURI(t *testing.T) {
cache, err := New("lru://")
if err != nil {
t.Fatal("Error creating cache:", err)
}
if _, ok := cache.(*LruCache); !ok {
t.Fatal("Cache is not instance of MemoryCache")
}
}
func TestLruCache_Get(t *testing.T) {
cache, err := New("lru://")
if err != nil {
t.Fatal("Error creating cache:", err)
}
obj := "test"
cache.Set("test", obj, time.Minute)
var new string
cache.Get("test", &new)
if obj != new {
t.Fatal("Expected", obj, "got", new)
}
}
func TestLruCache_GetRaw(t *testing.T) {
cache, err := New("lru://")
if err != nil {
t.Fatal("Error creating cache:", err)
}
obj := "test"
cache.Set("test", obj, time.Minute)
v, err := cache.Get("test")
if err != nil {
t.Fatal("Unable to get value:", err)
}
new := string(v)
if obj != new {
t.Fatal("Expected", obj, "got", new)
}
}
func TestLruCache_Has(t *testing.T) {
cache, err := New("lru://")
if err != nil {
t.Fatal("Error creating cache:", err)
}
cache.Set("test", "test", time.Minute)
if !cache.Has("test") {
t.Fatal("Expected cache to have object 'test'")
}
}
func TestLruCache_Del(t *testing.T) {
cache, err := New("lru://")
if err != nil {
t.Fatal("Error creating cache:", err)
}
cache.Set("test", "test", time.Minute)
if !cache.Has("test") {
t.Fatal("Expected cache to have object 'test'")
}
cache.Del("test")
if cache.Has("test") {
t.Fatal("Cache did not properly delete item")
}
}