81 lines
1.7 KiB
Go
81 lines
1.7 KiB
Go
package testsuite
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"forge.cadoles.com/arcad/edge/pkg/storage/driver/cache/lfu"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func testMultipleSet(t *testing.T, store lfu.Store[string, string]) error {
|
|
const (
|
|
key = "mykey"
|
|
firstValue = "foo"
|
|
secondValue = "bar"
|
|
thirdValue = "foobar"
|
|
)
|
|
|
|
cache := lfu.NewCache[string, string](store)
|
|
|
|
if e, g := 0, cache.Size(); e != g {
|
|
t.Errorf("cache.Size(): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
if err := cache.Set(key, firstValue); err != nil {
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
if e, g := len(firstValue), cache.Size(); e != g {
|
|
t.Errorf("cache.Size(): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
retrieved, err := cache.Get(key)
|
|
if err != nil {
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
if e, g := firstValue, retrieved; e != g {
|
|
t.Errorf("cache.Get(key): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
if err := cache.Set(key, secondValue); err != nil {
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
if e, g := len(secondValue), cache.Size(); e != g {
|
|
t.Errorf("cache.Size(): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
retrieved, err = cache.Get(key)
|
|
if err != nil {
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
if e, g := secondValue, retrieved; e != g {
|
|
t.Errorf("cache.Get(key): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
if err := cache.Set(key, thirdValue); err != nil {
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
if e, g := len(thirdValue), cache.Size(); e != g {
|
|
t.Errorf("cache.Size(): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
retrieved, err = cache.Get(key)
|
|
if err != nil {
|
|
return errors.WithStack(err)
|
|
}
|
|
|
|
if e, g := thirdValue, retrieved; e != g {
|
|
t.Errorf("cache.Get(key): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
if e, g := len(thirdValue), cache.Size(); e != g {
|
|
t.Errorf("cache.Size(): expected '%v', got '%v'", e, g)
|
|
}
|
|
|
|
return nil
|
|
}
|