Sonarr/NzbDrone.Core.Test/HistoryProviderTest.cs

163 lines
4.8 KiB
C#
Raw Normal View History

2011-05-22 16:53:21 +00:00
// ReSharper disable RedundantUsingDirective
using System;
using System.Linq;
2011-04-22 20:14:02 +00:00
using AutoMoq;
2011-05-28 19:23:35 +00:00
using FizzWare.NBuilder;
2011-06-02 21:06:46 +00:00
using FluentAssertions;
using Moq;
2011-06-02 21:06:46 +00:00
using NUnit.Framework;
using NzbDrone.Core.Providers;
using NzbDrone.Core.Repository;
2011-01-29 20:03:47 +00:00
using NzbDrone.Core.Repository.Quality;
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test
{
[TestFixture]
// ReSharper disable InconsistentNaming
public class HistoryProviderTest : TestBase
{
[Test]
public void AllItems()
{
//Setup
2011-06-17 06:59:13 +00:00
var historyItem = Builder<History>.CreateListOfSize(10).Build();
2011-06-17 06:59:13 +00:00
var mocker = new AutoMoqer();
var db = MockLib.GetEmptyDatabase();
mocker.SetConstant(db);
2011-06-17 06:59:13 +00:00
db.InsertMany(historyItem);
//Act
2011-06-17 06:59:13 +00:00
var result = mocker.Resolve<HistoryProvider>().AllItems();
//Assert
2011-06-17 06:59:13 +00:00
result.Should().HaveSameCount(historyItem);
}
[Test]
public void PurgeItem()
{
//Setup
var historyItem = Builder<History>.CreateListOfSize(10).Build();
var mocker = new AutoMoqer();
var db = MockLib.GetEmptyDatabase();
mocker.SetConstant(db);
db.InsertMany(historyItem);
//Act
db.Fetch<History>().Should().HaveCount(10);
mocker.Resolve<HistoryProvider>().Purge();
//Assert
db.Fetch<History>().Should().HaveCount(0);
}
[Test]
public void Trim_Items()
{
//Setup
var historyItem = Builder<History>.CreateListOfSize(20)
.WhereTheFirst(10).Have(c => c.Date = DateTime.Now)
.AndTheNext(10).Have(c => c.Date = DateTime.Now.AddDays(-31))
.Build();
var mocker = new AutoMoqer();
var db = MockLib.GetEmptyDatabase();
mocker.SetConstant(db);
db.InsertMany(historyItem);
//Act
db.Fetch<History>().Should().HaveCount(20);
mocker.Resolve<HistoryProvider>().Trim();
//Assert
db.Fetch<History>().Should().HaveCount(10);
}
2011-04-22 20:14:02 +00:00
2011-05-28 19:23:35 +00:00
[Test]
public void GetBestQualityInHistory_no_result()
{
var mocker = new AutoMoqer(MockBehavior.Strict);
2011-06-17 06:59:13 +00:00
mocker.SetConstant(MockLib.GetEmptyDatabase());
2011-05-28 19:23:35 +00:00
//Act
var result = mocker.Resolve<HistoryProvider>().GetBestQualityInHistory(12);
//Assert
Assert.IsNull(result);
}
[Test]
public void GetBestQualityInHistory_single_result()
{
var mocker = new AutoMoqer(MockBehavior.Strict);
2011-06-17 06:59:13 +00:00
var db = MockLib.GetEmptyDatabase();
2011-06-05 19:15:46 +00:00
var history = Builder<History>.CreateNew()
.With(h => h.Quality = QualityTypes.Bluray720p).Build();
2011-06-17 06:59:13 +00:00
db.Insert(history);
mocker.SetConstant(db);
2011-05-28 19:23:35 +00:00
//Act
var result = mocker.Resolve<HistoryProvider>().GetBestQualityInHistory(history.EpisodeId);
//Assert
Assert.IsNotNull(result);
2011-06-05 19:15:46 +00:00
result.QualityType.Should().Be(QualityTypes.Bluray720p);
2011-05-28 19:23:35 +00:00
}
2011-04-22 20:14:02 +00:00
[Test]
public void add_item()
{
//Arange
2011-04-22 20:14:02 +00:00
var mocker = new AutoMoqer();
2011-06-17 06:59:13 +00:00
var db = MockLib.GetEmptyDatabase();
2011-04-22 20:14:02 +00:00
2011-06-17 06:59:13 +00:00
mocker.SetConstant(db);
2011-04-22 20:14:02 +00:00
2011-06-17 06:59:13 +00:00
var episode = Builder<Episode>.CreateNew().Build();
2011-04-22 20:14:02 +00:00
2011-06-17 06:59:13 +00:00
const QualityTypes quality = QualityTypes.HDTV;
const bool proper = true;
2011-04-22 20:14:02 +00:00
var history = new History
{
Date = DateTime.Now,
EpisodeId = episode.EpisodeId,
2011-06-17 06:59:13 +00:00
SeriesId = episode.SeriesId,
NzbTitle = "my title",
2011-06-17 06:59:13 +00:00
Indexer = "Fake Indexer",
Quality = quality,
IsProper = proper
2011-04-22 20:14:02 +00:00
};
//Act
2011-04-22 20:14:02 +00:00
mocker.Resolve<HistoryProvider>().Add(history);
//Assert
2011-06-17 06:59:13 +00:00
var storedHistory = db.Fetch<History>();
2011-06-02 21:06:46 +00:00
storedHistory.Should().HaveCount(1);
2011-06-17 06:59:13 +00:00
Assert.AreEqual(history.Date, storedHistory.First().Date);
Assert.AreEqual(history.EpisodeId, storedHistory.First().EpisodeId);
Assert.AreEqual(history.SeriesId, storedHistory.First().SeriesId);
Assert.AreEqual(history.NzbTitle, storedHistory.First().NzbTitle);
Assert.AreEqual(history.Indexer, storedHistory.First().Indexer);
Assert.AreEqual(history.Quality, storedHistory.First().Quality);
Assert.AreEqual(history.IsProper, storedHistory.First().IsProper);
2011-04-22 20:14:02 +00:00
}
}
}