Files
ersatztv/ErsatzTV.Core.Tests/Jellyfin/JellyfinUrlTests.cs
T
Jason DoveandGitHub c02b83d0d6 code cleanup (#743)
* update tools

* run code cleanup

* update dependencies
2022-04-19 17:47:18 -05:00

119 lines
3.5 KiB
C#

using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Jellyfin;
using FluentAssertions;
using Flurl;
using NUnit.Framework;
namespace ErsatzTV.Core.Tests.Jellyfin;
public class JellyfinUrlTests
{
[Test]
public void Should_Work_Without_Trailing_Slash()
{
var artwork = "jellyfin://Items/2/Images/3?tag=4";
var address = "https://some.jellyfin.server";
var mediaSource = new JellyfinMediaSource
{
Connections = new List<JellyfinConnection>
{
new() { Address = address }
}
};
Url url = JellyfinUrl.ForArtwork(Some(mediaSource), artwork);
url.ToString().Should().Be("https://some.jellyfin.server/Items/2/Images/3?tag=4");
}
[Test]
public void Should_Work_With_Trailing_Slash()
{
var artwork = "jellyfin://Items/2/Images/3?tag=4";
var address = "https://some.jellyfin.server/";
var mediaSource = new JellyfinMediaSource
{
Connections = new List<JellyfinConnection>
{
new() { Address = address }
}
};
Url url = JellyfinUrl.ForArtwork(Some(mediaSource), artwork);
url.ToString().Should().Be("https://some.jellyfin.server/Items/2/Images/3?tag=4");
}
[Test]
public void Should_Work_With_Port_Without_Trailing_Slash()
{
var artwork = "jellyfin://Items/2/Images/3?tag=4";
var address = "https://some.jellyfin.server:1000";
var mediaSource = new JellyfinMediaSource
{
Connections = new List<JellyfinConnection>
{
new() { Address = address }
}
};
Url url = JellyfinUrl.ForArtwork(Some(mediaSource), artwork);
url.ToString().Should().Be("https://some.jellyfin.server:1000/Items/2/Images/3?tag=4");
}
[Test]
public void Should_Work_With_Port_With_Trailing_Slash()
{
var artwork = "jellyfin://Items/2/Images/3?tag=4";
var address = "https://some.jellyfin.server:1000/";
var mediaSource = new JellyfinMediaSource
{
Connections = new List<JellyfinConnection>
{
new() { Address = address }
}
};
Url url = JellyfinUrl.ForArtwork(Some(mediaSource), artwork);
url.ToString().Should().Be("https://some.jellyfin.server:1000/Items/2/Images/3?tag=4");
}
[Test]
public void Should_Work_With_Path_Prefix_Without_Trailing_Slash()
{
var artwork = "jellyfin://Items/2/Images/3?tag=4";
var address = "https://some.jellyfin.server/jellyfin";
var mediaSource = new JellyfinMediaSource
{
Connections = new List<JellyfinConnection>
{
new() { Address = address }
}
};
Url url = JellyfinUrl.ForArtwork(Some(mediaSource), artwork);
url.ToString().Should().Be("https://some.jellyfin.server/jellyfin/Items/2/Images/3?tag=4");
}
[Test]
public void Should_Work_With_Path_Prefix_With_Trailing_Slash()
{
var artwork = "jellyfin://Items/2/Images/3?tag=4";
var address = "https://some.jellyfin.server/jellyfin/";
var mediaSource = new JellyfinMediaSource
{
Connections = new List<JellyfinConnection>
{
new() { Address = address }
}
};
Url url = JellyfinUrl.ForArtwork(Some(mediaSource), artwork);
url.ToString().Should().Be("https://some.jellyfin.server/jellyfin/Items/2/Images/3?tag=4");
}
}