Files
allstarr/allstarr.Tests/Matching/ExternalTrackPlaybackPolicyTests.cs
T

59 lines
1.5 KiB
C#

using allstarr.Services.Spotify;
using allstarr.Models.Domain;
namespace allstarr.Tests;
public class ExternalTrackPlaybackPolicyTests
{
[Theory]
[InlineData("tidal")]
public void MetadataOnlyProvidersCannotBecomePlaybackMappings(string provider)
{
Assert.False(ExternalTrackPlaybackPolicy.CanUseForPlayback(provider));
}
[Theory]
[InlineData("ext-tidal-song-25")]
public void LegacyTrackIdsCannotHideMetadataOnlyProvider(string trackId)
{
Assert.False(ExternalTrackPlaybackPolicy.CanUseForPlayback("unknown", trackId));
}
[Theory]
[InlineData("deezer")]
[InlineData("qobuz")]
[InlineData("applemusic")]
[InlineData("custom-extension")]
public void AudioProvidersCanBecomePlaybackMappings(string provider)
{
Assert.True(ExternalTrackPlaybackPolicy.CanUseForPlayback(provider));
}
[Fact]
public void LocalSongsRemainPlayableRegardlessOfExternalProviderMetadata()
{
var song = new Song
{
Id = "local-track-id",
IsLocal = true,
ExternalProvider = "tidal"
};
Assert.True(ExternalTrackPlaybackPolicy.CanUseForPlayback(song));
}
[Fact]
public void CachedMetadataOnlySongsAreRejectedWhenTheyAreNotLocal()
{
var song = new Song
{
Id = "ext-tidal-song-25",
IsLocal = false,
ExternalProvider = "tidal",
ExternalId = "25"
};
Assert.False(ExternalTrackPlaybackPolicy.CanUseForPlayback(song));
}
}