[Plugin system] Move read-only filesystems to dependency injection.

This commit is contained in:
2023-10-05 16:55:03 +01:00
parent bc7e02b24c
commit 696f3ffa9a
13 changed files with 36 additions and 62 deletions

View File

@@ -282,13 +282,9 @@ public abstract class BlockMediaImageTest : BaseMediaImageTest
{
string pluginName = idPlugins[j];
if(!plugins.ReadOnlyFilesystems.TryGetValue(pluginName, out Type pluginType))
if(!plugins.ReadOnlyFilesystems.TryGetValue(pluginName, out IReadOnlyFilesystem fs))
continue;
Assert.IsNotNull(pluginType, Localization.Could_not_instantiate_filesystem_plugin);
var fs = Activator.CreateInstance(pluginType) as IReadOnlyFilesystem;
Assert.IsNotNull(fs, $"Could not instantiate filesystem {pluginName} in {testFile}");
ErrorNumber error = fs.Mount(image, partitions[i], null, null, null);

View File

@@ -202,15 +202,13 @@ public abstract class OpticalMediaImageTest : BaseMediaImageTest
for(var i = 0; i < track.FileSystems.Length; i++)
{
PluginRegister plugins = PluginRegister.Singleton;
bool found = plugins.Filesystems.TryGetValue(idPlugins[i], out Type pluginType);
bool found = plugins.Filesystems.TryGetValue(idPlugins[i], out IFilesystem fs);
// ReSharper disable once ConditionIsAlwaysTrueOrFalse
// It is not the case, it changes
if(!found)
continue;
var fs = Activator.CreateInstance(pluginType) as IFilesystem;
Assert.NotNull(fs,
string.Format(Localization.Could_not_instantiate_filesystem_for_0,
testFile));
@@ -248,7 +246,7 @@ public abstract class OpticalMediaImageTest : BaseMediaImageTest
Assert.AreEqual(track.FileSystems[i].VolumeSerial, fsMetadata.VolumeSerial,
string.Format(Localization.Volume_serial_0, testFile));
if(Activator.CreateInstance(pluginType) is not IReadOnlyFilesystem rofs)
if(fs is not IReadOnlyFilesystem rofs)
{
if(track.FileSystems[i].Contents != null ||
track.FileSystems[i].ContentsJson != null ||

View File

@@ -124,13 +124,9 @@ public abstract class FsExtractHashIssueTest
{
string pluginName = idPlugins[j];
if(!plugins.ReadOnlyFilesystems.TryGetValue(pluginName, out Type pluginType))
if(!plugins.ReadOnlyFilesystems.TryGetValue(pluginName, out IReadOnlyFilesystem fs))
continue;
Assert.IsNotNull(pluginType, Localization.Could_not_instantiate_filesystem_plugin);
var fs = Activator.CreateInstance(pluginType) as IReadOnlyFilesystem;
Assert.IsNotNull(fs, string.Format(Localization.Could_not_instantiate_filesystem_0, pluginName));
filesystemFound = true;

View File

@@ -83,13 +83,9 @@ public abstract class FsExtractIssueTest
{
foreach(string pluginName in idPlugins)
{
if(!plugins.ReadOnlyFilesystems.TryGetValue(pluginName, out pluginType))
if(!plugins.ReadOnlyFilesystems.TryGetValue(pluginName, out IReadOnlyFilesystem fs))
continue;
Assert.IsNotNull(pluginType, Localization.Could_not_instantiate_filesystem_plugin);
var fs = Activator.CreateInstance(pluginType) as IReadOnlyFilesystem;
Assert.IsNotNull(fs, string.Format(Localization.Could_not_instantiate_filesystem_0, pluginName));
filesystemFound = true;
@@ -104,12 +100,7 @@ public abstract class FsExtractIssueTest
}
else
{
plugins.ReadOnlyFilesystems.TryGetValue(idPlugins[0], out pluginType);
if(pluginType is null)
continue;
var fs = Activator.CreateInstance(pluginType) as IReadOnlyFilesystem;
plugins.ReadOnlyFilesystems.TryGetValue(idPlugins[0], out IReadOnlyFilesystem fs);
Assert.IsNotNull(fs, string.Format(Localization.Could_not_instantiate_filesystem_0, fs?.Name));