1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00
mxpv-podsync/pkg/feeds/feeds_test.go

96 lines
2.0 KiB
Go
Raw Normal View History

2017-11-02 18:03:44 -07:00
//go:generate mockgen -source=feeds.go -destination=feeds_mock_test.go -package=feeds
2017-08-13 19:28:43 -07:00
package feeds
import (
"testing"
2017-11-03 19:16:15 -07:00
"github.com/go-pg/pg"
2017-08-13 19:28:43 -07:00
"github.com/golang/mock/gomock"
2017-08-19 16:58:23 -07:00
"github.com/mxpv/podsync/pkg/api"
2017-11-03 16:04:33 -07:00
"github.com/mxpv/podsync/pkg/model"
2017-08-13 19:28:43 -07:00
"github.com/stretchr/testify/require"
2017-11-03 17:19:44 -07:00
"github.com/ventu-io/go-shortid"
2017-08-13 19:28:43 -07:00
)
2017-11-03 19:16:15 -07:00
var feed = &model.Feed{
HashID: "123",
ItemID: "xyz",
Provider: api.ProviderVimeo,
LinkType: api.LinkTypeChannel,
PageSize: 50,
Quality: api.QualityHigh,
Format: api.FormatVideo,
}
2017-08-13 19:28:43 -07:00
func TestService_CreateFeed(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
2017-11-03 17:19:44 -07:00
s := Service{
sid: shortid.GetDefault(),
2017-11-03 19:16:15 -07:00
db: createDatabase(t),
2017-11-03 15:04:33 -07:00
builders: map[api.Provider]builder{api.ProviderYoutube: nil},
2017-08-13 19:28:43 -07:00
}
req := &api.CreateFeedRequest{
URL: "youtube.com/channel/123",
PageSize: 50,
2017-11-03 15:04:33 -07:00
Quality: api.QualityHigh,
Format: api.FormatVideo,
2017-08-13 19:28:43 -07:00
}
2017-08-20 18:55:56 -07:00
hashId, err := s.CreateFeed(req, &api.Identity{})
2017-08-13 19:28:43 -07:00
require.NoError(t, err)
2017-11-03 17:19:44 -07:00
require.NotEmpty(t, hashId)
2017-08-13 19:28:43 -07:00
}
func TestService_GetFeed(t *testing.T) {
2017-11-03 19:16:15 -07:00
s := Service{db: createDatabase(t)}
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
_, err := s.BuildFeed(feed.HashID)
require.NoError(t, err)
}
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
func TestService_WrongID(t *testing.T) {
s := Service{db: createDatabase(t)}
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
_, err := s.BuildFeed("invalid_feed_id")
require.Error(t, err)
}
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
func TestService_UpdateLastAccess(t *testing.T) {
s := Service{db: createDatabase(t)}
feed1, err := s.QueryFeed(feed.HashID)
require.NoError(t, err)
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
feed2, err := s.QueryFeed(feed.HashID)
2017-08-13 19:28:43 -07:00
require.NoError(t, err)
2017-11-03 19:16:15 -07:00
require.True(t, feed2.LastAccess.After(feed1.LastAccess))
2017-08-13 19:28:43 -07:00
}
func TestService_GetMetadata(t *testing.T) {
2017-11-03 19:16:15 -07:00
s := Service{db: createDatabase(t)}
_, err := s.GetMetadata(feed.HashID)
require.NoError(t, err)
}
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
func createDatabase(t *testing.T) *pg.DB {
opts, err := pg.ParseURL("postgres://postgres:@localhost/podsync?sslmode=disable")
if err != nil {
require.NoError(t, err)
}
db := pg.Connect(opts)
2017-08-13 19:28:43 -07:00
2017-11-03 19:16:15 -07:00
_, err = db.Model(&model.Feed{}).Where("1=1").Delete()
2017-08-13 19:28:43 -07:00
require.NoError(t, err)
2017-11-03 19:16:15 -07:00
err = db.Insert(feed)
require.NoError(t, err)
return db
2017-08-13 19:28:43 -07:00
}