diff --git a/NzbDrone.Core.Test/ParserTest.cs b/NzbDrone.Core.Test/ParserTest.cs index 1ca1b1ab9..0e8d16e87 100644 --- a/NzbDrone.Core.Test/ParserTest.cs +++ b/NzbDrone.Core.Test/ParserTest.cs @@ -184,7 +184,7 @@ namespace NzbDrone.Core.Test [Test] public void parse_daily_should_fail_if_episode_is_far_in_future() { - var title = string.Format("{0}.{1}.{2} - Denis Leary - HD TV.mkv", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.AddDays(2).Day); + var title = string.Format("{0:yyyy.MM.dd} - Denis Leary - HD TV.mkv", DateTime.Now.AddDays(2)); Parser.ParseTitle(title).Should().BeNull(); diff --git a/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest.cs b/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest.cs index 0b75cb2a0..6d1f46385 100644 --- a/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest.cs +++ b/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest.cs @@ -27,19 +27,17 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisodes_exists() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew().Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).With(e => e.EpisodeFileId = 0).Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); //Act - var episode = mocker.Resolve().GetEpisode(1); + var episode = Mocker.Resolve().GetEpisode(1); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series, e => e.EpisodeFile).EqualTo(fakeEpisodes.First()); @@ -49,9 +47,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisodes_by_season_episode_exists() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew() .With(s => s.SeriesId = 1) @@ -62,11 +58,11 @@ namespace NzbDrone.Core.Test.ProviderTests .And(e => e.SeasonNumber = 2) .With(e => e.EpisodeFileId = 0).Build(); - db.Insert(fakeSeries); - db.Insert(fakeEpisodes); + Db.Insert(fakeSeries); + Db.Insert(fakeEpisodes); //Act - var episode = mocker.Resolve().GetEpisode(fakeSeries.SeriesId, 2, 1); + var episode = Mocker.Resolve().GetEpisode(fakeSeries.SeriesId, 2, 1); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series).EqualTo(fakeEpisodes); @@ -76,14 +72,10 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisodes_by_season_episode_doesnt_exists() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); - - + WithRealDb(); //Act - var episode = mocker.Resolve().GetEpisode(1, 1, 1); + var episode = Mocker.Resolve().GetEpisode(1, 1, 1); //Assert episode.Should().BeNull(); @@ -92,21 +84,19 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisode_with_EpisodeFile() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew().Build(); var fakeFile = Builder.CreateNew().With(f => f.EpisodeFileId).Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); - db.Insert(fakeFile); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); + Db.Insert(fakeFile); //Act - var episode = mocker.Resolve().GetEpisode(1); + var episode = Mocker.Resolve().GetEpisode(1); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series, e => e.EpisodeFile).EqualTo(fakeEpisodes.First()); @@ -118,31 +108,26 @@ namespace NzbDrone.Core.Test.ProviderTests [ExpectedException(typeof(InvalidOperationException), ExpectedMessage = "Sequence contains no elements")] public void GetEpisodes_invalid_series() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); - mocker.Resolve(); + Mocker.Resolve(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).Build(); - db.InsertMany(fakeEpisodes); + Db.InsertMany(fakeEpisodes); //Act - mocker.Resolve().GetEpisode(1); + Mocker.Resolve().GetEpisode(1); } [Test] public void AttachSeries_empty_list() { - var mocker = new AutoMoqer(); - - //Act - var result = mocker.Resolve().AttachSeries(new List()); + var result = Mocker.Resolve().AttachSeries(new List()); //Assert result.Should().HaveCount(0); @@ -151,20 +136,18 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void AttachSeries_list_success() { - var mocker = new AutoMoqer(); - var fakeSeries = Builder.CreateNew().With(s => s.SeriesId = 12).Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 12).Build(); - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(12)) .Returns(fakeSeries); //Act fakeEpisodes.Should().OnlyContain(e => e.Series == null); - var returnedSeries = mocker.Resolve().AttachSeries(fakeEpisodes); + var returnedSeries = Mocker.Resolve().AttachSeries(fakeEpisodes); //Assert fakeEpisodes.Should().OnlyContain(e => e.Series == fakeSeries); @@ -174,12 +157,10 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void AttachSeries_null_episode_should_return_null() { - var mocker = new AutoMoqer(); - Episode episode = null; //Act - var result = mocker.Resolve().AttachSeries(episode); + var result = Mocker.Resolve().AttachSeries(episode); //Assert result.Should().BeNull(); @@ -188,17 +169,15 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void AttachSeries_single_success() { - var mocker = new AutoMoqer(); - var fakeSeries = Builder.CreateNew().With(s => s.SeriesId = 12).Build(); var fakeEpisodes = Builder.CreateNew().With(e => e.SeriesId = 12).Build(); - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(12)) .Returns(fakeSeries); //Act - var returnedEpisode = mocker.Resolve().AttachSeries(fakeEpisodes); + var returnedEpisode = Mocker.Resolve().AttachSeries(fakeEpisodes); //Assert fakeEpisodes.Series.Should().Be(fakeSeries); @@ -209,18 +188,19 @@ namespace NzbDrone.Core.Test.ProviderTests [ExpectedException(typeof(InvalidOperationException), ExpectedMessage = "Sequence contains no elements")] public void AttachSeries_single_invalid_series() { - var mocker = new AutoMoqer(); - mocker.SetConstant(TestDbHelper.GetEmptyDatabase()); - mocker.Resolve(); + Mocker.SetConstant(TestDbHelper.GetEmptyDatabase()); + Mocker.Resolve(); var fakeEpisodes = Builder.CreateNew().With(e => e.SeriesId = 12).Build(); //Act - var returnedEpisode = mocker.Resolve().AttachSeries(fakeEpisodes); + var returnedEpisode = Mocker.Resolve().AttachSeries(fakeEpisodes); } [Test] public void GetEpisodesBySeason_success() { + WithRealDb(); + var fakeSeries = Builder.CreateNew() .With(s => s.SeriesId = 12) .Build(); @@ -230,18 +210,14 @@ namespace NzbDrone.Core.Test.ProviderTests .TheFirst(5).With(c => c.SeasonNumber = 1) .Build(); - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); - - db.Insert(fakeSeries); - db.InsertMany(episodes); + Db.Insert(fakeSeries); + Db.InsertMany(episodes); //Act - var seasonEposodes = mocker.Resolve().GetEpisodesBySeason(12, 2); + var seasonEposodes = Mocker.Resolve().GetEpisodesBySeason(12, 2); //Assert - db.Fetch().Should().HaveCount(10); + Db.Fetch().Should().HaveCount(10); seasonEposodes.Should().HaveCount(5); } @@ -262,27 +238,21 @@ namespace NzbDrone.Core.Test.ProviderTests var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); + WithRealDb(); - var mocker = new AutoMoqer(); + Db.Insert(fakeSeries); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); - - db.Insert(fakeSeries); - - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(seriesId, true)) .Returns(fakeEpisodes); - //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - var actualCount = mocker.Resolve().GetEpisodeBySeries(seriesId).ToList().Count; - mocker.GetMock().VerifyAll(); + var actualCount = Mocker.Resolve().GetEpisodeBySeries(seriesId).ToList().Count; + Mocker.GetMock().VerifyAll(); actualCount.Should().Be(episodeCount); - mocker.VerifyAllMocks(); } [Test] @@ -302,28 +272,23 @@ namespace NzbDrone.Core.Test.ProviderTests var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); - var mocker = new AutoMoqer(); + WithRealDb(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + Db.Insert(fakeSeries); - db.Insert(fakeSeries); - - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(seriesId, true)) .Returns(fakeEpisodes); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - var storedEpisodes = mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); + var storedEpisodes = Mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); storedEpisodes.Should().HaveCount(10); storedEpisodes.Where(e => e.AirDate == null).Should().HaveCount(7); storedEpisodes.Where(e => e.AirDate != null).Should().HaveCount(3); - - mocker.VerifyAllMocks(); } [Test] @@ -348,27 +313,21 @@ namespace NzbDrone.Core.Test.ProviderTests var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); - var mocker = new AutoMoqer(); + WithRealDb(); + Db.Insert(fakeSeries); + Db.Insert(fakeEpisode); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); - - db.Insert(fakeSeries); - db.Insert(fakeEpisode); - - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(seriesId, true)) .Returns(fakeTvDbEpisodes); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - var storedEpisodes = mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); + var storedEpisodes = Mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); storedEpisodes.Should().HaveCount(1); storedEpisodes.Where(e => e.AirDate == null).Should().HaveCount(1); - - mocker.VerifyAllMocks(); } [Test] @@ -391,29 +350,61 @@ namespace NzbDrone.Core.Test.ProviderTests var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); - var mocker = new AutoMoqer(); + WithRealDb(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + Db.Insert(fakeSeries); - db.Insert(fakeSeries); - - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(seriesId, true)) .Returns(fakeEpisodes); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - var result = mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); - mocker.GetMock().VerifyAll(); + var result = Mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); + Mocker.GetMock().VerifyAll(); result.Should().HaveCount(episodeCount); - mocker.VerifyAllMocks(); result.Where(e => e.EpisodeNumber == 0 && e.SeasonNumber == 15).Single().Ignored.Should().BeTrue(); } + [Test] + public void RefreshEpisodeInfo_ignore_season_zero() + { + //Arrange + const int seriesId = 71663; + const int episodeCount = 10; + + var fakeEpisodes = Builder.CreateNew().With( + c => c.Episodes = + new List(Builder.CreateListOfSize(episodeCount). + All() + .With(l => l.Language = new TvdbLanguage(0, "eng", "a")) + .With(e => e.SeasonNumber = 0) + .Build()) + ).With(c => c.Id = seriesId).Build(); + + var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); + + WithRealDb(); + + Db.Insert(fakeSeries); + + Mocker.GetMock() + .Setup(c => c.GetSeries(seriesId, true)) + .Returns(fakeEpisodes); + + //Act + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + + //Assert + var result = Mocker.Resolve().GetEpisodeBySeries(seriesId).ToList(); + Mocker.GetMock().VerifyAll(); + result.Should().HaveCount(episodeCount); + result.Where(e => e.Ignored).Should().HaveCount(episodeCount); + } + [Test] public void new_episodes_only_calls_Insert() { @@ -426,27 +417,23 @@ namespace NzbDrone.Core.Test.ProviderTests var currentEpisodes = new List(); - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); - - mocker.GetMock(MockBehavior.Strict) + Mocker.GetMock(MockBehavior.Strict) .Setup(c => c.GetSeries(seriesId, true)) .Returns(tvdbSeries); - mocker.GetMock() + Mocker.GetMock() .Setup(d => d.Fetch(It.IsAny(), It.IsAny())) .Returns(currentEpisodes); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - mocker.GetMock().Verify(c => c.InsertMany(It.Is>(l => l.Count() == 5)), Times.Once()); - mocker.GetMock().Verify(c => c.Update(It.IsAny>()), Times.Never()); + Mocker.GetMock().Verify(c => c.InsertMany(It.Is>(l => l.Count() == 5)), Times.Once()); + Mocker.GetMock().Verify(c => c.Update(It.IsAny>()), Times.Never()); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] @@ -465,23 +452,21 @@ namespace NzbDrone.Core.Test.ProviderTests currentEpisodes.Add(new Episode { TvDbEpisodeId = tvDbEpisode.Id, Series = fakeSeries }); } - var mocker = new AutoMoqer(); - - mocker.GetMock(MockBehavior.Strict) + Mocker.GetMock(MockBehavior.Strict) .Setup(c => c.GetSeries(seriesId, true)) .Returns(tvdbSeries); - mocker.GetMock() + Mocker.GetMock() .Setup(d => d.Fetch(It.IsAny(), It.IsAny())) .Returns(currentEpisodes); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - mocker.GetMock().Verify(c => c.InsertMany(It.Is>(l => l.Count() == 0)), Times.Once()); - mocker.GetMock().Verify(c => c.UpdateMany(It.Is>(l => l.Count() == 5)), Times.Once()); - mocker.VerifyAllMocks(); + Mocker.GetMock().Verify(c => c.InsertMany(It.Is>(l => l.Count() == 0)), Times.Once()); + Mocker.GetMock().Verify(c => c.UpdateMany(It.Is>(l => l.Count() == 5)), Times.Once()); + Mocker.VerifyAllMocks(); } [Test] @@ -500,21 +485,20 @@ namespace NzbDrone.Core.Test.ProviderTests var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); var fakeEpisodeList = new List { new Episode { TvDbEpisodeId = 99, SeasonNumber = 10, EpisodeNumber = 10, Series = fakeSeries } }; - var mocker = new AutoMoqer(); - mocker.GetMock() + Mocker.GetMock() .Setup(d => d.Fetch(It.IsAny(), It.IsAny())) .Returns(fakeEpisodeList); - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.GetSeries(seriesId, true)) .Returns(fakeTvDbResult); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - mocker.VerifyAllMocks(); - mocker.GetMock().Verify(c => c.UpdateMany(fakeEpisodeList), Times.Once()); + Mocker.VerifyAllMocks(); + Mocker.GetMock().Verify(c => c.UpdateMany(fakeEpisodeList), Times.Once()); } [Test] @@ -542,22 +526,20 @@ namespace NzbDrone.Core.Test.ProviderTests var fakeSeries = Builder.CreateNew().With(c => c.SeriesId = seriesId).Build(); - var mocker = new AutoMoqer(); - - mocker.GetMock(MockBehavior.Strict) + Mocker.GetMock(MockBehavior.Strict) .Setup(c => c.GetSeries(seriesId, true)) .Returns(tvdbSeries); - mocker.GetMock() + Mocker.GetMock() .Setup(d => d.Fetch(It.IsAny(), It.IsAny())) .Returns(new List { localEpisode }); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert - mocker.VerifyAllMocks(); - mocker.GetMock().Verify(c => c.UpdateMany(new List { localEpisode }), Times.Once()); + Mocker.VerifyAllMocks(); + Mocker.GetMock().Verify(c => c.UpdateMany(new List { localEpisode }), Times.Once()); } [Test] @@ -576,24 +558,22 @@ namespace NzbDrone.Core.Test.ProviderTests currentEpisodes.Add(new Episode { TvDbEpisodeId = tvDbEpisode.Id, EpisodeId = 99, EpisodeFileId = 69, Ignored = true, Series = fakeSeries }); } - var mocker = new AutoMoqer(); - - mocker.GetMock(MockBehavior.Strict) + Mocker.GetMock(MockBehavior.Strict) .Setup(c => c.GetSeries(seriesId, true)) .Returns(tvdbSeries); var updatedEpisodes = new List(); - mocker.GetMock() + Mocker.GetMock() .Setup(d => d.Fetch(It.IsAny(), It.IsAny())) .Returns(currentEpisodes); - mocker.GetMock() + Mocker.GetMock() .Setup(c => c.UpdateMany(It.IsAny>())) .Callback>(ep => updatedEpisodes = ep.ToList()); //Act - mocker.Resolve().RefreshEpisodeInfo(fakeSeries); + Mocker.Resolve().RefreshEpisodeInfo(fakeSeries); //Assert updatedEpisodes.Should().HaveSameCount(tvdbSeries.Episodes); @@ -605,9 +585,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_true_if_all_episodes_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -616,10 +594,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.SeasonNumber = 2) .Build(); - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 2); + var result = Mocker.Resolve().IsIgnored(10, 2); //Assert result.Should().BeTrue(); @@ -628,9 +606,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_false_if_none_of_episodes_are_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -639,10 +615,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.SeasonNumber = 2) .Build(); - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 2); + var result = Mocker.Resolve().IsIgnored(10, 2); //Assert result.Should().BeFalse(); @@ -651,9 +627,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_false_if_some_of_episodes_are_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -665,10 +639,10 @@ namespace NzbDrone.Core.Test.ProviderTests episodes[2].Ignored = false; - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 2); + var result = Mocker.Resolve().IsIgnored(10, 2); //Assert result.Should().BeFalse(); @@ -677,9 +651,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_false_if_zero_episodes_in_db_for_season() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -688,10 +660,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = true) .Build(); - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 2); + var result = Mocker.Resolve().IsIgnored(10, 2); //Assert result.Should().BeFalse(); @@ -700,9 +672,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_true_if_zero_episodes_in_db_for_season_and_previous_is_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -711,10 +681,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = true) .Build(); - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 4); + var result = Mocker.Resolve().IsIgnored(10, 4); //Assert result.Should().BeTrue(); @@ -723,9 +693,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_false_if_zero_episodes_in_db_for_season_and_previous_is_not_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -734,10 +702,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build(); - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 4); + var result = Mocker.Resolve().IsIgnored(10, 4); //Assert result.Should().BeFalse(); @@ -746,12 +714,10 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_false_if_zero_episodes_in_db_for_season_one() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); //Act - var result = mocker.Resolve().IsIgnored(10, 1); + var result = Mocker.Resolve().IsIgnored(10, 1); //Assert result.Should().BeFalse(); @@ -760,12 +726,10 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_true_if_zero_episodes_in_db_for_season_zero() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); //Act - var result = mocker.Resolve().IsIgnored(10, 0); + var result = Mocker.Resolve().IsIgnored(10, 0); //Assert result.Should().BeTrue(); @@ -774,9 +738,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsSeasonIgnored_should_return_false_if_season_zero_is_not_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(MockBehavior.Strict); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -785,10 +747,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build(); - episodes.ToList().ForEach(c => db.Insert(c)); + episodes.ToList().ForEach(c => Db.Insert(c)); //Act - var result = mocker.Resolve().IsIgnored(10, 0); + var result = Mocker.Resolve().IsIgnored(10, 0); //Assert result.Should().BeFalse(); @@ -798,24 +760,22 @@ namespace NzbDrone.Core.Test.ProviderTests [Explicit] public void Add_daily_show_episodes() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); - mocker.Resolve(); + WithRealDb(); + Mocker.Resolve(); - mocker.GetMock() + Mocker.GetMock() .Setup(e => e.DefaultQualityProfile).Returns(1); - db.Insert(Builder.CreateNew().Build()); + Db.Insert(Builder.CreateNew().Build()); const int tvDbSeriesId = 71256; //act - var seriesProvider = mocker.Resolve(); + var seriesProvider = Mocker.Resolve(); seriesProvider.AddSeries("c:\\test\\", tvDbSeriesId, 1); - var episodeProvider = mocker.Resolve(); + var episodeProvider = Mocker.Resolve(); episodeProvider.RefreshEpisodeInfo(seriesProvider.GetSeries(tvDbSeriesId)); //assert @@ -826,13 +786,10 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisode_by_Season_Episode_none_existing() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); - + WithRealDb(); //Act - var episode = mocker.Resolve().GetEpisode(1, 1, 1); + var episode = Mocker.Resolve().GetEpisode(1, 1, 1); //Assert episode.Should().BeNull(); @@ -841,21 +798,19 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisode_by_Season_Episode_with_EpisodeFile() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew().Build(); var fakeFile = Builder.CreateNew().With(f => f.EpisodeFileId).Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); - db.Insert(fakeFile); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); + Db.Insert(fakeFile); //Act - var episode = mocker.Resolve().GetEpisode(1, 1, 1); + var episode = Mocker.Resolve().GetEpisode(1, 1, 1); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series, e => e.EpisodeFile).EqualTo(fakeEpisodes.First()); @@ -866,19 +821,17 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisode_by_Season_Episode_without_EpisodeFile() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew().Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 0).Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); //Act - var episode = mocker.Resolve().GetEpisode(1, 1, 1); + var episode = Mocker.Resolve().GetEpisode(1, 1, 1); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series).EqualTo(fakeEpisodes.First()); @@ -889,21 +842,19 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisode_by_AirDate_with_EpisodeFile() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew().Build(); var fakeFile = Builder.CreateNew().With(f => f.EpisodeFileId).Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 1).With(e => e.EpisodeFile = fakeFile).Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); - db.Insert(fakeFile); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); + Db.Insert(fakeFile); //Act - var episode = mocker.Resolve().GetEpisode(1, fakeEpisodes[0].AirDate.Value); + var episode = Mocker.Resolve().GetEpisode(1, fakeEpisodes[0].AirDate.Value); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series, e => e.EpisodeFile).EqualTo(fakeEpisodes.First()); @@ -914,19 +865,17 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void GetEpisode_by_AirDate_without_EpisodeFile() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew().Build(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.SeriesId = 1).TheFirst(1).With(e => e.EpisodeFileId = 0).Build(); - db.InsertMany(fakeEpisodes); - db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); + Db.Insert(fakeSeries); //Act - var episode = mocker.Resolve().GetEpisode(1, fakeEpisodes[0].AirDate.Value); + var episode = Mocker.Resolve().GetEpisode(1, fakeEpisodes[0].AirDate.Value); //Assert episode.ShouldHave().AllPropertiesBut(e => e.Series).EqualTo(fakeEpisodes.First()); @@ -937,19 +886,17 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void MarkEpisodeAsFetched() { - var mocker = new AutoMoqer(); - var db = TestDbHelper.GetEmptyDatabase(); - mocker.SetConstant(db); + WithRealDb(); var fakeEpisodes = Builder.CreateListOfSize(5) .All().With(e => e.GrabDate = null) .Build(); - db.InsertMany(fakeEpisodes); + Db.InsertMany(fakeEpisodes); //Act - mocker.Resolve().MarkEpisodeAsFetched(2); - var episodes = db.Fetch(); + Mocker.Resolve().MarkEpisodeAsFetched(2); + var episodes = Db.Fetch(); //Assert episodes.Where(e => e.EpisodeId == 2).Single().GrabDate.Should().BeWithin(TimeSpan.FromSeconds(5)).Before( @@ -961,9 +908,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void AddEpisode_episode_is_ignored_when_full_season_is_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -972,7 +917,7 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = true) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); var newEpisode = Builder.CreateNew() .With(e => e.SeriesId = 10) @@ -983,23 +928,21 @@ namespace NzbDrone.Core.Test.ProviderTests .Build(); //Act - mocker.Resolve().AddEpisode(newEpisode); + Mocker.Resolve().AddEpisode(newEpisode); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(5); episodesInDb.Should().OnlyContain(e => e.Ignored); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void AddEpisode_episode_is_not_ignored_when_full_season_is_not_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1008,7 +951,7 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); var newEpisode = Builder.CreateNew() .With(e => e.SeriesId = 10) @@ -1019,23 +962,21 @@ namespace NzbDrone.Core.Test.ProviderTests .Build(); //Act - mocker.Resolve().AddEpisode(newEpisode); + Mocker.Resolve().AddEpisode(newEpisode); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(5); episodesInDb.Should().OnlyContain(e => e.Ignored == false); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void AddEpisode_episode_is_not_ignored_when_not_full_season_is_not_ignored() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1046,7 +987,7 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); var newEpisode = Builder.CreateNew() .With(e => e.SeriesId = 10) @@ -1057,23 +998,21 @@ namespace NzbDrone.Core.Test.ProviderTests .Build(); //Act - mocker.Resolve().AddEpisode(newEpisode); + Mocker.Resolve().AddEpisode(newEpisode); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(5); episodesInDb.Where(e => e.EpisodeNumber == 8 && !e.Ignored).Should().HaveCount(1); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void IgnoreEpisode_Ignore() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1082,26 +1021,24 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); //Act - mocker.Resolve().SetEpisodeIgnore(1, true); + Mocker.Resolve().SetEpisodeIgnore(1, true); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(4); episodesInDb.Where(e => e.Ignored).Should().HaveCount(1); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void IgnoreEpisode_RemoveIgnore() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1110,26 +1047,24 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = true) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); //Act - mocker.Resolve().SetEpisodeIgnore(1, false); + Mocker.Resolve().SetEpisodeIgnore(1, false); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(4); episodesInDb.Where(e => !e.Ignored).Should().HaveCount(1); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void IgnoreSeason_Ignore() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1138,26 +1073,24 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); //Act - mocker.Resolve().SetSeasonIgnore(10, 1, true); + Mocker.Resolve().SetSeasonIgnore(10, 1, true); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(4); episodesInDb.Where(e => e.Ignored).Should().HaveCount(4); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void IgnoreSeason_RemoveIgnore() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1166,26 +1099,24 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = true) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); //Act - mocker.Resolve().SetSeasonIgnore(10, 1, false); + Mocker.Resolve().SetSeasonIgnore(10, 1, false); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(4); episodesInDb.Where(e => !e.Ignored).Should().HaveCount(4); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void IgnoreSeason_Ignore_Half() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var episodes = Builder.CreateListOfSize(4) .All() @@ -1196,26 +1127,24 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = false) .Build().ToList(); - episodes.ForEach(c => db.Insert(c)); + episodes.ForEach(c => Db.Insert(c)); //Act - mocker.Resolve().SetSeasonIgnore(10, 1, true); + Mocker.Resolve().SetSeasonIgnore(10, 1, true); //Assert - var episodesInDb = db.Fetch(@"SELECT * FROM Episodes"); + var episodesInDb = Db.Fetch(@"SELECT * FROM Episodes"); episodesInDb.Should().HaveCount(4); episodesInDb.Where(e => e.Ignored).Should().HaveCount(4); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void EpisodesWithoutFiles_no_specials() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var series = Builder.CreateNew() .With(s => s.SeriesId = 10) @@ -1243,26 +1172,24 @@ namespace NzbDrone.Core.Test.ProviderTests .TheFirst(1).With(c => c.Ignored = true) .Build().ToList(); - db.Insert(series); - db.InsertMany(episodes); - db.InsertMany(specials); + Db.Insert(series); + Db.InsertMany(episodes); + Db.InsertMany(specials); //Act - var missingFiles = mocker.Resolve().EpisodesWithoutFiles(false); + var missingFiles = Mocker.Resolve().EpisodesWithoutFiles(false); //Assert missingFiles.Should().HaveCount(1); missingFiles.Where(e => e.EpisodeFileId == 0).Should().HaveCount(1); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void EpisodesWithoutFiles_with_specials() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var series = Builder.CreateNew() .With(s => s.SeriesId = 10) @@ -1291,26 +1218,24 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.Ignored = true) .Build().ToList(); - db.Insert(series); - db.InsertMany(episodes); - db.InsertMany(specials); + Db.Insert(series); + Db.InsertMany(episodes); + Db.InsertMany(specials); //Act - var missingFiles = mocker.Resolve().EpisodesWithoutFiles(true); + var missingFiles = Mocker.Resolve().EpisodesWithoutFiles(true); //Assert missingFiles.Should().HaveCount(2); missingFiles.Where(e => e.EpisodeFileId == 0).Should().HaveCount(2); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void EpisodesWithFiles_success() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var series = Builder.CreateNew() .With(s => s.SeriesId = 10) @@ -1330,12 +1255,12 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.EpisodeFileId = episodeFile.EpisodeFileId) .Build().ToList(); - db.Insert(series); - db.Insert(episodeFile); - db.InsertMany(episodes); + Db.Insert(series); + Db.Insert(episodeFile); + Db.InsertMany(episodes); //Act - var withFiles = mocker.Resolve().EpisodesWithFiles(); + var withFiles = Mocker.Resolve().EpisodesWithFiles(); //Assert withFiles.Should().HaveCount(2); @@ -1348,15 +1273,13 @@ namespace NzbDrone.Core.Test.ProviderTests withFile.Series.Title.Should().NotBeNullOrEmpty(); } - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void EpisodesWithFiles_no_files() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var series = Builder.CreateNew() .With(s => s.SeriesId = 10) @@ -1371,24 +1294,22 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.EpisodeFileId = 0) .Build().ToList(); - db.Insert(series); - db.InsertMany(episodes); + Db.Insert(series); + Db.InsertMany(episodes); //Act - var withFiles = mocker.Resolve().EpisodesWithFiles(); + var withFiles = Mocker.Resolve().EpisodesWithFiles(); //Assert withFiles.Should().HaveCount(0); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void GetEpisodesByFileId_multi_episodes() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var series = Builder.CreateNew() .With(s => s.SeriesId = 10) @@ -1401,23 +1322,21 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.EpisodeFileId = 12345) .Build(); - db.Insert(series); - db.InsertMany(fakeEpisodes); + Db.Insert(series); + Db.InsertMany(fakeEpisodes); //Act - var episodes = mocker.Resolve().GetEpisodesByFileId(12345); + var episodes = Mocker.Resolve().GetEpisodesByFileId(12345); //Assert episodes.Should().HaveCount(2); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void GetEpisodesByFileId_single_episode() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var series = Builder.CreateNew() .With(s => s.SeriesId = 10) @@ -1429,24 +1348,22 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.EpisodeFileId = 12345) .Build(); - db.Insert(series); - db.Insert(fakeEpisode); + Db.Insert(series); + Db.Insert(fakeEpisode); //Act - var episodes = mocker.Resolve().GetEpisodesByFileId(12345); + var episodes = Mocker.Resolve().GetEpisodesByFileId(12345); //Assert episodes.Should().HaveCount(1); episodes.First().ShouldHave().AllPropertiesBut(e => e.Series).EqualTo(fakeEpisode); - mocker.VerifyAllMocks(); + Mocker.VerifyAllMocks(); } [Test] public void IsFirstOrLastEpisodeInSeason_false() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var fakeEpisodes = Builder.CreateListOfSize(10) .All() @@ -1454,10 +1371,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.SeasonNumber = 1) .Build(); - db.InsertMany(fakeEpisodes); + Db.InsertMany(fakeEpisodes); //Act - var result = mocker.Resolve().IsFirstOrLastEpisodeOfSeason(10, 1, 5); + var result = Mocker.Resolve().IsFirstOrLastEpisodeOfSeason(10, 1, 5); //Assert result.Should().BeFalse(); @@ -1466,9 +1383,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsFirstOrLastEpisodeInSeason_true_first() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var fakeEpisodes = Builder.CreateListOfSize(10) .All() @@ -1476,10 +1391,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.SeasonNumber = 1) .Build(); - db.InsertMany(fakeEpisodes); + Db.InsertMany(fakeEpisodes); //Act - var result = mocker.Resolve().IsFirstOrLastEpisodeOfSeason(10, 1, 1); + var result = Mocker.Resolve().IsFirstOrLastEpisodeOfSeason(10, 1, 1); //Assert result.Should().BeFalse(); @@ -1488,9 +1403,7 @@ namespace NzbDrone.Core.Test.ProviderTests [Test] public void IsFirstOrLastEpisodeInSeason_true_last() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var fakeEpisodes = Builder.CreateListOfSize(10) .All() @@ -1498,10 +1411,10 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.SeasonNumber = 1) .Build(); - db.InsertMany(fakeEpisodes); + Db.InsertMany(fakeEpisodes); //Act - var result = mocker.Resolve().IsFirstOrLastEpisodeOfSeason(10, 1, 10); + var result = Mocker.Resolve().IsFirstOrLastEpisodeOfSeason(10, 1, 10); //Assert result.Should().BeFalse(); @@ -1515,9 +1428,7 @@ namespace NzbDrone.Core.Test.ProviderTests [TestCase("The Office (US) - Season 01 - Episode Title", PostDownloadStatusType.Failed, 10)] public void SetPostDownloadStatus(string folderName, PostDownloadStatusType postDownloadStatus, int episodeCount) { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var fakeSeries = Builder.CreateNew() .With(s => s.SeriesId = 12345) @@ -1531,25 +1442,23 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.PostDownloadStatus = PostDownloadStatusType.Unknown) .Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); - mocker.GetMock().Setup(s => s.FindSeries("officeus")).Returns(fakeSeries); + Mocker.GetMock().Setup(s => s.FindSeries("officeus")).Returns(fakeSeries); //Act - mocker.Resolve().SetPostDownloadStatus(fakeEpisodes.Select(e => e.EpisodeId).ToList(), postDownloadStatus); + Mocker.Resolve().SetPostDownloadStatus(fakeEpisodes.Select(e => e.EpisodeId).ToList(), postDownloadStatus); //Assert - var result = db.Fetch(); + var result = Db.Fetch(); result.Where(e => e.PostDownloadStatus == postDownloadStatus).Count().Should().Be(episodeCount); } [Test] public void SetPostDownloadStatus_Invalid_EpisodeId() { - var db = TestDbHelper.GetEmptyDatabase(); - var mocker = new AutoMoqer(); - mocker.SetConstant(db); + WithRealDb(); var postDownloadStatus = PostDownloadStatusType.Failed; @@ -1565,16 +1474,16 @@ namespace NzbDrone.Core.Test.ProviderTests .With(c => c.PostDownloadStatus = PostDownloadStatusType.Unknown) .Build(); - db.Insert(fakeSeries); - db.InsertMany(fakeEpisodes); + Db.Insert(fakeSeries); + Db.InsertMany(fakeEpisodes); - mocker.GetMock().Setup(s => s.FindSeries("officeus")).Returns(fakeSeries); + Mocker.GetMock().Setup(s => s.FindSeries("officeus")).Returns(fakeSeries); //Act - mocker.Resolve().SetPostDownloadStatus(new List { 300 }, postDownloadStatus); + Mocker.Resolve().SetPostDownloadStatus(new List { 300 }, postDownloadStatus); //Assert - var result = db.Fetch(); + var result = Db.Fetch(); result.Where(e => e.PostDownloadStatus == postDownloadStatus).Count().Should().Be(0); } @@ -1582,8 +1491,7 @@ namespace NzbDrone.Core.Test.ProviderTests [ExpectedException(typeof(ArgumentException))] public void SetPostDownloadStatus_should_throw_if_episode_list_is_empty() { - var mocker = new AutoMoqer(); - mocker.Resolve().SetPostDownloadStatus(new List(), PostDownloadStatusType.Failed); + Mocker.Resolve().SetPostDownloadStatus(new List(), PostDownloadStatusType.Failed); } } } diff --git a/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs b/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs index 0db4ffd3b..cb59121d1 100644 --- a/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs +++ b/NzbDrone.Core.Test/ProviderTests/EpisodeProviderTest_GetEpisodesByParseResult.cs @@ -290,16 +290,12 @@ namespace NzbDrone.Core.Test.ProviderTests public void GetEpisodeParseResult_get_daily_should_add_new_episode() { //Setup + WithRealDb(); + var fakeSeries = Builder.CreateNew() .With(s => s.SeriesId = 1) .Build(); - Mocker.GetMock().Setup(s => s.Fetch(It.IsAny(), It.IsAny())) - .Returns(new List()); - - Mocker.GetMock().Setup(s => s.Insert(It.IsAny())) - .Returns(1); - //Act var episodes = Mocker.Resolve() .GetEpisodesByParseResult(new EpisodeParseResult { AirDate = DateTime.Today, Series = fakeSeries }, true); @@ -308,7 +304,9 @@ namespace NzbDrone.Core.Test.ProviderTests episodes.Should().HaveCount(1); episodes.First().AirDate.Should().Be(DateTime.Today); - Mocker.GetMock().Verify(v => v.Insert(It.IsAny()), Times.Once()); + var episodesInDb = Db.Fetch(); + + episodesInDb.Should().HaveCount(1); } } } \ No newline at end of file diff --git a/NzbDrone.Core.Test/ProviderTests/JobProviderTests/JobProviderFixture.cs b/NzbDrone.Core.Test/ProviderTests/JobProviderTests/JobProviderFixture.cs index 263e8b35d..8e0550f28 100644 --- a/NzbDrone.Core.Test/ProviderTests/JobProviderTests/JobProviderFixture.cs +++ b/NzbDrone.Core.Test/ProviderTests/JobProviderTests/JobProviderFixture.cs @@ -40,6 +40,19 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests Mocker.Resolve().Queue.Should().BeEmpty(); } + private void ResetLastExecution() + { + var jobProvider = Mocker.Resolve(); + jobProvider.Initialize(); + + var jobs = jobProvider.All(); + foreach (var jobDefinition in jobs) + { + jobDefinition.LastExecution = new DateTime(2000, 1, 1); + jobProvider.SaveDefinition(jobDefinition); + } + } + private void WaitForQueue() { Console.WriteLine("Waiting for queue to clear."); @@ -58,13 +71,12 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests Mocker.SetConstant(BaseFakeJobs); //Act - var jobProvider = Mocker.Resolve(); - jobProvider.Initialize(); - jobProvider.QueueScheduled(); + ResetLastExecution(); + Mocker.Resolve().QueueScheduled(); + WaitForQueue(); //Assert - WaitForQueue(); - var settings = jobProvider.All(); + var settings = Mocker.Resolve().All(); settings.First().LastExecution.Should().BeWithin(TimeSpan.FromSeconds(10)); fakeJob.ExecutionCount.Should().Be(1); } @@ -76,13 +88,12 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests Mocker.SetConstant(BaseFakeJobs); //Act - var jobProvider = Mocker.Resolve(); - jobProvider.Initialize(); - jobProvider.QueueScheduled(); + ResetLastExecution(); + Mocker.Resolve().QueueScheduled(); + WaitForQueue(); //Assert - WaitForQueue(); - var settings = jobProvider.All(); + var settings = Mocker.Resolve().All(); settings.First().LastExecution.Should().BeWithin(TimeSpan.FromSeconds(10)); settings.First().Success.Should().BeFalse(); brokenJob.ExecutionCount.Should().Be(1); @@ -96,11 +107,12 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests Mocker.SetConstant(BaseFakeJobs); //Act - var jobProvider = Mocker.Resolve(); - jobProvider.Initialize(); - jobProvider.QueueScheduled(); + ResetLastExecution(); + + Mocker.Resolve().QueueScheduled(); WaitForQueue(); - jobProvider.QueueScheduled(); + + Mocker.Resolve().QueueScheduled(); WaitForQueue(); //Assert @@ -239,7 +251,9 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests timers[0].Interval.Should().Be(fakeJob.DefaultInterval); timers[0].Name.Should().Be(fakeJob.Name); timers[0].TypeName.Should().Be(fakeJob.GetType().ToString()); - timers[0].LastExecution.Should().HaveYear(2000); + timers[0].LastExecution.Should().HaveYear(DateTime.Now.Year); + timers[0].LastExecution.Should().HaveMonth(DateTime.Now.Month); + timers[0].LastExecution.Should().HaveDay(DateTime.Today.Day); timers[0].Enable.Should().BeTrue(); } @@ -325,6 +339,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests //Act var jobProvider = Mocker.Resolve(); jobProvider.Initialize(); + ResetLastExecution(); jobProvider.QueueJob(typeof(FakeJob), 10); WaitForQueue(); @@ -384,15 +399,13 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests IList BaseFakeJobs = new List { slowJob, disabledJob }; Mocker.SetConstant(BaseFakeJobs); - var jobProvider = Mocker.Resolve(); - jobProvider.Initialize(); - - var _jobThread = new Thread(jobProvider.QueueScheduled); + ResetLastExecution(); + var _jobThread = new Thread(Mocker.Resolve().QueueScheduled); _jobThread.Start(); Thread.Sleep(200); - jobProvider.QueueJob(typeof(DisabledJob), 12); + Mocker.Resolve().QueueJob(typeof(DisabledJob), 12); WaitForQueue(); diff --git a/NzbDrone.Core/Providers/EpisodeProvider.cs b/NzbDrone.Core/Providers/EpisodeProvider.cs index e7a625186..73b3f8168 100644 --- a/NzbDrone.Core/Providers/EpisodeProvider.cs +++ b/NzbDrone.Core/Providers/EpisodeProvider.cs @@ -278,12 +278,13 @@ namespace NzbDrone.Core.Providers episodeToUpdate = new Episode(); newList.Add(episodeToUpdate); - //We need to check if this episode should be ignored based on IsIgnored rules - IsIgnored(series.SeriesId, episode.SeasonNumber); - //If it is Episode Zero Ignore it, since it is new if (episode.EpisodeNumber == 0) episodeToUpdate.Ignored = true; + + //Else we need to check if this episode should be ignored based on IsIgnored rules + else + episodeToUpdate.Ignored = IsIgnored(series.SeriesId, episode.SeasonNumber); } else @@ -436,7 +437,7 @@ namespace NzbDrone.Core.Providers var tvDbIdQuery = String.Format("DELETE FROM Episodes WHERE SeriesId = {0} AND TvDbEpisodeId > 0 AND TvDbEpisodeId NOT IN ({1})", series.SeriesId, tvDbIdString); - Logger.Trace("Deleting nivalid episodes by TvDbId for {0}", series.SeriesId); + Logger.Trace("Deleting invalid episodes by TvDbId for {0}", series.SeriesId); _database.Execute(tvDbIdQuery); Logger.Trace("Finished deleting invalid episodes for {0}", series.SeriesId); diff --git a/NzbDrone.Core/Providers/Jobs/JobProvider.cs b/NzbDrone.Core/Providers/Jobs/JobProvider.cs index 3db6d4ea1..4ac739a1a 100644 --- a/NzbDrone.Core/Providers/Jobs/JobProvider.cs +++ b/NzbDrone.Core/Providers/Jobs/JobProvider.cs @@ -90,7 +90,7 @@ namespace NzbDrone.Core.Providers.Jobs TypeName = timer.GetType().ToString(), Name = timerProviderLocal.Name, Interval = timerProviderLocal.DefaultInterval, - LastExecution = new DateTime(2000, 1, 1) + LastExecution = DateTime.Now }; SaveDefinition(settings); diff --git a/NzbDrone.Web/Content/Settings.css b/NzbDrone.Web/Content/Settings.css index d931b1fa6..f42128c96 100644 --- a/NzbDrone.Web/Content/Settings.css +++ b/NzbDrone.Web/Content/Settings.css @@ -9,17 +9,10 @@ p, h1, form, button{border:0; margin:0; padding:0;} .settingsForm { - /*margin:0 auto;*/ - width: 600px; + width: 620px; padding: 14px; } -#stylized -{ - /*border:solid 2px #b7ddf2; - background:#ebf4fb;*/ -} - #stylized h1 { font-size:20px; diff --git a/NzbDrone.Web/Views/Settings/Indexers.cshtml b/NzbDrone.Web/Views/Settings/Indexers.cshtml index c3e7e4c86..09628042c 100644 --- a/NzbDrone.Web/Views/Settings/Indexers.cshtml +++ b/NzbDrone.Web/Views/Settings/Indexers.cshtml @@ -7,26 +7,6 @@ .indexerPanel { overflow: auto; - padding-top: 20px; - } - - .additionalInfo - { - float: right; - margin-top: 20px; - margin-right: 40px; - font-size: 120%; - font-weight: bold; - } - - #stylized .indexerPanel .labelClass - { - width: 320px; - } - - #stylized .indexerPanel .small - { - width: 320px; } } diff --git a/NzbDrone.Web/Views/Settings/Notifications.cshtml b/NzbDrone.Web/Views/Settings/Notifications.cshtml index 445dbc8eb..af147d686 100644 --- a/NzbDrone.Web/Views/Settings/Notifications.cshtml +++ b/NzbDrone.Web/Views/Settings/Notifications.cshtml @@ -7,9 +7,6 @@ } @@ -48,30 +43,22 @@ @section MainContent{
@using (Html.BeginForm("SaveNotifications", "Settings", FormMethod.Post, new { id = "form", name = "form", @class = "settingsForm" })) - { -
- -
- @{Html.RenderPartial("Xbmc", Model);} -
-
- @{Html.RenderPartial("Smtp", Model);} -
-
- @{Html.RenderPartial("Twitter", Model);} -
-
- @{Html.RenderPartial("Growl", Model);} -
-
- @{Html.RenderPartial("Prowl", Model);} -
+ { +
+

XBMC

+ @{Html.RenderPartial("Xbmc", Model);} + +

SMTP

+ @{Html.RenderPartial("Smtp", Model);} + +

Twitter

+ @{Html.RenderPartial("Twitter", Model);} + +

Growl

+ @{Html.RenderPartial("Growl", Model);} + +

Prowl

+ @{Html.RenderPartial("Prowl", Model);}
@@ -84,7 +71,76 @@ + + //Twitter + getAuthorizationUrl = '../Command/GetTwitterAuthorization'; + verifyAuthorizationUrl = '../Command/VerifyTwitterAuthorization'; + + function requestTwitterAuthorization() { + $.ajax({ + type: "GET", + url: getAuthorizationUrl, + error: function(req, status, error) { + alert("Sorry! We could get Twitter Authorization at this time. " + error); + }, + success: function(data, textStatus, jqXHR) { + if (data.IsMessage) + return false; + + $('#authorizationRequestToken').val(data.Token); + window.open(data.Url); + } + }); + } + + function verifyTwitterAuthorization() { + var token = $('#authorizationRequestToken').val(); + var verifier = $('#twitterVerification').val(); + + $.ajax({ + type: "GET", + url: verifyAuthorizationUrl, + data: jQuery.param({ token: token, verifier: verifier }), + error: function(req, status, error) { + alert("Sorry! We could verify Twitter Authorization at this time. " + error); + } + }); + } + + //SMTP + function testSmtpSettings() { + //Get the variables + var server = $('#SmtpServer').val(); + var port = $('#SmtpPort').val(); + var ssl = $('#SmtpUseSsl').val(); + var username = $('#SmtpUsername').val(); + var password = $('#SmtpPassword').val(); + var fromAddress = $('#SmtpFromAddress').val(); + var toAddresses = $('#SmtpToAddresses').val(); + + //Send the data! + $.ajax({ + type: "POST", + url: '../Command/SendTestEmail', + data: jQuery.param({ + server: server, + port: port, + ssl: ssl, + username: username, + password: password, + fromAddress: fromAddress, + toAddresses: toAddresses + }), + error: function (req, status, error) { + alert("Sorry! We could send a test email at this time. " + error); + } + }); + + return false; + } + } diff --git a/NzbDrone.Web/Views/Settings/Smtp.cshtml b/NzbDrone.Web/Views/Settings/Smtp.cshtml index 72bbda310..533643d2b 100644 --- a/NzbDrone.Web/Views/Settings/Smtp.cshtml +++ b/NzbDrone.Web/Views/Settings/Smtp.cshtml @@ -55,49 +55,6 @@ @Html.DescriptionFor(m => m.SmtpToAddresses) @Html.TextBoxFor(m => m.SmtpToAddresses, new { @class = "inputClass" }) -
- - -@*Move this somewhere better*@ - - - \ No newline at end of file + +
\ No newline at end of file diff --git a/NzbDrone.Web/Views/Settings/SubMenu.cshtml b/NzbDrone.Web/Views/Settings/SubMenu.cshtml index f55d5bb49..c46ac03b7 100644 --- a/NzbDrone.Web/Views/Settings/SubMenu.cshtml +++ b/NzbDrone.Web/Views/Settings/SubMenu.cshtml @@ -1,8 +1,8 @@  diff --git a/NzbDrone.Web/Views/Settings/Twitter.cshtml b/NzbDrone.Web/Views/Settings/Twitter.cshtml index 51079af87..dac35b055 100644 --- a/NzbDrone.Web/Views/Settings/Twitter.cshtml +++ b/NzbDrone.Web/Views/Settings/Twitter.cshtml @@ -37,40 +37,4 @@ @Html.Hidden("authorizationRequestToken") - - - \ No newline at end of file + \ No newline at end of file