godingtalk/util_test.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)
}