mirror of
https://github.com/mxpv/podsync.git
synced 2024-05-11 05:55:04 +00:00
74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
//go:generate mockgen -source=feeds.go -destination=feeds_mock_test.go -package=feeds
|
|
|
|
package feeds
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/golang/mock/gomock"
|
|
"github.com/mxpv/podsync/pkg/api"
|
|
"github.com/mxpv/podsync/pkg/model"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestService_CreateFeed(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
defer ctrl.Finish()
|
|
|
|
id := NewMockidService(ctrl)
|
|
id.EXPECT().Generate(gomock.Any()).Times(1).Return("123", nil)
|
|
|
|
storage := NewMockstorageService(ctrl)
|
|
storage.EXPECT().CreateFeed(gomock.Any()).Times(1).Return(nil)
|
|
|
|
s := service{
|
|
id: id,
|
|
storage: storage,
|
|
builders: map[api.Provider]builder{api.ProviderYoutube: nil},
|
|
}
|
|
|
|
req := &api.CreateFeedRequest{
|
|
URL: "youtube.com/channel/123",
|
|
PageSize: 50,
|
|
Quality: api.QualityHigh,
|
|
Format: api.FormatVideo,
|
|
}
|
|
|
|
hashId, err := s.CreateFeed(req, &api.Identity{})
|
|
require.NoError(t, err)
|
|
require.Equal(t, "123", hashId)
|
|
}
|
|
|
|
func TestService_GetFeed(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
defer ctrl.Finish()
|
|
|
|
feed := &model.Feed{Provider: api.ProviderYoutube}
|
|
|
|
storage := NewMockstorageService(ctrl)
|
|
storage.EXPECT().GetFeed("123").Times(1).Return(feed, nil)
|
|
|
|
bld := NewMockbuilder(ctrl)
|
|
bld.EXPECT().Build(feed).Return(nil, nil)
|
|
|
|
s := service{
|
|
storage: storage,
|
|
builders: map[api.Provider]builder{api.ProviderYoutube: bld},
|
|
}
|
|
|
|
_, err := s.GetFeed("123")
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestService_GetMetadata(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
defer ctrl.Finish()
|
|
|
|
storage := NewMockstorageService(ctrl)
|
|
storage.EXPECT().GetFeed("123").Times(1).Return(&model.Feed{}, nil)
|
|
|
|
s := service{storage: storage}
|
|
_, err := s.GetMetadata("123")
|
|
require.NoError(t, err)
|
|
}
|