using System; using System.Collections.Generic; using System.IO; using System.ServiceModel.Syndication; using System.Xml; using AutoMoq; using FizzWare.NBuilder; using MbUnit.Framework; using Moq; using NzbDrone.Core.Providers; using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Providers.Indexer; using NzbDrone.Core.Repository; using SubSonic.Repository; namespace NzbDrone.Core.Test { [TestFixture] public class IndexerProviderTest // ReSharper disable InconsistentNaming { [Test] public void Download_feed_test() { var mocker = new AutoMoqer(); var xmlReader = XmlReader.Create(File.OpenRead(".\\Files\\Rss\\nzbsorg.xml")); mocker.GetMock() .Setup(h => h.DownloadXml(It.IsAny())) .Returns(xmlReader); var fakeSettings = Builder.CreateNew().Build(); mocker.GetMock() .Setup(c => c.GetSettings(It.IsAny())) .Returns(fakeSettings); mocker.Resolve().Fetch(); } [Test] public void Init_indexer_test() { var mocker = new AutoMoqer(); mocker.SetConstant(MockLib.GetEmptyRepository()); //Act var indexerProvider = mocker.Resolve(); indexerProvider.InitializeIndexers(new List() { mocker.Resolve() }); var indexers = indexerProvider.All(); //Assert Assert.Count(1, indexers); } [Test] public void unmapped_series_shouldnt_call_any_providers() { var mocker = new AutoMoqer(MockBehavior.Strict); mocker.GetMock() .Setup(c => c.FindSeries(It.IsAny())) .Returns(null); var indexer = mocker.Resolve(); indexer.ProcessItem(new SyndicationItem { Title = new TextSyndicationContent("Adventure.Inc.S01E18.DVDRip.XviD-OSiTV") }); } } public class MockIndexerProvider : IndexerProviderBase { public MockIndexerProvider(SeriesProvider seriesProvider, SeasonProvider seasonProvider, EpisodeProvider episodeProvider, ConfigProvider configProvider, HttpProvider httpProvider, IndexerProvider indexerProvider, HistoryProvider historyProvider) : base(seriesProvider, seasonProvider, episodeProvider, configProvider, httpProvider, indexerProvider, historyProvider) { } protected override string[] Urls { get { return new[] { "www.google.com" }; } } public override string Name { get { return "Mocked Indexer"; } } protected override string NzbDownloadUrl(SyndicationItem item) { return item.Links[0].Uri.ToString(); } } }