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

81 lines
2.4 KiB
Go
Raw Normal View History

2017-08-05 13:48:53 -07:00
package builders
import (
2017-08-13 14:50:59 -07:00
"context"
2017-08-05 13:48:53 -07:00
"os"
"testing"
itunes "github.com/mxpv/podcast"
2017-08-19 16:58:23 -07:00
"github.com/mxpv/podsync/pkg/api"
2017-08-05 13:48:53 -07:00
"github.com/stretchr/testify/require"
)
var (
2017-08-13 14:50:59 -07:00
vimeoKey = os.Getenv("VIMEO_TEST_API_KEY")
2017-08-05 13:48:53 -07:00
)
func TestQueryVimeoChannel(t *testing.T) {
builder, err := NewVimeoBuilder(context.Background(), vimeoKey)
require.NoError(t, err)
2017-08-13 14:50:59 -07:00
podcast, err := builder.queryChannel(&api.Feed{ItemId: "staffpicks", Quality: api.HighQuality})
2017-08-05 13:48:53 -07:00
require.NoError(t, err)
require.Equal(t, "https://vimeo.com/channels/staffpicks", podcast.Link)
require.Equal(t, "Vimeo Staff Picks", podcast.Title)
require.Equal(t, "Vimeo Curation", podcast.IAuthor)
require.NotEmpty(t, podcast.Description)
require.NotEmpty(t, podcast.Image)
require.NotEmpty(t, podcast.IImage)
}
func TestQueryVimeoGroup(t *testing.T) {
builder, err := NewVimeoBuilder(context.Background(), vimeoKey)
require.NoError(t, err)
2017-08-13 14:50:59 -07:00
podcast, err := builder.queryGroup(&api.Feed{ItemId: "motion", Quality: api.HighQuality})
2017-08-05 13:48:53 -07:00
require.NoError(t, err)
require.Equal(t, "https://vimeo.com/groups/motion", podcast.Link)
require.Equal(t, "Motion Graphic Artists", podcast.Title)
require.Equal(t, "Danny Garcia", podcast.IAuthor)
require.NotEmpty(t, podcast.Description)
require.NotEmpty(t, podcast.Image)
require.NotEmpty(t, podcast.IImage)
}
func TestQueryVimeoUser(t *testing.T) {
builder, err := NewVimeoBuilder(context.Background(), vimeoKey)
require.NoError(t, err)
2017-08-13 14:50:59 -07:00
podcast, err := builder.queryUser(&api.Feed{ItemId: "motionarray", Quality: api.HighQuality})
2017-08-05 13:48:53 -07:00
require.NoError(t, err)
require.Equal(t, "https://vimeo.com/motionarray", podcast.Link)
require.Equal(t, "Motion Array", podcast.Title)
require.Equal(t, "Motion Array", podcast.IAuthor)
require.NotEmpty(t, podcast.Description)
}
func TestQueryVimeoVideos(t *testing.T) {
builder, err := NewVimeoBuilder(context.Background(), vimeoKey)
require.NoError(t, err)
feed := &itunes.Podcast{}
2017-08-13 14:50:59 -07:00
err = builder.queryVideos(builder.client.Channels.ListVideo, feed, &api.Feed{ItemId: "staffpicks"})
2017-08-05 13:48:53 -07:00
require.NoError(t, err)
require.Equal(t, vimeoDefaultPageSize, len(feed.Items))
for _, item := range feed.Items {
require.NotEmpty(t, item.Title)
require.NotEmpty(t, item.Link)
require.NotEmpty(t, item.GUID)
2017-08-05 14:21:09 -07:00
require.NotEmpty(t, item.IDuration)
2017-08-05 13:48:53 -07:00
require.NotNil(t, item.Enclosure)
require.NotEmpty(t, item.Enclosure.URL)
require.True(t, item.Enclosure.Length > 0)
}
}