forked from suguo/godingtalk
79 lines
1.4 KiB
Go
79 lines
1.4 KiB
Go
package godingtalk
|
|
|
|
import "testing"
|
|
import "time"
|
|
|
|
type ExpiresData struct {
|
|
Data string
|
|
Expires int `json:"expires_in"`
|
|
Created int64 `json:"created"`
|
|
}
|
|
|
|
func (e *ExpiresData) CreatedAt() int64 {
|
|
return e.Created
|
|
}
|
|
|
|
func (e *ExpiresData) ExpiresIn() int {
|
|
return e.Expires
|
|
}
|
|
|
|
func TestFileCache(t *testing.T) {
|
|
cache := NewFileCache(".test_cache")
|
|
data := ExpiresData{
|
|
Data: "Hello World!",
|
|
Expires: 7200,
|
|
Created: time.Now().Unix(),
|
|
}
|
|
cache.Set(&data)
|
|
|
|
var data2 ExpiresData
|
|
cache.Get(&data2)
|
|
t.Logf("%+v %+v", data, data2)
|
|
|
|
if data2.Created != data.Created {
|
|
t.Errorf("FileCache error")
|
|
}
|
|
|
|
data = ExpiresData{
|
|
Data: "Hello World 2!",
|
|
Expires: 0,
|
|
Created: time.Now().Unix(),
|
|
}
|
|
cache.Set(&data)
|
|
err := cache.Get(&data2)
|
|
if err == nil {
|
|
t.Error("FileCache error: err should not be nil")
|
|
}
|
|
t.Logf("%+v %+v", data, data2)
|
|
}
|
|
|
|
func TestInMemoryCache(t *testing.T) {
|
|
cache := NewInMemoryCache()
|
|
data := ExpiresData{
|
|
Data: "Hello World!",
|
|
Expires: 7200,
|
|
Created: time.Now().Unix(),
|
|
}
|
|
cache.Set(&data)
|
|
|
|
var data2 ExpiresData
|
|
cache.Get(&data2)
|
|
t.Logf("%+v %+v", data, data2)
|
|
|
|
if data2.Created != data.Created {
|
|
t.Errorf("InMemoryCache error")
|
|
}
|
|
|
|
data = ExpiresData{
|
|
Data: "Hello World 2!",
|
|
Expires: 0,
|
|
Created: time.Now().Unix(),
|
|
}
|
|
cache.Set(&data)
|
|
err := cache.Get(&data2)
|
|
if err == nil {
|
|
t.Error("InMemoryCache error: err should not be nil")
|
|
}
|
|
t.Logf("%+v %+v", data, data2)
|
|
}
|