public void RaiseOpenNewArtistView()
        {
            const string album = "artist";
            ArtistDetailViewModel viewModel = new ArtistDetailViewModel();
            ContentBodyEventCatcher catcher = new ContentBodyEventCatcher();

            viewModel.OpenAlbumCommand.Execute(album);

            Assert.IsTrue(catcher.ChangeContentViewInvoked);
            Assert.AreEqual(album, catcher.MenuItem.Label);
        }
        public void RaiseChangeContentViewEventWhenOpenMenuItemDemand()
        {
            MenuViewModel viewModel = new MenuViewModel();
            ContentBodyEventCatcher catcher = new ContentBodyEventCatcher();
            MenuItem item = new MenuItem();

            viewModel.OpenItemCommand.Execute(item);

            Assert.IsTrue(catcher.ChangeContentViewInvoked);
            Assert.AreEqual(catcher.MenuItem, item);
        }
        public void CallServiceAndRaiseNewSearchEventWithFilter()
        {
            const string filter = "filter";
            ContentBodyEventCatcher catcher = new ContentBodyEventCatcher();
            ObservableCollection<Song> songs = new ObservableCollection<Song>();
            MockService.Setup(s => s.SearchSongs(filter, true, true, true)).Returns(songs);
            SearchViewModel viewModel = new SearchViewModel();

            viewModel.SearchSongsListCommand.Execute(filter);

            MockService.Verify(s => s.SearchSongs(filter, true, true, true), Times.Once());
            Assert.IsTrue(catcher.NewSearchInvoked);
            Assert.AreEqual(songs, catcher.SearchSongList);
            Assert.AreEqual(filter, catcher.SearchFilter);
        }
        public void RaiseOpenNewArtistView()
        {
            const string artist = "artist";
            SongListViewModel viewModel = new SongListViewModel();
            ContentBodyEventCatcher catcher = new ContentBodyEventCatcher();

            viewModel.OpenArtistCommand.Execute(artist);

            Assert.IsTrue(catcher.ChangeContentViewInvoked);
            Assert.AreEqual(string.Format(MusicResource.ArtistTab, artist), catcher.MenuItem.Label);
        }