103 lines
3.0 KiB
C#
103 lines
3.0 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using FluentAssertions;
|
|||
|
using Moq;
|
|||
|
using NUnit.Framework;
|
|||
|
using NzbDrone.Test.Common;
|
|||
|
|
|||
|
namespace NzbDrone.Common.Test
|
|||
|
{
|
|||
|
[TestFixture]
|
|||
|
public class DirectoryLookupServiceFixture :TestBase<DirectoryLookupService>
|
|||
|
{
|
|||
|
private const string RECYCLING_BIN = "$Recycle.Bin";
|
|||
|
private const string SYSTEM_VOLUME_INFORMATION = "System Volume Information";
|
|||
|
private List<String> _folders;
|
|||
|
|
|||
|
[SetUp]
|
|||
|
public void Setup()
|
|||
|
{
|
|||
|
_folders = new List<String>
|
|||
|
{
|
|||
|
RECYCLING_BIN,
|
|||
|
"Chocolatey",
|
|||
|
"Documents and Settings",
|
|||
|
"Dropbox",
|
|||
|
"Intel",
|
|||
|
"PerfLogs",
|
|||
|
"Program Files",
|
|||
|
"Program Files (x86)",
|
|||
|
"ProgramData",
|
|||
|
SYSTEM_VOLUME_INFORMATION,
|
|||
|
"Test",
|
|||
|
"Users",
|
|||
|
"Windows"
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
private void SetupFolders(string root)
|
|||
|
{
|
|||
|
_folders.ForEach(e =>
|
|||
|
{
|
|||
|
e = Path.Combine(root, e);
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
[Test]
|
|||
|
public void should_get_all_folder_for_none_root_path()
|
|||
|
{
|
|||
|
const string root = @"C:\Test\";
|
|||
|
SetupFolders(root);
|
|||
|
|
|||
|
Mocker.GetMock<IDiskProvider>()
|
|||
|
.Setup(s => s.GetDirectories(It.IsAny<String>()))
|
|||
|
.Returns(_folders.ToArray());
|
|||
|
|
|||
|
Subject.LookupSubDirectories(root).Should()
|
|||
|
.HaveCount(_folders.Count);
|
|||
|
}
|
|||
|
|
|||
|
[Test]
|
|||
|
public void should_not_contain_recycling_bin_for_root_of_drive()
|
|||
|
{
|
|||
|
const string root = @"C:\";
|
|||
|
SetupFolders(root);
|
|||
|
|
|||
|
Mocker.GetMock<IDiskProvider>()
|
|||
|
.Setup(s => s.GetDirectories(It.IsAny<String>()))
|
|||
|
.Returns(_folders.ToArray());
|
|||
|
|
|||
|
Subject.LookupSubDirectories(root).Should().NotContain(Path.Combine(root, RECYCLING_BIN));
|
|||
|
}
|
|||
|
|
|||
|
[Test]
|
|||
|
public void should_not_contain_system_volume_information_for_root_of_drive()
|
|||
|
{
|
|||
|
const string root = @"C:\";
|
|||
|
SetupFolders(root);
|
|||
|
|
|||
|
Mocker.GetMock<IDiskProvider>()
|
|||
|
.Setup(s => s.GetDirectories(It.IsAny<String>()))
|
|||
|
.Returns(_folders.ToArray());
|
|||
|
|
|||
|
Subject.LookupSubDirectories(root).Should().NotContain(Path.Combine(root, SYSTEM_VOLUME_INFORMATION));
|
|||
|
}
|
|||
|
|
|||
|
[Test]
|
|||
|
public void should_not_contain_recycling_bin_or_system_volume_information_for_root_of_drive()
|
|||
|
{
|
|||
|
const string root = @"C:\";
|
|||
|
SetupFolders(root);
|
|||
|
|
|||
|
Mocker.GetMock<IDiskProvider>()
|
|||
|
.Setup(s => s.GetDirectories(It.IsAny<String>()))
|
|||
|
.Returns(_folders.ToArray());
|
|||
|
|
|||
|
Subject.LookupSubDirectories(root).Should().HaveCount(_folders.Count - 2);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|