forked from mirrors/gotosocial
42 lines
961 B
Go
42 lines
961 B
Go
|
package cache_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/superseriousbusiness/gotosocial/internal/cache"
|
||
|
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
||
|
)
|
||
|
|
||
|
func TestStatusCache(t *testing.T) {
|
||
|
cache := cache.NewStatusCache()
|
||
|
|
||
|
// Attempt to place a status
|
||
|
status := gtsmodel.Status{
|
||
|
ID: "id",
|
||
|
URI: "uri",
|
||
|
URL: "url",
|
||
|
}
|
||
|
cache.Put(&status)
|
||
|
|
||
|
var ok bool
|
||
|
var check *gtsmodel.Status
|
||
|
|
||
|
// Check we can retrieve
|
||
|
check, ok = cache.GetByID(status.ID)
|
||
|
if !ok || !statusIs(&status, check) {
|
||
|
t.Fatal("Could not find expected status")
|
||
|
}
|
||
|
check, ok = cache.GetByURI(status.URI)
|
||
|
if !ok || !statusIs(&status, check) {
|
||
|
t.Fatal("Could not find expected status")
|
||
|
}
|
||
|
check, ok = cache.GetByURL(status.URL)
|
||
|
if !ok || !statusIs(&status, check) {
|
||
|
t.Fatal("Could not find expected status")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func statusIs(status1, status2 *gtsmodel.Status) bool {
|
||
|
return status1.ID == status2.ID && status1.URI == status2.URI && status1.URL == status2.URL
|
||
|
}
|