System.IO.Abstractions icon indicating copy to clipboard operation
System.IO.Abstractions copied to clipboard

MockFileSystem.AddFilesFromEmbeddedNamespace() method throws ArgumentNullException

Open ristogod opened this issue 3 years ago • 2 comments

Given a project named "Test" with a "Files" folder within it, and within that folder there are 5 files included as embeddedResources, when I call the given code, it always throw an exception:

System.ArgumentException: 'Value cannot be null. (Parameter 'key')'

   at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at System.Collections.Generic.Dictionary`2.TryGetValue(TKey key, TValue& value)
   at System.IO.Abstractions.TestingHelpers.MockFileSystem.DirectoryExistsWithoutFixingPath(String path)
   at System.IO.Abstractions.TestingHelpers.MockFileSystem.AddFile(String path, MockFileData mockFile)
   at System.IO.Abstractions.TestingHelpers.MockFileSystem.AddFilesFromEmbeddedNamespace(String path, Assembly resourceAssembly, String embeddedRresourcePath)

This is how I'm calling the code

MockFileSystem fileSystem = new();
fileSystem.AddFilesFromEmbeddedNamespace(@"\\Test.Files", typeof(MyClass).Assembly, "Test.Files" );

ristogod avatar Dec 07 '22 16:12 ristogod

@ristogod : This is really strange, as there is a test, that seems to describe exactly your scenario with two files inserted as embedded resources:

        [Test]
        public void MockFileSystem_AddFilesFromEmbeddedResource_ShouldAddAllTheFiles()
        {
            var fileSystem = new MockFileSystem();

            fileSystem.AddFilesFromEmbeddedNamespace(XFS.Path(@"C:\"), Assembly.GetExecutingAssembly(), "System.IO.Abstractions.TestingHelpers.Tests.TestFiles");

            Assert.Contains(XFS.Path(@"C:\TestFile.txt"), fileSystem.AllFiles.ToList());
            Assert.Contains(XFS.Path(@"C:\SecondTestFile.txt"), fileSystem.AllFiles.ToList());
        }

image

I couldn't reproduce your problem from the description alone. Could you provide an example project to reproduce the behaviour, or check if you can adapt the test case so that it fails?

vbreuss avatar Dec 13 '22 14:12 vbreuss

I couldn't reproduce your problem from the description alone. Could you provide an example project to reproduce the behaviour, or check if you can adapt the test case so that it fails?

@ristogod Could you please help us reproduce this?

fgreinacher avatar Jan 09 '23 14:01 fgreinacher