mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-25 21:49:20 +00:00
88 lines
2.3 KiB
Go
88 lines
2.3 KiB
Go
package storage
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestCreateFeed(t *testing.T) {
|
|
db := testDB()
|
|
feed1 := db.CreateFeed("title", "", "http://example.com", "http://example.com/feed.xml", nil)
|
|
if feed1 == nil || feed1.Id == 0 {
|
|
t.Fatal("expected feed")
|
|
}
|
|
feed2 := db.GetFeed(feed1.Id)
|
|
if feed2 == nil || !reflect.DeepEqual(feed1, feed2) {
|
|
t.Fatal("invalid feed")
|
|
}
|
|
}
|
|
|
|
func TestCreateFeedSameLink(t *testing.T) {
|
|
db := testDB()
|
|
feed1 := db.CreateFeed("title", "", "", "http://example1.com/feed.xml", nil)
|
|
if feed1 == nil || feed1.Id == 0 {
|
|
t.Fatal("expected feed")
|
|
}
|
|
|
|
for i := 0; i < 10; i++ {
|
|
db.CreateFeed("title", "", "", "http://example2.com/feed.xml", nil)
|
|
}
|
|
|
|
feed2 := db.CreateFeed("title", "", "http://example.com", "http://example1.com/feed.xml", nil)
|
|
if feed1.Id != feed2.Id {
|
|
t.Fatalf("expected the same feed.\nwant: %#v\nhave: %#v", feed1, feed2)
|
|
}
|
|
}
|
|
|
|
func TestReadFeed(t *testing.T) {
|
|
db := testDB()
|
|
if db.GetFeed(100500) != nil {
|
|
t.Fatal("cannot get nonexistent feed")
|
|
}
|
|
|
|
feed1 := db.CreateFeed("feed 1", "", "http://example1.com", "http://example1.com/feed.xml", nil)
|
|
feed2 := db.CreateFeed("feed 2", "", "http://example2.com", "http://example2.com/feed.xml", nil)
|
|
feeds := db.ListFeeds()
|
|
if !reflect.DeepEqual(feeds, []Feed{*feed1, *feed2}) {
|
|
t.Fatalf("invalid feed list: %#v", feeds)
|
|
}
|
|
}
|
|
|
|
func TestUpdateFeed(t *testing.T) {
|
|
db := testDB()
|
|
feed1 := db.CreateFeed("feed 1", "", "http://example1.com", "http://example1.com/feed.xml", nil)
|
|
folder := db.CreateFolder("test")
|
|
icon := []byte("icon")
|
|
|
|
db.RenameFeed(feed1.Id, "newtitle")
|
|
db.UpdateFeedFolder(feed1.Id, &folder.Id)
|
|
db.UpdateFeedIcon(feed1.Id, &icon)
|
|
|
|
feed2 := db.GetFeed(feed1.Id)
|
|
if feed2.Title != "newtitle" {
|
|
t.Error("invalid title")
|
|
}
|
|
if feed2.FolderId == nil || *feed2.FolderId != folder.Id {
|
|
t.Error("invalid folder")
|
|
}
|
|
if !feed2.HasIcon || string(*feed2.Icon) != "icon" {
|
|
t.Error("invalid icon")
|
|
}
|
|
}
|
|
|
|
func TestDeleteFeed(t *testing.T) {
|
|
db := testDB()
|
|
feed1 := db.CreateFeed("title", "", "http://example.com", "http://example.com/feed.xml", nil)
|
|
|
|
if db.DeleteFeed(100500) {
|
|
t.Error("cannot delete what does not exist")
|
|
}
|
|
|
|
if !db.DeleteFeed(feed1.Id) {
|
|
t.Fatal("did not delete existing feed")
|
|
}
|
|
if db.GetFeed(feed1.Id) != nil {
|
|
t.Fatal("feed still exists")
|
|
}
|
|
}
|