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.
recyclarr/tests/Recyclarr.TestLibrary/MockFileSystemExtensions.cs

55 lines
1.6 KiB

using System.IO.Abstractions;
namespace Recyclarr.TestLibrary;
public static class MockFileSystemExtensions
{
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
)
{
embeddedResourcePath = embeddedResourcePath.Replace("/", ".", StringComparison.Ordinal);
var resourcePath = $"{typeInAssembly.Namespace}.{embeddedResourcePath}";
fs.AddFileFromEmbeddedResource(path, typeInAssembly.Assembly, resourcePath);
}
public static void AddSameFileFromEmbeddedResource(
this MockFileSystem fs,
IFileInfo path,
Type typeInAssembly,
string resourceSubPath = "Data"
)
{
fs.AddFileFromEmbeddedResource(path, typeInAssembly, $"{resourceSubPath}.{path.Name}");
}
public static void AddFilesFromEmbeddedNamespace(
this MockFileSystem fs,
IDirectoryInfo path,
Type typeInAssembly,
string embeddedResourcePath
)
{
var replace = embeddedResourcePath.Replace("/", ".", StringComparison.Ordinal);
embeddedResourcePath = $"{typeInAssembly.Namespace}.{replace}";
fs.AddFilesFromEmbeddedNamespace(
path.FullName,
typeInAssembly.Assembly,
embeddedResourcePath
);
}
}