Added more playlist tests.

This commit is contained in:
2026-09-09 09:34:22 -04:00
parent 8e56ac05f8
commit e92ef0e28b

View File

@@ -8,6 +8,32 @@ namespace Harmonia.Tests;
public class PlaylistTests
{
[Fact]
public void Create_Playlist()
{
Playlist playlist = new();
playlist.Name.ShouldBeNull();
playlist.Songs.ShouldBeEmpty();
}
[Fact]
public void Create_Playlist_With_Name()
{
Playlist playlist = new("My Playlist");
playlist.Name.ShouldBe("My Playlist");
playlist.Songs.ShouldBeEmpty();
}
[Fact]
public void Set_Playlist_Name()
{
Playlist playlist = new();
playlist.Name.ShouldBeNull();
playlist.SetName("My Playlist");
playlist.Name.ShouldBe("My Playlist");
}
[Fact]
public void Add_Songs()
{
@@ -37,6 +63,70 @@ public class PlaylistTests
playlist.Songs[1].Song.FileName.ShouldBe("Song5.mp3");
}
[Fact]
public void Move_Songs()
{
Playlist playlist = new();
Song[] songs =
[
new Song() { FileName = "Song1.mp3" },
new Song() { FileName = "Song2.mp3" },
new Song() { FileName = "Song3.mp3" },
new Song() { FileName = "Song4.mp3" },
new Song() { FileName = "Song5.mp3" },
];
playlist.AddSongs(songs);
playlist.MoveSong(2, 3);
string[] expectedFileNames =
[
"Song1.mp3",
"Song2.mp3",
"Song4.mp3",
"Song3.mp3",
"Song5.mp3"
];
playlist.Songs.Select(x => x.Song.FileName).ToArray()
.ShouldBeEquivalentTo(expectedFileNames);
}
[Fact]
public void Remove_Duplicate_Songs()
{
Playlist playlist = new();
Song[] songs =
[
new Song() { FileName = "Song1.mp3" },
new Song() { FileName = "Song2.mp3" },
new Song() { FileName = "Song3.mp3" },
new Song() { FileName = "Song4.mp3" },
new Song() { FileName = "Song5.mp3" },
new Song() { FileName = "Song2.mp3" },
new Song() { FileName = "Song3.mp3" },
];
playlist.AddSongs(songs);
playlist.RemoveDuplicateSongs();
string[] expectedFileNames =
[
"Song1.mp3",
"Song2.mp3",
"Song3.mp3",
"Song4.mp3",
"Song5.mp3"
];
playlist.Songs.Select(x => x.Song.FileName).ToArray()
.ShouldBeEquivalentTo(expectedFileNames);
}
[Fact]
public void Sort_Songs()
{
@@ -74,6 +164,34 @@ public class PlaylistTests
.ShouldBeEquivalentTo(expectedSortedFileNames);
}
[Fact]
public void Reverse_Songs()
{
Playlist playlist = new();
Song[] songs =
[
new Song() { FileName = "Song1.mp3" },
new Song() { FileName = "Song2.mp3" },
new Song() { FileName = "Song3.mp3" }
];
playlist.AddSongs(songs);
PlaylistSong[] playlistSongs = [.. playlist.Songs];
playlist.Reverse(playlistSongs);
string[] expectedReversedFileNames =
[
"Song3.mp3",
"Song2.mp3",
"Song1.mp3"
];
playlist.Songs.Select(x => x.Song.FileName).ToArray()
.ShouldBeEquivalentTo(expectedReversedFileNames);
}
[Fact]
public void Remove_Songs()
{
@@ -101,7 +219,7 @@ public class PlaylistTests
}
[Fact]
public void Lock_Playlist()
public void Lock_And_Unlock_Playlist()
{
Playlist playlist = new();
@@ -114,8 +232,12 @@ public class PlaylistTests
playlist.AddSongs(songs);
playlist.IsLocked.ShouldBeFalse();
playlist.Lock();
playlist.IsLocked.ShouldBeTrue();
Song song = new() { FileName = "Song4.mp3" };
playlist.AddSong(song);
@@ -124,11 +246,21 @@ public class PlaylistTests
playlist.RemoveSong(0);
playlist.Songs.Count.ShouldBe(3);
}
//public void Get_Playlists()
//{
// //PlaylistRepository playlistRepository = new();
// //playlistRepository.Get().Returns()
//}
playlist.MoveSong(0, 2);
string[] expectedMovedFileNamesOnLockedPlaylist =
[
"Song1.mp3",
"Song2.mp3",
"Song3.mp3"
];
playlist.Songs.Select(x => x.Song.FileName).ToArray()
.ShouldBeEquivalentTo(expectedMovedFileNamesOnLockedPlaylist);
playlist.Unlock();
playlist.IsLocked.ShouldBeFalse();
}
}