public void AddSongOnlyOnce()
        {
            PlayList playList = new PlayList();
            Song song = Create.Song();

            playList.AddSongs(new ObservableCollection<Song> { song });
            playList.AddSongs(new ObservableCollection<Song> { song });

            Assert.AreEqual(1, playList.OriginalSongs.Count);
            Assert.AreEqual(1, playList.SongsToPlay.Count);
            CollectionAssert.Contains(playList.OriginalSongs.Select(sts => sts.Song).ToList(), song);
            CollectionAssert.Contains(playList.SongsToPlay.Select(stt => stt.Song).ToList(), song);
        }
 public PlayListViewModel()
 {
     PlayList = new PlayList();
     PlayerObserver.AddToPlayList += delegate(ObservableCollection<Song> songs)
         {
             PlayList.AddSongs(songs);
             PlayList.Mix();
         };
     PlayerObserver.CurrentSongFinished += OnCurrentSongFinished;
     PlayerState = State.Stop;
 }
        public void Clear()
        {
            PlayList playList = new PlayList();
            Song song = Create.Song();

            playList.AddSongs(new ObservableCollection<Song> { song });
            playList.Clear();

            Assert.AreEqual(0, playList.OriginalSongs.Count);
            Assert.AreEqual(0, playList.SongsToPlay.Count);
        }
        public void ReturnIsEmpty()
        {
            Song song1 = Create.Song();
            PlayList playList = new PlayList();

            Assert.IsTrue(playList.IsEmpty);

            playList.AddSongs(new ObservableCollection<Song> { song1});

            Assert.IsFalse(playList.IsEmpty);
        }
        public void RestaureCollection()
        {
            Song song1 = Create.Song();
            Song song2 = Create.Song();
            Song song3 = Create.Song();
            PlayList playList = new PlayList();
            playList.AddSongs(new ObservableCollection<Song>{ song1, song2, song3});

            playList.Mix();
            playList.Restaure();

            Assert.AreEqual(playList.SongsToPlay[0], playList.OriginalSongs[0]);
            Assert.AreEqual(playList.SongsToPlay[1], playList.OriginalSongs[1]);
            Assert.AreEqual(playList.SongsToPlay[2], playList.OriginalSongs[2]);
        }