diff --git a/NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs b/NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs new file mode 100644 index 000000000..0b9298d83 --- /dev/null +++ b/NzbDrone.Core.Test/IndexerTests/FetchAndParseRssServiceFixture.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using FluentAssertions; +using Moq; +using NUnit.Framework; +using NzbDrone.Core.Indexers; +using NzbDrone.Core.Indexers.Newznab; +using NzbDrone.Core.Parser.Model; +using NzbDrone.Core.Test.Framework; + +namespace NzbDrone.Core.Test.IndexerTests +{ + public class FetchAndParseRssServiceFixture : CoreTest + { + private List _indexers; + + [SetUp] + public void Setup() + { + _indexers = new List(); + + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + _indexers.Add(new Newznab()); + + Mocker.SetConstant>(_indexers); + + } + + [Test] + [Explicit] + public void should_call_fetch_on_all_indexers_at_the_same_time() + { + var callsToFetch = new List(); + + Mocker.GetMock().Setup(c => c.FetchRss(It.IsAny())) + .Returns(new List()) + .Callback((() => + { + Thread.Sleep(2000); + Console.WriteLine(DateTime.Now); + callsToFetch.Add(DateTime.Now); + })); + + Mocker.GetMock().Setup(c => c.GetAvailableIndexers()).Returns(_indexers); + + Subject.Fetch(); + + + var first = callsToFetch.Min(); + var last = callsToFetch.Max(); + + (last - first).Should().BeLessThan(TimeSpan.FromSeconds(1)); + } + } +} \ No newline at end of file diff --git a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index d4a7c2088..421c85a12 100644 --- a/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -135,6 +135,7 @@ +