fix: artist, album, songs image problem fixed with new ID format

This commit is contained in:
V1ck3s
2025-12-12 00:25:17 +01:00
committed by Vickes
parent d183853cb2
commit 55727f206f
5 changed files with 114 additions and 41 deletions

View File

@@ -52,7 +52,7 @@ public class DeezerMetadataServiceTests
// Assert
Assert.NotNull(result);
Assert.Single(result);
Assert.Equal("ext-deezer-123456", result[0].Id);
Assert.Equal("ext-deezer-song-123456", result[0].Id);
Assert.Equal("Test Song", result[0].Title);
Assert.Equal("Test Artist", result[0].Artist);
Assert.Equal("Test Album", result[0].Album);
@@ -89,7 +89,7 @@ public class DeezerMetadataServiceTests
// Assert
Assert.NotNull(result);
Assert.Single(result);
Assert.Equal("ext-deezer-456789", result[0].Id);
Assert.Equal("ext-deezer-album-456789", result[0].Id);
Assert.Equal("Test Album", result[0].Title);
Assert.Equal("Test Artist", result[0].Artist);
Assert.Equal(12, result[0].SongCount);
@@ -123,7 +123,7 @@ public class DeezerMetadataServiceTests
// Assert
Assert.NotNull(result);
Assert.Single(result);
Assert.Equal("ext-deezer-789012", result[0].Id);
Assert.Equal("ext-deezer-artist-789012", result[0].Id);
Assert.Equal("Test Artist", result[0].Name);
Assert.Equal(5, result[0].AlbumCount);
Assert.False(result[0].IsLocal);
@@ -167,7 +167,7 @@ public class DeezerMetadataServiceTests
// Assert
Assert.NotNull(result);
Assert.Equal("ext-deezer-123456", result.Id);
Assert.Equal("ext-deezer-song-123456", result.Id);
Assert.Equal("Test Song", result.Title);
}
@@ -254,7 +254,7 @@ public class DeezerMetadataServiceTests
// Assert
Assert.NotNull(result);
Assert.Equal("ext-deezer-456789", result.Id);
Assert.Equal("ext-deezer-album-456789", result.Id);
Assert.Equal("Test Album", result.Title);
Assert.Equal("Test Artist", result.Artist);
Assert.Equal(2, result.Songs.Count);

View File

@@ -203,6 +203,7 @@ public class LocalLibraryServiceTests : IDisposable
[InlineData("ext-deezer-123", true, "deezer", "123")]
[InlineData("ext-spotify-abc123", true, "spotify", "abc123")]
[InlineData("ext-tidal-999-888", true, "tidal", "999-888")]
[InlineData("ext-deezer-song-123456", true, "deezer", "123456")] // New format - extracts numeric ID
[InlineData("123456", false, null, null)]
[InlineData("", false, null, null)]
[InlineData("ext-", false, null, null)]
@@ -217,4 +218,27 @@ public class LocalLibraryServiceTests : IDisposable
Assert.Equal(expectedProvider, provider);
Assert.Equal(expectedExternalId, externalId);
}
[Theory]
[InlineData("ext-deezer-song-123456", true, "deezer", "song", "123456")]
[InlineData("ext-deezer-album-789012", true, "deezer", "album", "789012")]
[InlineData("ext-deezer-artist-259", true, "deezer", "artist", "259")]
[InlineData("ext-spotify-song-abc123", true, "spotify", "song", "abc123")]
[InlineData("ext-deezer-123", true, "deezer", "song", "123")] // Legacy format defaults to song
[InlineData("ext-tidal-999", true, "tidal", "song", "999")] // Legacy format defaults to song
[InlineData("123456", false, null, null, null)]
[InlineData("", false, null, null, null)]
[InlineData("ext-", false, null, null, null)]
[InlineData("ext-deezer", false, null, null, null)]
public void ParseExternalId_VariousInputs_ReturnsExpected(string id, bool expectedIsExternal, string? expectedProvider, string? expectedType, string? expectedExternalId)
{
// Act
var (isExternal, provider, type, externalId) = _service.ParseExternalId(id);
// Assert
Assert.Equal(expectedIsExternal, isExternal);
Assert.Equal(expectedProvider, provider);
Assert.Equal(expectedType, type);
Assert.Equal(expectedExternalId, externalId);
}
}