public PlayListViewModel()
 {
     PlayList = new PlayList();
     PlayerObserver.AddToPlayList += delegate(ObservableCollection<Song> songs)
         {
             PlayList.AddSongs(songs);
             PlayList.Mix();
         };
     PlayerObserver.CurrentSongFinished += OnCurrentSongFinished;
     PlayerState = State.Stop;
 }
        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]);
        }