Added more playlist tests.
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user