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
Maksym Pavlenko 0170bbfbca Use Feed model
2017-11-03 16:04:33 -07:00

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)
}