public void WritePlaylist_NoImage() { string playlistDir = Path.Combine(OutputPath, "StorePlaylist"); string fileName = "testPlaylist"; string playlistTitle = "WritePlaylist_NoImage"; string playlistAuthor = "BlisterTests"; string playlistDescription = "A test playlist"; string playlistExtension = "blist"; string playlistFile = Path.Combine(playlistDir, fileName + "." + playlistExtension); IPlaylistHandler handler = new BlistPlaylistHandler(); if (Directory.Exists(playlistDir)) { Directory.Delete(playlistDir, true); } Assert.IsFalse(Directory.Exists(playlistDir)); Directory.CreateDirectory(playlistDir); var songs = CreateSongArray <LegacyPlaylistSong>("Blister_", "BlisterAuthor_", 1000, Identifier.LevelId | Identifier.Hash | Identifier.Key); BlistPlaylist playlist = new BlistPlaylist(fileName, playlistTitle, playlistAuthor) { Description = playlistDescription, SuggestedExtension = playlistExtension }; foreach (var song in songs) { playlist.Add(song); } playlist.SetCover(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); playlist.RaisePlaylistChanged(); Assert.AreEqual(songs.Length, playlist.Count); Directory.CreateDirectory(playlistDir); using FileStream fileStream = File.Create(playlistFile); handler.Serialize(playlist, fileStream); Assert.IsTrue(File.Exists(playlistFile)); Console.WriteLine(Path.GetFullPath(playlistFile)); using FileStream newFileStream = File.OpenRead(playlistFile); BlistPlaylist readPlaylist = handler.Deserialize(newFileStream) as BlistPlaylist ?? throw new AssertFailedException("readPlaylist is null."); Assert.AreEqual(playlist.Count, readPlaylist.Count); Assert.IsTrue(readPlaylist.HasCover); BlistPlaylistSong[] newSongList = readPlaylist.Take(10).Select(s => (BlistPlaylistSong)s).ToArray(); readPlaylist.Clear(); Assert.AreEqual(0, readPlaylist.Count); foreach (var item in newSongList) { item.AddDifficulty(new Difficulty() { Characteristic = "Standard", Name = "Hard" }); readPlaylist.Add(item); } readPlaylist.SetCover(new byte[] { 11, 12, 13, 14, 15, 16, 17 }); readPlaylist.RaisePlaylistChanged(); using FileStream finalStream = File.Open(playlistFile, FileMode.Create, FileAccess.ReadWrite); handler.Serialize(readPlaylist, finalStream); }
public void UpdatePlaylist_WithImage() { string fileName = "MDBB.blist"; string originalFile = Path.Combine(ReadOnlyData, fileName); string playlistDir = Path.Combine(OutputPath, "UpdatePlaylist"); if (Directory.Exists(playlistDir)) { Directory.Delete(playlistDir, true); } Assert.IsFalse(Directory.Exists(playlistDir)); Directory.CreateDirectory(playlistDir); File.Copy(originalFile, Path.Combine(playlistDir, fileName)); Assert.IsTrue(File.Exists(Path.Combine(playlistDir, fileName))); string playlistFile = "MDBB"; BlistPlaylistHandler handler = new BlistPlaylistHandler(); PlaylistManager manager = new PlaylistManager(playlistDir, handler); BlistPlaylist playlist = manager.GetPlaylist(playlistFile) as BlistPlaylist ?? throw new AssertFailedException("Playlist is null"); Assert.IsNotNull(playlist); Assert.AreEqual(7, playlist.Count); Assert.IsTrue(playlist.HasCover); var song = playlist.First(); playlist.Clear(); Assert.IsTrue(playlist.Count == 0); playlist.Add(song); playlist.RaisePlaylistChanged(); Assert.AreEqual(1, playlist.Count); manager.StoreAllPlaylists(); manager = new PlaylistManager(playlistDir, handler); playlist = manager.GetPlaylist(playlistFile) as BlistPlaylist ?? throw new AssertFailedException("Playlist is null"); Assert.IsNotNull(playlist); Assert.AreEqual(1, playlist.Count); Assert.IsTrue(playlist.HasCover); }