mirror of
https://github.com/mxpv/podsync.git
synced 2024-05-11 05:55:04 +00:00
69 lines
2.2 KiB
C#
69 lines
2.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Moq;
|
|
using Podsync.Services.Builder;
|
|
using Podsync.Services.Links;
|
|
using Podsync.Services.Storage;
|
|
using Podsync.Services.Videos.YouTube;
|
|
using Xunit;
|
|
|
|
namespace Podsync.Tests.Services.Builder
|
|
{
|
|
public class YouTubeRssBuilderTests : TestBase
|
|
{
|
|
private readonly Mock<IStorageService> _storageService = new Mock<IStorageService>();
|
|
|
|
private readonly YouTubeRssBuilder _builder;
|
|
|
|
public YouTubeRssBuilderTests()
|
|
{
|
|
var linkService = new LinkService();
|
|
var client = new YouTubeClient(linkService, Options);
|
|
|
|
_builder = new YouTubeRssBuilder(linkService, client, _storageService.Object);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(LinkType.Channel, "UC0JB7TSe49lg56u6qH8y_MQ")]
|
|
[InlineData(LinkType.User, "fxigr1")]
|
|
[InlineData(LinkType.Playlist, "PL2e4mYbwSTbbiX2uwspn0xiYb8_P_cTAr")]
|
|
public async Task BuildRssTest(LinkType linkType, string id)
|
|
{
|
|
var feed = new FeedMetadata
|
|
{
|
|
Provider = Provider.YouTube,
|
|
LinkType = linkType,
|
|
Id = id
|
|
};
|
|
|
|
var feedId = DateTime.UtcNow.Ticks.ToString();
|
|
|
|
_storageService.Setup(x => x.Load(feedId)).ReturnsAsync(feed);
|
|
|
|
var rss = await _builder.Query(new Uri("http://localhost:2020"), feedId);
|
|
|
|
Assert.NotEmpty(rss.Channels);
|
|
|
|
var channel = rss.Channels.Single();
|
|
|
|
Assert.NotNull(channel.Title);
|
|
Assert.NotNull(channel.Description);
|
|
Assert.NotNull(channel.Image);
|
|
Assert.NotNull(channel.Guid);
|
|
Assert.NotEmpty(channel.Items);
|
|
|
|
foreach (var item in channel.Items)
|
|
{
|
|
Assert.NotNull(item.Title);
|
|
Assert.NotNull(item.Link);
|
|
Assert.True(item.Duration.TotalSeconds > 0);
|
|
Assert.NotNull(item.Content);
|
|
Assert.True(item.Content.Length > 0);
|
|
Assert.NotNull(item.Content.MediaType);
|
|
Assert.NotNull(item.Content.Url);
|
|
Assert.NotNull(item.PubDate);
|
|
}
|
|
}
|
|
}
|
|
} |