private void DownloadTabByType(TabulatureType type)
        {
            var destination = Guid.NewGuid().ToString();

            var searcher = new UltimateGuitarTabSearcher();
            var mre      = new ManualResetEvent(false);

            searcher.SearchComplete += (sender, args) =>
            {
                var entry = searcher.Entries.First();

                var downloader = new UltimateGuitarFileDownloader(entry, destination);
                downloader.DownloadComplete += (o, eventArgs) => mre.Set();
                downloader.Download();
            };

            searcher.Run(SearchContext.DefaulGroupName, SearchContext.DefaultSongName, 0, type, ResultsSortOrder.Alphabetical);

            mre.WaitOne(SearchContext.SearchTimeout);

            using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (var file = storage.OpenFile(destination, FileMode.Open))
                {
                    Assert.AreNotEqual(0, file.Length);
                }
            }
        }
        public void CanSearchForSong()
        {
            var searcher = new UltimateGuitarTabSearcher();
            var mre      = new ManualResetEvent(false);

            searcher.SearchComplete += (sender, args) => mre.Set();

            searcher.Run(SearchContext.DefaulGroupName, SearchContext.DefaultSongName, 0, TabulatureType.All, ResultsSortOrder.Alphabetical);

            mre.WaitOne(SearchContext.SearchTimeout);

            Assert.AreEqual(searcher.Summary.BandsFound, 1);
            Assert.IsTrue(searcher.Summary.TotalSongsFound > 0);
        }