fixed some tests, cleaned up root folders.
This commit is contained in:
parent
e44d262a1a
commit
a0d0e4715e
|
@ -191,16 +191,16 @@ namespace NzbDrone.Common
|
||||||
File.SetAccessControl(filename, fs);
|
File.SetAccessControl(filename, fs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual ulong FreeDiskSpace(DirectoryInfo directoryInfo)
|
public virtual ulong FreeDiskSpace(string path)
|
||||||
{
|
{
|
||||||
if(!directoryInfo.Exists)
|
if (!FolderExists(path))
|
||||||
throw new DirectoryNotFoundException(directoryInfo.FullName);
|
throw new DirectoryNotFoundException(path);
|
||||||
|
|
||||||
ulong freeBytesAvailable;
|
ulong freeBytesAvailable;
|
||||||
ulong totalNumberOfBytes;
|
ulong totalNumberOfBytes;
|
||||||
ulong totalNumberOfFreeBytes;
|
ulong totalNumberOfFreeBytes;
|
||||||
|
|
||||||
bool success = GetDiskFreeSpaceEx(directoryInfo.FullName, out freeBytesAvailable, out totalNumberOfBytes,
|
bool success = GetDiskFreeSpaceEx(path, out freeBytesAvailable, out totalNumberOfBytes,
|
||||||
out totalNumberOfFreeBytes);
|
out totalNumberOfFreeBytes);
|
||||||
if (!success)
|
if (!success)
|
||||||
throw new System.ComponentModel.Win32Exception();
|
throw new System.ComponentModel.Win32Exception();
|
||||||
|
|
|
@ -13,20 +13,20 @@ namespace NzbDrone.Core.Test.Datastore
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class ObjectDatabaseFixture : ObjectDbTest
|
public class ObjectDatabaseFixture : ObjectDbTest
|
||||||
{
|
{
|
||||||
private Series testSeries;
|
private ChildModel childModel;
|
||||||
private Episode testEpisode;
|
private ParentModel ParentModel;
|
||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
||||||
public void SetUp()
|
public void SetUp()
|
||||||
{
|
{
|
||||||
WithObjectDb(memory:false);
|
WithObjectDb(memory:false);
|
||||||
|
|
||||||
testSeries = Builder<Series>
|
childModel = Builder<ChildModel>
|
||||||
.CreateNew()
|
.CreateNew()
|
||||||
.With(s => s.OID = 0)
|
.With(s => s.OID = 0)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
testEpisode = Builder<Episode>
|
ParentModel = Builder<ParentModel>
|
||||||
.CreateNew()
|
.CreateNew()
|
||||||
.With(e => e.OID = 0)
|
.With(e => e.OID = 0)
|
||||||
.Build();
|
.Build();
|
||||||
|
@ -37,29 +37,29 @@ namespace NzbDrone.Core.Test.Datastore
|
||||||
[Test]
|
[Test]
|
||||||
public void should_be_able_to_write_to_database()
|
public void should_be_able_to_write_to_database()
|
||||||
{
|
{
|
||||||
Db.Insert(testSeries);
|
Db.Insert(childModel);
|
||||||
Db.AsQueryable<Series>().Should().HaveCount(1);
|
Db.AsQueryable<ChildModel>().Should().HaveCount(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void double_insert_should_fail()
|
public void double_insert_should_fail()
|
||||||
{
|
{
|
||||||
Db.Insert(testSeries);
|
Db.Insert(childModel);
|
||||||
Assert.Throws<InvalidOperationException>(() => Db.Insert(testSeries));
|
Assert.Throws<InvalidOperationException>(() => Db.Insert(childModel));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void update_item_with_root_index_0_should_faile()
|
public void update_item_with_root_index_0_should_faile()
|
||||||
{
|
{
|
||||||
testSeries.OID = 0;
|
childModel.OID = 0;
|
||||||
Assert.Throws<InvalidOperationException>(() => Db.Update(testSeries));
|
Assert.Throws<InvalidOperationException>(() => Db.Update(childModel));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_be_able_to_store_empty_list()
|
public void should_be_able_to_store_empty_list()
|
||||||
{
|
{
|
||||||
var series = new List<Series>();
|
var series = new List<ParentModel>();
|
||||||
|
|
||||||
Db.InsertMany(series);
|
Db.InsertMany(series);
|
||||||
}
|
}
|
||||||
|
@ -67,61 +67,61 @@ namespace NzbDrone.Core.Test.Datastore
|
||||||
[Test]
|
[Test]
|
||||||
public void should_not_store_dirty_data_in_cache()
|
public void should_not_store_dirty_data_in_cache()
|
||||||
{
|
{
|
||||||
Db.Insert(testEpisode);
|
Db.Insert(ParentModel);
|
||||||
|
|
||||||
Db.AsQueryable<Episode>().Single().Series.Should().BeNull();
|
Db.AsQueryable<ParentModel>().Single().Child.Should().BeNull();
|
||||||
|
|
||||||
testEpisode.Series = Builder<Series>.CreateNew().Build();
|
ParentModel.Child = Builder<ChildModel>.CreateNew().Build();
|
||||||
|
|
||||||
Db.AsQueryable<Episode>().Single().Series.Should().BeNull();
|
Db.AsQueryable<ParentModel>().Single().Child.Should().BeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_store_nested_objects()
|
public void should_store_nested_objects()
|
||||||
{
|
{
|
||||||
testEpisode.Series = testSeries;
|
ParentModel.Child = childModel;
|
||||||
|
|
||||||
Db.Insert(testEpisode);
|
Db.Insert(ParentModel);
|
||||||
|
|
||||||
Db.AsQueryable<Episode>().Should().HaveCount(1);
|
Db.AsQueryable<ParentModel>().Should().HaveCount(1);
|
||||||
Db.AsQueryable<Episode>().Single().Series.Should().NotBeNull();
|
Db.AsQueryable<ParentModel>().Single().Child.Should().NotBeNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_update_nested_objects()
|
public void should_update_nested_objects()
|
||||||
{
|
{
|
||||||
testEpisode.Series = Builder<Series>
|
ParentModel.Child = Builder<ChildModel>
|
||||||
.CreateNew()
|
.CreateNew()
|
||||||
.With(s => s.OID = 0)
|
.With(s => s.OID = 0)
|
||||||
.Build();
|
.Build();
|
||||||
|
|
||||||
Db.Insert(testEpisode);
|
Db.Insert(ParentModel);
|
||||||
|
|
||||||
testEpisode.Series.Title = "UpdatedTitle";
|
ParentModel.Child.A = "UpdatedTitle";
|
||||||
|
|
||||||
Db.Update(testEpisode);
|
Db.Update(ParentModel);
|
||||||
|
|
||||||
Db.AsQueryable<Episode>().Should().HaveCount(1);
|
Db.AsQueryable<ParentModel>().Should().HaveCount(1);
|
||||||
Db.AsQueryable<Episode>().Single().Series.Should().NotBeNull();
|
Db.AsQueryable<ParentModel>().Single().Child.Should().NotBeNull();
|
||||||
Db.AsQueryable<Episode>().Single().Series.Title.Should().Be("UpdatedTitle");
|
Db.AsQueryable<ParentModel>().Single().Child.A.Should().Be("UpdatedTitle");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void new_objects_should_get_id()
|
public void new_objects_should_get_id()
|
||||||
{
|
{
|
||||||
testSeries.OID = 0;
|
childModel.OID = 0;
|
||||||
Db.Insert(testSeries);
|
Db.Insert(childModel);
|
||||||
testSeries.OID.Should().NotBe(0);
|
childModel.OID.Should().NotBe(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void new_object_should_get_new_id()
|
public void new_object_should_get_new_id()
|
||||||
{
|
{
|
||||||
testSeries.OID = 0;
|
childModel.OID = 0;
|
||||||
Db.Insert(testSeries);
|
Db.Insert(childModel);
|
||||||
|
|
||||||
Db.AsQueryable<Series>().Should().HaveCount(1);
|
Db.AsQueryable<ChildModel>().Should().HaveCount(1);
|
||||||
testSeries.OID.Should().Be(1);
|
childModel.OID.Should().Be(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,24 +141,24 @@ namespace NzbDrone.Core.Test.Datastore
|
||||||
[Test]
|
[Test]
|
||||||
public void should_have_id_when_returned_from_database()
|
public void should_have_id_when_returned_from_database()
|
||||||
{
|
{
|
||||||
testSeries.OID = 0;
|
childModel.OID = 0;
|
||||||
Db.Insert(testSeries);
|
Db.Insert(childModel);
|
||||||
var item = Db.AsQueryable<Series>();
|
var item = Db.AsQueryable<ChildModel>();
|
||||||
|
|
||||||
item.Should().HaveCount(1);
|
item.Should().HaveCount(1);
|
||||||
item.First().OID.Should().NotBe(0);
|
item.First().OID.Should().NotBe(0);
|
||||||
item.First().OID.Should().BeLessThan(100);
|
item.First().OID.Should().BeLessThan(100);
|
||||||
item.First().OID.Should().Be(testSeries.OID);
|
item.First().OID.Should().Be(childModel.OID);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_be_able_to_find_object_by_id()
|
public void should_be_able_to_find_object_by_id()
|
||||||
{
|
{
|
||||||
Db.Insert(testSeries);
|
Db.Insert(childModel);
|
||||||
var item = Db.AsQueryable<Series>().Single(c => c.OID == testSeries.OID);
|
var item = Db.AsQueryable<ChildModel>().Single(c => c.OID == childModel.OID);
|
||||||
|
|
||||||
item.OID.Should().NotBe(0);
|
item.OID.Should().NotBe(0);
|
||||||
item.OID.Should().Be(testSeries.OID);
|
item.OID.Should().Be(childModel.OID);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -182,5 +182,18 @@ namespace NzbDrone.Core.Test.Datastore
|
||||||
|
|
||||||
public List<NestedModel> List { get; set; }
|
public List<NestedModel> List { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ParentModel : BaseRepositoryModel
|
||||||
|
{
|
||||||
|
public ChildModel Child { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChildModel : BaseRepositoryModel
|
||||||
|
{
|
||||||
|
|
||||||
|
public String A { get; set; }
|
||||||
|
public int B { get; set; }
|
||||||
|
public int C { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,15 @@ namespace NzbDrone.Core.Test.Integeration
|
||||||
builder.Register(c => Db)
|
builder.Register(c => Db)
|
||||||
.As<IDatabase>();
|
.As<IDatabase>();
|
||||||
|
|
||||||
|
builder.RegisterType<ReferenceDataProvider>().AsSelf();
|
||||||
|
builder.RegisterType<SceneMappingProvider>().AsSelf();
|
||||||
|
builder.RegisterType<HttpProvider>().AsSelf();
|
||||||
|
builder.RegisterType<ConfigProvider>().AsSelf();
|
||||||
|
|
||||||
_container = builder.Build();
|
_container = builder.Build();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<ConfigProvider>().SetupGet(s => s.ServiceRootUrl)
|
Mocker.GetMock<ConfigProvider>().SetupGet(s => s.ServiceRootUrl)
|
||||||
.Returns("http://services.nzbdrone.com");
|
.Returns("http://services.nzbdrone.com");
|
||||||
}
|
}
|
||||||
|
@ -54,30 +61,5 @@ namespace NzbDrone.Core.Test.Integeration
|
||||||
dailySeries.Should().NotBeEmpty();
|
dailySeries.Should().NotBeEmpty();
|
||||||
dailySeries.Should().OnlyContain(c => c > 0);
|
dailySeries.Should().OnlyContain(c => c > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void should_be_able_to_submit_exceptions()
|
|
||||||
{
|
|
||||||
ReportingService.SetupExceptronDriver();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
ThrowException();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
var log = new LogEventInfo
|
|
||||||
{
|
|
||||||
LoggerName = "LoggerName.LoggerName.LoggerName.LoggerName",
|
|
||||||
Exception = e,
|
|
||||||
Message = "New message string. New message string.",
|
|
||||||
};
|
|
||||||
|
|
||||||
var hash = ReportingService.ReportException(log);
|
|
||||||
|
|
||||||
hash.Should().HaveLength(8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -161,7 +161,7 @@
|
||||||
<Compile Include="ProviderTests\DownloadClientTests\NzbgetProviderTests\DownloadNzbFixture.cs" />
|
<Compile Include="ProviderTests\DownloadClientTests\NzbgetProviderTests\DownloadNzbFixture.cs" />
|
||||||
<Compile Include="ProviderTests\DownloadClientTests\NzbgetProviderTests\QueueFixture.cs" />
|
<Compile Include="ProviderTests\DownloadClientTests\NzbgetProviderTests\QueueFixture.cs" />
|
||||||
<Compile Include="ProviderTests\DownloadProviderTests\ContainsRecentEpisode.cs" />
|
<Compile Include="ProviderTests\DownloadProviderTests\ContainsRecentEpisode.cs" />
|
||||||
<Compile Include="ProviderTests\RootFolderServiceTests\FreeSpaceOnDrivesFixture.cs" />
|
<Compile Include="RootFolderTests\FreeSpaceOnDrivesFixture.cs" />
|
||||||
<Compile Include="ProviderTests\SearchTests\ProcessResultsFixture.cs" />
|
<Compile Include="ProviderTests\SearchTests\ProcessResultsFixture.cs" />
|
||||||
<Compile Include="ProviderTests\SearchTests\DailyEpisodeSearchTests\CheckReportFixture.cs" />
|
<Compile Include="ProviderTests\SearchTests\DailyEpisodeSearchTests\CheckReportFixture.cs" />
|
||||||
<Compile Include="ProviderTests\SearchTests\EpisodeSearchTests\CheckReportFixture.cs" />
|
<Compile Include="ProviderTests\SearchTests\EpisodeSearchTests\CheckReportFixture.cs" />
|
||||||
|
@ -262,7 +262,7 @@
|
||||||
<Compile Include="ProviderTests\DecisionEngineTests\AllowedDownloadSpecificationFixture.cs" />
|
<Compile Include="ProviderTests\DecisionEngineTests\AllowedDownloadSpecificationFixture.cs" />
|
||||||
<Compile Include="ProviderTests\JobProviderTests\JobProviderFixture.cs" />
|
<Compile Include="ProviderTests\JobProviderTests\JobProviderFixture.cs" />
|
||||||
<Compile Include="QualityTest.cs" />
|
<Compile Include="QualityTest.cs" />
|
||||||
<Compile Include="ProviderTests\RootFolderServiceTests\RootFolderServiceFixture.cs" />
|
<Compile Include="RootFolderTests\RootFolderServiceFixture.cs" />
|
||||||
<Compile Include="ProviderTests\IndexerProviderTest.cs" />
|
<Compile Include="ProviderTests\IndexerProviderTest.cs" />
|
||||||
<Compile Include="ProviderTests\HistoryProviderTest.cs" />
|
<Compile Include="ProviderTests\HistoryProviderTest.cs" />
|
||||||
<Compile Include="ProviderTests\MediaFileProviderTest.cs" />
|
<Compile Include="ProviderTests\MediaFileProviderTest.cs" />
|
||||||
|
|
|
@ -15,23 +15,20 @@ using NzbDrone.Test.Common.AutoMoq;
|
||||||
namespace NzbDrone.Core.Test.ProviderTests.DiskProviderTests
|
namespace NzbDrone.Core.Test.ProviderTests.DiskProviderTests
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class FreeDiskSpaceTest : SqlCeTest
|
public class FreeDiskSpaceTest : CoreTest<DiskProvider>
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
public void should_return_free_disk_space()
|
public void should_return_free_disk_space()
|
||||||
{
|
{
|
||||||
var di = new DirectoryInfo(Directory.GetCurrentDirectory());
|
var result = Subject.FreeDiskSpace(Directory.GetCurrentDirectory());
|
||||||
var result = Mocker.Resolve<DiskProvider>().FreeDiskSpace(di);
|
|
||||||
|
|
||||||
//Checks to ensure that the free space on the first is greater than 0 (It should be in 99.99999999999999% of cases... I hope)
|
//Checks to ensure that the free space on the first is greater than 0 (It should be in 99.99999999999999% of cases... I hope)
|
||||||
result.Should().BeGreaterThan(0);
|
result.Should().BeGreaterThan(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void should_throw_if_directoy_does_not_exist()
|
public void should_throw_if_drive_doesnt_exist()
|
||||||
{
|
{
|
||||||
var di = new DirectoryInfo(@"Z:\NOT_A_REAL_PATH\DOES_NOT_EXIST");
|
Assert.Throws<DirectoryNotFoundException>(() => Subject.FreeDiskSpace(@"Z:\NOT_A_REAL_PATH\DOES_NOT_EXIST"));
|
||||||
Assert.Throws<DirectoryNotFoundException>(() => Mocker.Resolve<DiskProvider>().FreeDiskSpace(di));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
|
|
||||||
private void WithLotsOfFreeDiskSpace()
|
private void WithLotsOfFreeDiskSpace()
|
||||||
{
|
{
|
||||||
Mocker.GetMock<DiskProvider>().Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>())).Returns(1000000000);
|
Mocker.GetMock<DiskProvider>().Setup(s => s.FreeDiskSpace(It.IsAny<string>())).Returns(1000000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WithImportedFiles(string droppedFolder)
|
private void WithImportedFiles(string droppedFolder)
|
||||||
|
@ -357,7 +357,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
.Returns(true);
|
.Returns(true);
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(new DirectoryInfo(series.Path)))
|
.Setup(s => s.FreeDiskSpace(series.Path))
|
||||||
.Returns(9);
|
.Returns(9);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
|
@ -408,7 +408,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
.Returns(10);
|
.Returns(10);
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>()))
|
.Setup(s => s.FreeDiskSpace(It.IsAny<string>()))
|
||||||
.Returns(10);
|
.Returns(10);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
|
|
|
@ -32,7 +32,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
|
|
||||||
private void WithLotsOfFreeDiskSpace()
|
private void WithLotsOfFreeDiskSpace()
|
||||||
{
|
{
|
||||||
Mocker.GetMock<DiskProvider>().Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>())).Returns(1000000000);
|
Mocker.GetMock<DiskProvider>().Setup(s => s.FreeDiskSpace(It.IsAny<string>())).Returns(1000000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -64,7 +64,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
|
|
||||||
private void WithLotsOfFreeDiskSpace()
|
private void WithLotsOfFreeDiskSpace()
|
||||||
{
|
{
|
||||||
Mocker.GetMock<DiskProvider>().Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>())).Returns(1000000000);
|
Mocker.GetMock<DiskProvider>().Setup(s => s.FreeDiskSpace(It.IsAny<string>())).Returns(1000000000);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WithImportedFile(string file)
|
private void WithImportedFile(string file)
|
||||||
|
@ -157,7 +157,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
.Returns(10);
|
.Returns(10);
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(new DirectoryInfo(series.Path)))
|
.Setup(s => s.FreeDiskSpace(series.Path))
|
||||||
.Returns(9);
|
.Returns(9);
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
|
@ -209,7 +209,7 @@ namespace NzbDrone.Core.Test.ProviderTests.PostDownloadProviderTests
|
||||||
.Returns(10);
|
.Returns(10);
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>()))
|
.Setup(s => s.FreeDiskSpace(It.IsAny<string>()))
|
||||||
.Returns(10);
|
.Returns(10);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
|
|
|
@ -4,25 +4,19 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using FluentAssertions;
|
using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Common;
|
using NzbDrone.Common;
|
||||||
using NzbDrone.Core.Providers;
|
|
||||||
using NzbDrone.Core.Providers.Core;
|
|
||||||
using NzbDrone.Core.Repository;
|
|
||||||
using NzbDrone.Core.RootFolders;
|
using NzbDrone.Core.RootFolders;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common;
|
using NzbDrone.Test.Common;
|
||||||
using NzbDrone.Test.Common.AutoMoq;
|
|
||||||
using PetaPoco;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.ProviderTests.RootDirProviderTests
|
namespace NzbDrone.Core.Test.RootFolderTests
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
// ReSharper disable InconsistentNaming
|
// ReSharper disable InconsistentNaming
|
||||||
public class FreeSpaceOnDrivesFixture : CoreTest
|
public class FreeSpaceOnDrivesFixture : CoreTest<RootFolderService>
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
public void should_return_one_drive_when_only_one_root_dir_exists()
|
public void should_return_one_drive_when_only_one_root_dir_exists()
|
||||||
|
@ -36,10 +30,10 @@ namespace NzbDrone.Core.Test.ProviderTests.RootDirProviderTests
|
||||||
.Returns(@"C:\");
|
.Returns(@"C:\");
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(new DirectoryInfo(@"C:\")))
|
.Setup(s => s.FreeDiskSpace(@"C:\"))
|
||||||
.Returns(123456);
|
.Returns(123456);
|
||||||
|
|
||||||
var result = Mocker.Resolve<RootFolderService>().FreeSpaceOnDrives();
|
var result = Subject.FreeSpaceOnDrives();
|
||||||
|
|
||||||
result.Should().HaveCount(1);
|
result.Should().HaveCount(1);
|
||||||
}
|
}
|
||||||
|
@ -57,10 +51,10 @@ namespace NzbDrone.Core.Test.ProviderTests.RootDirProviderTests
|
||||||
.Returns(@"C:\");
|
.Returns(@"C:\");
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(new DirectoryInfo(@"C:\")))
|
.Setup(s => s.FreeDiskSpace(@"C:\"))
|
||||||
.Returns(123456);
|
.Returns(123456);
|
||||||
|
|
||||||
var result = Mocker.Resolve<RootFolderService>().FreeSpaceOnDrives();
|
var result = Subject.FreeSpaceOnDrives();
|
||||||
|
|
||||||
result.Should().HaveCount(1);
|
result.Should().HaveCount(1);
|
||||||
}
|
}
|
||||||
|
@ -82,10 +76,10 @@ namespace NzbDrone.Core.Test.ProviderTests.RootDirProviderTests
|
||||||
.Returns(@"D:\");
|
.Returns(@"D:\");
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>()))
|
.Setup(s => s.FreeDiskSpace(It.IsAny<string>()))
|
||||||
.Returns(123456);
|
.Returns(123456);
|
||||||
|
|
||||||
var result = Mocker.Resolve<RootFolderService>().FreeSpaceOnDrives();
|
var result = Subject.FreeSpaceOnDrives();
|
||||||
|
|
||||||
result.Should().HaveCount(2);
|
result.Should().HaveCount(2);
|
||||||
}
|
}
|
||||||
|
@ -102,10 +96,10 @@ namespace NzbDrone.Core.Test.ProviderTests.RootDirProviderTests
|
||||||
.Returns(@"C:\");
|
.Returns(@"C:\");
|
||||||
|
|
||||||
Mocker.GetMock<DiskProvider>()
|
Mocker.GetMock<DiskProvider>()
|
||||||
.Setup(s => s.FreeDiskSpace(It.IsAny<DirectoryInfo>()))
|
.Setup(s => s.FreeDiskSpace(It.IsAny<string>()))
|
||||||
.Throws(new DirectoryNotFoundException());
|
.Throws(new DirectoryNotFoundException());
|
||||||
|
|
||||||
var result = Mocker.Resolve<RootFolderService>().FreeSpaceOnDrives();
|
var result = Subject.FreeSpaceOnDrives();
|
||||||
|
|
||||||
result.Should().HaveCount(0);
|
result.Should().HaveCount(0);
|
||||||
|
|
|
@ -8,14 +8,10 @@ using FluentAssertions;
|
||||||
using Moq;
|
using Moq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using NzbDrone.Common;
|
using NzbDrone.Common;
|
||||||
using NzbDrone.Core.Providers;
|
|
||||||
using NzbDrone.Core.Providers.Core;
|
|
||||||
using NzbDrone.Core.Repository;
|
|
||||||
using NzbDrone.Core.RootFolders;
|
using NzbDrone.Core.RootFolders;
|
||||||
using NzbDrone.Core.Test.Framework;
|
using NzbDrone.Core.Test.Framework;
|
||||||
using NzbDrone.Test.Common.AutoMoq;
|
|
||||||
|
|
||||||
namespace NzbDrone.Core.Test.ProviderTests.RootFolderServiceTests
|
namespace NzbDrone.Core.Test.RootFolderTests
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
// ReSharper disable InconsistentNaming
|
// ReSharper disable InconsistentNaming
|
|
@ -83,7 +83,7 @@ namespace NzbDrone.Core
|
||||||
container.Register(c =>
|
container.Register(c =>
|
||||||
{
|
{
|
||||||
return c.Resolve<IObjectDbFactory>().Create("");
|
return c.Resolve<IObjectDbFactory>().Create("");
|
||||||
}).As<SiaqodbProxy>().SingleInstance();
|
}).As<IObjectDatabase>().SingleInstance();
|
||||||
|
|
||||||
container.RegisterType<DatabaseTarget>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("DatabaseTarget"));
|
container.RegisterType<DatabaseTarget>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("DatabaseTarget"));
|
||||||
container.RegisterType<LogProvider>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("LogProvider"));
|
container.RegisterType<LogProvider>().WithParameter(ResolvedParameter.ForNamed<IDatabase>("LogProvider"));
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace NzbDrone.Core.Datastore
|
||||||
throw new InvalidOperationException("Attempted to insert object with existing ID as new object");
|
throw new InvalidOperationException("Attempted to insert object with existing ID as new object");
|
||||||
}
|
}
|
||||||
|
|
||||||
_db.StoreObject(obj);
|
_db.StoreObject(obj);
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ namespace NzbDrone.Core.Datastore
|
||||||
|
|
||||||
public IList<T> InsertMany<T>(IList<T> objects) where T : BaseRepositoryModel
|
public IList<T> InsertMany<T>(IList<T> objects) where T : BaseRepositoryModel
|
||||||
{
|
{
|
||||||
return DoMany(objects,Insert);
|
return DoMany(objects, Insert);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IList<T> UpdateMany<T>(IList<T> objects) where T : BaseRepositoryModel
|
public IList<T> UpdateMany<T>(IList<T> objects) where T : BaseRepositoryModel
|
||||||
|
@ -70,12 +70,15 @@ namespace NzbDrone.Core.Datastore
|
||||||
|
|
||||||
public void Delete<T>(T obj) where T : BaseRepositoryModel
|
public void Delete<T>(T obj) where T : BaseRepositoryModel
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
_db.Delete(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DeleteMany<T>(IEnumerable<T> objects) where T : BaseRepositoryModel
|
public void DeleteMany<T>(IEnumerable<T> objects) where T : BaseRepositoryModel
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
foreach (var o in objects)
|
||||||
|
{
|
||||||
|
Delete(o);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private IList<T> DoMany<T>(IEnumerable<T> objects, Func<T, T> function) where T : BaseRepositoryModel
|
private IList<T> DoMany<T>(IEnumerable<T> objects, Func<T, T> function) where T : BaseRepositoryModel
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace NzbDrone.Core.Providers
|
||||||
}
|
}
|
||||||
|
|
||||||
var size = _diskProvider.GetDirectorySize(subfolderInfo.FullName);
|
var size = _diskProvider.GetDirectorySize(subfolderInfo.FullName);
|
||||||
var freeSpace = _diskProvider.FreeDiskSpace(new DirectoryInfo(series.Path));
|
var freeSpace = _diskProvider.FreeDiskSpace(series.Path);
|
||||||
|
|
||||||
if (Convert.ToUInt64(size) > freeSpace)
|
if (Convert.ToUInt64(size) > freeSpace)
|
||||||
{
|
{
|
||||||
|
@ -161,7 +161,7 @@ namespace NzbDrone.Core.Providers
|
||||||
}
|
}
|
||||||
|
|
||||||
var size = _diskProvider.GetSize(videoFile);
|
var size = _diskProvider.GetSize(videoFile);
|
||||||
var freeSpace = _diskProvider.FreeDiskSpace(new DirectoryInfo(series.Path));
|
var freeSpace = _diskProvider.FreeDiskSpace(series.Path);
|
||||||
|
|
||||||
if (Convert.ToUInt64(size) > freeSpace)
|
if (Convert.ToUInt64(size) > freeSpace)
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace NzbDrone.Core.Repository
|
||||||
{
|
{
|
||||||
[TableName("Episodes")]
|
[TableName("Episodes")]
|
||||||
[PrimaryKey("EpisodeId", autoIncrement = true)]
|
[PrimaryKey("EpisodeId", autoIncrement = true)]
|
||||||
public class Episode:BaseRepositoryModel
|
public class Episode
|
||||||
{
|
{
|
||||||
public int EpisodeId { get; set; }
|
public int EpisodeId { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using NzbDrone.Core.Datastore;
|
|
||||||
using NzbDrone.Core.Model;
|
using NzbDrone.Core.Model;
|
||||||
using NzbDrone.Core.Repository.Quality;
|
using NzbDrone.Core.Repository.Quality;
|
||||||
using PetaPoco;
|
using PetaPoco;
|
||||||
|
@ -8,7 +7,7 @@ using PetaPoco;
|
||||||
namespace NzbDrone.Core.Repository
|
namespace NzbDrone.Core.Repository
|
||||||
{
|
{
|
||||||
[PrimaryKey("SeriesId", autoIncrement = false)]
|
[PrimaryKey("SeriesId", autoIncrement = false)]
|
||||||
public class Series:BaseRepositoryModel
|
public class Series
|
||||||
{
|
{
|
||||||
public virtual int SeriesId { get; set; }
|
public virtual int SeriesId { get; set; }
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,16 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using NzbDrone.Core.Datastore;
|
using NzbDrone.Core.Datastore;
|
||||||
using PetaPoco;
|
using Sqo.Attributes;
|
||||||
|
|
||||||
namespace NzbDrone.Core.RootFolders
|
namespace NzbDrone.Core.RootFolders
|
||||||
{
|
{
|
||||||
|
|
||||||
[TableName("RootDirs")]
|
|
||||||
[PrimaryKey("Id", autoIncrement = true)]
|
|
||||||
public class RootFolder : BaseRepositoryModel
|
public class RootFolder : BaseRepositoryModel
|
||||||
{
|
{
|
||||||
public string Path { get; set; }
|
public string Path { get; set; }
|
||||||
|
|
||||||
[ResultColumn]
|
[Ignore]
|
||||||
public ulong FreeSpace { get; set; }
|
public ulong FreeSpace { get; set; }
|
||||||
|
|
||||||
[Ignore]
|
|
||||||
public List<string> UnmappedFolders { get; set; }
|
public List<string> UnmappedFolders { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -7,8 +7,7 @@ namespace NzbDrone.Core.RootFolders
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//This way we only need to implement none_custom methods for repos, like custom queries etc... rest is done automagically.
|
|
||||||
public class RootFolderRepository : BasicRepository<RootFolder>, IRootFolderRepository
|
public class RootFolderRepository : BasicRepository<RootFolder>, IRootFolderRepository
|
||||||
{
|
{
|
||||||
public RootFolderRepository(IObjectDatabase objectDatabase)
|
public RootFolderRepository(IObjectDatabase objectDatabase)
|
||||||
|
@ -16,10 +15,5 @@ namespace NzbDrone.Core.RootFolders
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public RootFolder Add(RootFolder rootFolder)
|
|
||||||
{
|
|
||||||
return ObjectDatabase.Insert(rootFolder);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,8 +38,11 @@ namespace NzbDrone.Core.RootFolders
|
||||||
|
|
||||||
rootFolders.ForEach(folder =>
|
rootFolders.ForEach(folder =>
|
||||||
{
|
{
|
||||||
folder.FreeSpace = _diskProvider.FreeDiskSpace(new DirectoryInfo(folder.Path));
|
if (_diskProvider.FolderExists(folder.Path))
|
||||||
folder.UnmappedFolders = GetUnmappedFolders(folder.Path);
|
{
|
||||||
|
folder.FreeSpace = _diskProvider.FreeDiskSpace(folder.Path);
|
||||||
|
folder.UnmappedFolders = GetUnmappedFolders(folder.Path);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return rootFolders;
|
return rootFolders;
|
||||||
|
@ -58,7 +61,7 @@ namespace NzbDrone.Core.RootFolders
|
||||||
|
|
||||||
_rootFolderRepository.Add(rootFolder);
|
_rootFolderRepository.Add(rootFolder);
|
||||||
|
|
||||||
rootFolder.FreeSpace = _diskProvider.FreeDiskSpace(new DirectoryInfo(rootFolder.Path));
|
rootFolder.FreeSpace = _diskProvider.FreeDiskSpace(rootFolder.Path);
|
||||||
rootFolder.UnmappedFolders = GetUnmappedFolders(rootFolder.Path);
|
rootFolder.UnmappedFolders = GetUnmappedFolders(rootFolder.Path);
|
||||||
return rootFolder;
|
return rootFolder;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +111,7 @@ namespace NzbDrone.Core.RootFolders
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
freeSpace.Add(pathRoot, _diskProvider.FreeDiskSpace(new DirectoryInfo(rootDir.Path)));
|
freeSpace.Add(pathRoot, _diskProvider.FreeDiskSpace(rootDir.Path));
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue