Radarr/src/NzbDrone.Common.Test/DiskTests/FreeSpaceFixtureBase.cs

82 lines
2.4 KiB
C#
Raw Normal View History

2013-08-26 19:35:53 +00:00
using System;
using System.IO;
2011-11-12 19:53:36 +00:00
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Common.Disk;
2013-07-26 05:41:38 +00:00
using NzbDrone.Test.Common;
2011-11-12 19:53:36 +00:00
namespace NzbDrone.Common.Test.DiskTests
2011-11-12 19:53:36 +00:00
{
public abstract class FreeSpaceFixtureBase<TSubject> : TestBase<TSubject> where TSubject : class, IDiskProvider
2011-11-12 19:53:36 +00:00
{
[Ignore("Docker")]
[Test]
public void should_get_free_space_for_folder()
{
var path = @"C:\".AsOsAgnostic();
Subject.GetAvailableSpace(path).Should().NotBe(0);
}
[Ignore("Docker")]
[Test]
public void should_get_free_space_for_folder_that_doesnt_exist()
{
var path = @"C:\".AsOsAgnostic();
Subject.GetAvailableSpace(Path.Combine(path, "invalidFolder")).Should().NotBe(0);
}
[Ignore("Docker")]
[Test]
public void should_be_able_to_check_space_on_ramdrive()
{
2019-10-14 20:21:00 +00:00
PosixOnly();
2019-07-10 02:05:32 +00:00
Subject.GetAvailableSpace("/run/").Should().NotBe(0);
}
[Ignore("Docker")]
2011-11-12 19:53:36 +00:00
[Test]
public void should_return_free_disk_space()
2011-11-12 19:53:36 +00:00
{
var result = Subject.GetAvailableSpace(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
result.Should().BeGreaterThan(0);
}
[Test]
public void should_be_able_to_get_space_on_unc()
{
WindowsOnly();
2011-11-12 19:53:36 +00:00
var result = Subject.GetAvailableSpace(@"\\localhost\c$\Windows");
2011-11-12 19:53:36 +00:00
result.Should().BeGreaterThan(0);
}
[Test]
public void should_throw_if_drive_doesnt_exist()
{
WindowsOnly();
// Find a drive that doesn't exist.
for (char driveletter = 'Z'; driveletter > 'D' ; driveletter--)
{
if (new DriveInfo(driveletter.ToString()).IsReady)
continue;
2019-12-22 21:24:11 +00:00
Assert.Throws<DirectoryNotFoundException>(() => Subject.GetAvailableSpace(driveletter + @":\NOT_A_REAL_PATH\DOES_NOT_EXIST".AsOsAgnostic()));
return;
}
Assert.Inconclusive("No drive available for testing.");
}
[Ignore("Docker")]
[Test]
public void should_be_able_to_get_space_on_folder_that_doesnt_exist()
{
var result = Subject.GetAvailableSpace(@"C:\I_DO_NOT_EXIST".AsOsAgnostic());
result.Should().BeGreaterThan(0);
}
2011-11-12 19:53:36 +00:00
}
}