2019-07-11 12:51:55 +08:00
|
|
|
package memory
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
|
2019-10-03 09:46:20 +01:00
|
|
|
"github.com/micro/go-micro/store"
|
2019-07-11 12:51:55 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestReadRecordExpire(t *testing.T) {
|
|
|
|
s := NewStore()
|
|
|
|
|
|
|
|
var (
|
|
|
|
key = "foo"
|
|
|
|
expire = 100 * time.Millisecond
|
|
|
|
)
|
|
|
|
rec := &store.Record{
|
|
|
|
Key: key,
|
|
|
|
Value: nil,
|
|
|
|
Expiry: expire,
|
|
|
|
}
|
|
|
|
s.Write(rec)
|
|
|
|
|
|
|
|
rrec, err := s.Read(key)
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
if rrec.Expiry >= expire {
|
|
|
|
t.Fatal("expiry of read record is not changed")
|
|
|
|
}
|
|
|
|
|
|
|
|
time.Sleep(expire)
|
|
|
|
|
|
|
|
if _, err := s.Read(key); err != store.ErrNotFound {
|
|
|
|
t.Fatal("expire elapsed, but key still accessable")
|
|
|
|
}
|
|
|
|
}
|