Cleaned up some tests

pull/2/head
Keivan 14 years ago
parent 81e155ae42
commit 9c7355f3fb

@ -8,6 +8,7 @@ using MbUnit.Framework.ContractVerifiers;
namespace NzbDrone.Core.Test namespace NzbDrone.Core.Test
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming
public class EpisodeProviderTest public class EpisodeProviderTest
{ {

@ -74,6 +74,7 @@
<Compile Include="Ninject.Moq\MockProvider.cs" /> <Compile Include="Ninject.Moq\MockProvider.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="QualityProfileTest.cs" /> <Compile Include="QualityProfileTest.cs" />
<Compile Include="RepoTest.cs" />
<Compile Include="SabControllerTest.cs" /> <Compile Include="SabControllerTest.cs" />
<Compile Include="SeriesProviderTest.cs" /> <Compile Include="SeriesProviderTest.cs" />
<Compile Include="TvDbControllerTest.cs" /> <Compile Include="TvDbControllerTest.cs" />

@ -7,6 +7,8 @@ using NzbDrone.Core.Repository.Quality;
namespace NzbDrone.Core.Test namespace NzbDrone.Core.Test
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming
public class QualityProfileTest public class QualityProfileTest
{ {
/// <summary> /// <summary>

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FizzWare.NBuilder;
using Gallio.Framework;
using MbUnit.Framework;
using MbUnit.Framework.ContractVerifiers;
using NzbDrone.Core.Repository;
using NzbDrone.Core.Repository.Episode;
namespace NzbDrone.Core.Test
{
[TestFixture]
// ReSharper disable InconsistentNaming
public class RepoTest
{
[Test]
public void to_many__series_to_episode()
{
//Arrange
var fakeSeries = Builder<Series>.CreateNew().With(s => s.SeriesId = 69).Build();
var fakeEpisode = Builder<EpisodeInfo>.CreateNew().With(c => c.SeriesId = 69).Build();
//Act
var repo = MockLib.GetEmptyRepository();
repo.Add(fakeSeries);
repo.Add(fakeEpisode);
var fetchedSeries = repo.Single<Series>(fakeSeries.SeriesId);
//Assert
Assert.AreEqual(fakeSeries.SeriesId, fetchedSeries.SeriesId);
Assert.AreEqual(fakeSeries.Title, fetchedSeries.Title);
Assert.IsNotEmpty(fetchedSeries.Episodes);
Assert.AreEqual(fetchedSeries.Episodes[0].EpisodeId, fakeEpisode.EpisodeId);
Assert.AreEqual(fetchedSeries.Episodes[0].SeriesId, fakeEpisode.SeriesId);
Assert.AreEqual(fetchedSeries.Episodes[0].Title, fakeEpisode.Title);
}
[Test]
[Description("This test confirms that the tvdb id stored in the db is preserved rather than being replaced by an auto incrementing value")]
public void tvdbid_is_preserved([RandomNumbers(Minimum = 100, Maximum = 999, Count = 1)] int tvdbId)
{
//Arrange
var sonicRepo = MockLib.GetEmptyRepository();
var series = Builder<Series>.CreateNew().With(c => c.SeriesId = tvdbId).Build();
//Act
var addId = sonicRepo.Add(series);
//Assert
Assert.AreEqual(tvdbId, addId);
var allSeries = sonicRepo.All<Series>();
Assert.IsNotEmpty(allSeries);
Assert.AreEqual(tvdbId, allSeries.First().SeriesId);
}
}
}

@ -14,6 +14,7 @@ using SubSonic.Repository;
namespace NzbDrone.Core.Test namespace NzbDrone.Core.Test
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming
public class SabControllerTest public class SabControllerTest
{ {
[Test] [Test]

@ -21,6 +21,7 @@ using System.Linq;
namespace NzbDrone.Core.Test namespace NzbDrone.Core.Test
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming
public class SeriesProviderTest public class SeriesProviderTest
{ {
[Test] [Test]
@ -65,26 +66,6 @@ namespace NzbDrone.Core.Test
Assert.AreEqual(title, result, postTitle); Assert.AreEqual(title, result, postTitle);
} }
[Test]
[Description("This test confirms that the tvdb id stored in the db is preserved rather than being replaced by an auto incrementing value")]
public void tvdbid_is_preserved([RandomNumbers(Minimum = 100, Maximum = 999, Count = 1)] int tvdbId)
{
//Arrange
var sonicRepo = MockLib.GetEmptyRepository();
var series = Builder<Series>.CreateNew().With(c => c.SeriesId = tvdbId).Build();
//Act
var addId = sonicRepo.Add(series);
//Assert
Assert.AreEqual(tvdbId, addId);
var allSeries = sonicRepo.All<Series>();
Assert.IsNotEmpty(allSeries);
Assert.AreEqual(tvdbId, allSeries.First().SeriesId);
}
[Test] [Test]
public void get_unmapped() public void get_unmapped()
{ {
@ -104,21 +85,6 @@ namespace NzbDrone.Core.Test
Assert.AreElementsEqualIgnoringOrder(MockLib.StandardSeries, unmappedFolder); Assert.AreElementsEqualIgnoringOrder(MockLib.StandardSeries, unmappedFolder);
} }
[Test]
public void get_episode_test()
{
var fakeSeries = Builder<Series>.CreateNew().Build();
var fakeEpisode = Builder<EpisodeInfo>.CreateNew().With(c => c.SeriesId).Build();
Console.WriteLine("test");
var repo = MockLib.GetEmptyRepository();
repo.Add(fakeSeries);
repo.Add(fakeEpisode);
var fetchedSeries = repo.Single<Series>(fakeSeries.SeriesId);
Assert.IsNotEmpty(fetchedSeries.Episodes);
}
} }
} }

@ -9,6 +9,7 @@ using NzbDrone.Core.Providers;
namespace NzbDrone.Core.Test namespace NzbDrone.Core.Test
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming
public class TvDbControllerTest public class TvDbControllerTest
{ {
[Test] [Test]

@ -3,6 +3,7 @@ using System.IO;
using System.Web; using System.Web;
using Ninject; using Ninject;
using NLog.Config; using NLog.Config;
using NLog.Layouts;
using NLog.Targets; using NLog.Targets;
using NzbDrone.Core.Providers; using NzbDrone.Core.Providers;
using NzbDrone.Core.Repository; using NzbDrone.Core.Repository;
@ -15,11 +16,13 @@ namespace NzbDrone.Core
{ {
public static class CentralDispatch public static class CentralDispatch
{ {
private static readonly Logger Logger = LogManager.GetLogger("DB");
public static void BindKernel(IKernel kernel) public static void BindKernel(IKernel kernel)
{ {
string connectionString = String.Format("Data Source={0};Version=3;", Path.Combine(AppPath, "nzbdrone.db")); string connectionString = String.Format("Data Source={0};Version=3;", Path.Combine(AppPath, "nzbdrone.db"));
var provider = ProviderFactory.GetProvider(connectionString, "System.Data.SQLite"); var provider = ProviderFactory.GetProvider(connectionString, "System.Data.SQLite");
provider.Log = new SonicTrace();
kernel.Bind<ISeriesProvider>().To<SeriesProvider>(); kernel.Bind<ISeriesProvider>().To<SeriesProvider>();
kernel.Bind<ISeasonProvider>().To<SeasonProvider>(); kernel.Bind<ISeasonProvider>().To<SeasonProvider>();
kernel.Bind<IEpisodeProvider>().To<EpisodeProvider>(); kernel.Bind<IEpisodeProvider>().To<EpisodeProvider>();
@ -50,42 +53,52 @@ namespace NzbDrone.Core
// Step 1. Create configuration object // Step 1. Create configuration object
var config = new LoggingConfiguration(); var config = new LoggingConfiguration();
string callSight = "${callsite:className=false:fileName=true:includeSourcePath=false:methodName=true}";
// Step 2. Create targets and add them to the configuration // Step 2. Create targets and add them to the configuration
var consoleTarget = new DebuggerTarget(); var debuggerTarget = new DebuggerTarget
config.AddTarget("console", consoleTarget); {
Layout = callSight + "- ${logger}: ${message}"
};
var consoleTarget = new ColoredConsoleTarget
{
Layout = callSight + ": ${message}"
};
FileTarget fileTarget = new FileTarget();
config.AddTarget("file", fileTarget); var fileTarget = new FileTarget
{
FileName = "${basedir}/test.log",
Layout = "${message}"
};
config.AddTarget("debugger", debuggerTarget);
config.AddTarget("console", consoleTarget);
//config.AddTarget("file", fileTarget);
// Step 3. Set target properties // Step 3. Set target properties
consoleTarget.Layout = "${logger} ${message}";
fileTarget.FileName = "${basedir}/test.log";
fileTarget.Layout = "${message}";
// Step 4. Define rules // Step 4. Define rules
LoggingRule rule1 = new LoggingRule("*", LogLevel.Trace, consoleTarget); LoggingRule debugRule = new LoggingRule("*", LogLevel.Trace, debuggerTarget);
config.LoggingRules.Add(rule1); LoggingRule fileRule = new LoggingRule("*", LogLevel.Trace, fileTarget);
LoggingRule consoleRule = new LoggingRule("*", LogLevel.Trace, consoleTarget);
LoggingRule rule2 = new LoggingRule("*", LogLevel.Trace, fileTarget); //config.LoggingRules.Add(fileRule);
config.LoggingRules.Add(rule2); config.LoggingRules.Add(debugRule);
config.LoggingRules.Add(consoleRule);
// Step 5. Activate the configuration // Step 5. Activate the configuration
NLog.LogManager.Configuration = config; LogManager.Configuration = config;
Logger logger = LogManager.GetCurrentClassLogger();
logger.Trace("trace log message");
logger.Debug("debug log message");
logger.Info("info log message");
logger.Warn("warn log message");
logger.Error("error log message");
logger.Fatal("fatal log message");
} }
private static void ForceMigration(IRepository repository) private static void ForceMigration(IRepository repository)
{ {
repository.GetPaged<Series>(0, 1); repository.GetPaged<Series>(0, 1);
repository.GetPaged<EpisodeInfo>(0, 1); repository.GetPaged<EpisodeInfo>(0, 1);
repository.GetPaged<Series>(0, 1);
} }
} }
} }

@ -146,6 +146,7 @@
<Reference Include="TvdbLib, Version=0.8.8.0, Culture=neutral, processorArchitecture=MSIL" /> <Reference Include="TvdbLib, Version=0.8.8.0, Culture=neutral, processorArchitecture=MSIL" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="SonicTrace.cs" />
<Compile Include="Providers\ConfigProvider.cs" /> <Compile Include="Providers\ConfigProvider.cs" />
<Compile Include="Providers\EpisodeProvider.cs" /> <Compile Include="Providers\EpisodeProvider.cs" />
<Compile Include="Providers\HttpProvider.cs" /> <Compile Include="Providers\HttpProvider.cs" />

@ -32,7 +32,7 @@ namespace NzbDrone.Core.Providers
private readonly ISeriesProvider _series; private readonly ISeriesProvider _series;
private readonly ISeasonProvider _seasons; private readonly ISeasonProvider _seasons;
private readonly ITvDbProvider _tvDb; private readonly ITvDbProvider _tvDb;
private static readonly Logger Logger = NLog.LogManager.GetCurrentClassLogger(); private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public EpisodeProvider(IRepository sonicRepo, ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, ITvDbProvider tvDbProvider) public EpisodeProvider(IRepository sonicRepo, ISeriesProvider seriesProvider, ISeasonProvider seasonProvider, ITvDbProvider tvDbProvider)

@ -31,7 +31,7 @@ namespace NzbDrone.Core.Providers
if (_sonicRepo.Exists<Season>(s => s.SeasonId == seasonId)) if (_sonicRepo.Exists<Season>(s => s.SeasonId == seasonId))
return; return;
//TODO: Calculate Season Folder //TODO: Calculate Season Folder
Logger.Debug("Creating Season. SeriesID:{0} SeasonID:{1} SeasonNumber:{2} Folder:{3}", seriesId, seasonId, seasonNumber, string.Empty); Logger.Debug("Adding Season To DB. [SeriesID:{0} SeasonID:{1} SeasonNumber:{2} Folder:{3}]", seriesId, seasonId, seasonNumber, "????");
var newSeason = new Season() var newSeason = new Season()
{ {

@ -0,0 +1,39 @@
/*
*Source:http://stackoverflow.com/questions/1520945/nlog-to-output-db-out
*DamienG
*/
using System;
using System.IO;
using System.Text;
using NLog;
namespace NzbDrone.Core
{
class SonicTrace : TextWriter
{
private static readonly Logger Logger = LogManager.GetLogger("DB");
public override void Write(char[] buffer, int index, int count)
{
Write(new string(buffer, index, count));
}
public override void Write(string value)
{
DbAction(value);
}
private static void DbAction(string value)
{
Logger.Trace(value);
}
public override Encoding Encoding
{
get { return Encoding.Default; }
}
}
}

@ -34,6 +34,10 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="NLog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\NzbDrone.Core\Libraries\NLog.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />

@ -3,18 +3,24 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net; using System.Net;
using System.Text; using System.Text;
using NLog;
using NzbDrone.Core;
namespace NzbDrone.Console namespace NzbDrone.Console
{ {
class Program class Program
{ {
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args) static void Main(string[] args)
{ {
CentralDispatch.ConfigureNlog();
Logger.Info("Starting NZBDrone WebUI");
var server = new CassiniDev.Server(@"D:\My Dropbox\Git\NzbDrone\NzbDrone.Web"); var server = new CassiniDev.Server(@"D:\My Dropbox\Git\NzbDrone\NzbDrone.Web");
server.Start(); server.Start();
System.Diagnostics.Process.Start(server.RootUrl); System.Diagnostics.Process.Start(server.RootUrl);
System.Console.WriteLine(server.RootUrl); Logger.Info("Server available at: " + server.RootUrl);
System.Console.ReadLine(); System.Console.ReadLine();
} }

Loading…
Cancel
Save