mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 13:20:55 +00:00
add UT for Scan function
This commit is contained in:
parent
40181c1042
commit
f2bae3e367
4
cache/redis/redis.go
vendored
4
cache/redis/redis.go
vendored
@ -137,12 +137,12 @@ func (rc *Cache) Decr(key string) error {
|
|||||||
|
|
||||||
// ClearAll clean all cache in redis. delete this redis collection.
|
// ClearAll clean all cache in redis. delete this redis collection.
|
||||||
func (rc *Cache) ClearAll() error {
|
func (rc *Cache) ClearAll() error {
|
||||||
c := rc.p.Get()
|
|
||||||
defer c.Close()
|
|
||||||
cachedKeys, err := rc.Scan(rc.key + ":*")
|
cachedKeys, err := rc.Scan(rc.key + ":*")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
c := rc.p.Get()
|
||||||
|
defer c.Close()
|
||||||
for _, str := range cachedKeys {
|
for _, str := range cachedKeys {
|
||||||
if _, err = c.Do("DEL", str); err != nil {
|
if _, err = c.Do("DEL", str); err != nil {
|
||||||
return err
|
return err
|
||||||
|
38
cache/redis/redis_test.go
vendored
38
cache/redis/redis_test.go
vendored
@ -15,6 +15,7 @@
|
|||||||
package redis
|
package redis
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -104,3 +105,40 @@ func TestRedisCache(t *testing.T) {
|
|||||||
t.Error("clear all err")
|
t.Error("clear all err")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCache_Scan(t *testing.T) {
|
||||||
|
timeoutDuration := 10 * time.Second
|
||||||
|
// init
|
||||||
|
bm, err := cache.NewCache("redis", `{"conn": "127.0.0.1:6379"}`)
|
||||||
|
if err != nil {
|
||||||
|
t.Error("init err")
|
||||||
|
}
|
||||||
|
// insert all
|
||||||
|
for i := 0; i < 10000; i++ {
|
||||||
|
if err = bm.Put(fmt.Sprintf("astaxie%d", i), fmt.Sprintf("author%d", i), timeoutDuration); err != nil {
|
||||||
|
t.Error("set Error", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// scan all for the first time
|
||||||
|
keys, err := bm.(*Cache).Scan(DefaultKey + ":*")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("scan Error", err)
|
||||||
|
}
|
||||||
|
if len(keys) != 10000 {
|
||||||
|
t.Error("scan all err")
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear all
|
||||||
|
if err = bm.ClearAll(); err != nil {
|
||||||
|
t.Error("clear all err")
|
||||||
|
}
|
||||||
|
|
||||||
|
// scan all for the second time
|
||||||
|
keys, err = bm.(*Cache).Scan(DefaultKey + ":*")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("scan Error", err)
|
||||||
|
}
|
||||||
|
if len(keys) != 0 {
|
||||||
|
t.Error("scan all err")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user