You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.8 KiB
59 lines
1.8 KiB
using System.IO.Abstractions;
|
|
using System.Reflection;
|
|
|
|
namespace Recyclarr.TestLibrary;
|
|
|
|
public static class MockFileSystemExtensions
|
|
{
|
|
public static void AddFileFromEmbeddedResource(
|
|
this MockFileSystem fs,
|
|
IFileInfo path,
|
|
Assembly resourceAssembly,
|
|
string embeddedResourcePath)
|
|
{
|
|
fs.AddFileFromEmbeddedResource(path.FullName, resourceAssembly, embeddedResourcePath);
|
|
}
|
|
|
|
public static void AddSameFileFromEmbeddedResource(
|
|
this MockFileSystem fs,
|
|
IFileInfo path,
|
|
Type typeInAssembly,
|
|
string resourceSubPath = "Data")
|
|
{
|
|
fs.AddFileFromEmbeddedResource(path, typeInAssembly, $"{resourceSubPath}.{path.Name}");
|
|
}
|
|
|
|
public static void AddSameFileFromEmbeddedResource(
|
|
this MockFileSystem fs,
|
|
string path,
|
|
Type typeInAssembly,
|
|
string resourceSubPath = "Data")
|
|
{
|
|
fs.AddFileFromEmbeddedResource(fs.FileInfo.New(path), typeInAssembly, resourceSubPath);
|
|
}
|
|
|
|
public static void AddFileFromEmbeddedResource(
|
|
this MockFileSystem fs,
|
|
IFileInfo path,
|
|
Type typeInAssembly,
|
|
string embeddedResourcePath)
|
|
{
|
|
fs.AddFileFromEmbeddedResource(path.FullName, typeInAssembly, embeddedResourcePath);
|
|
}
|
|
|
|
public static void AddFileFromEmbeddedResource(
|
|
this MockFileSystem fs,
|
|
string path,
|
|
Type typeInAssembly,
|
|
string embeddedResourcePath)
|
|
{
|
|
var resourcePath = $"{typeInAssembly.Namespace}.{embeddedResourcePath}";
|
|
fs.AddFileFromEmbeddedResource(path, typeInAssembly.Assembly, resourcePath);
|
|
}
|
|
|
|
public static IEnumerable<string> LeafDirectories(this MockFileSystem fs)
|
|
{
|
|
return fs.AllDirectories.Where(x => !fs.AllDirectories.Any(y => y.StartsWith(x) && y != x));
|
|
}
|
|
}
|