Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<ItemGroup>
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<PackageVersion Include="System.Threading.Channels" Version="8.0.0" />
<PackageVersion Include="TestableIO.System.IO.Abstractions" Version="20.0.28" />
<PackageVersion Include="TestableIO.System.IO.Abstractions" Version="20.0.34" />
<PackageVersion Include="System.IO.Compression" Version="4.3.0" />
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public IFileSystem FileSystem
[Obsolete("Use `IDirectoryInfoFactory.New(string)` instead")]
public IDirectoryInfo FromDirectoryName(string directoryName)
{
using IDisposable registration = Register(nameof(FromDirectoryName),
using IDisposable registration = RegisterMethod(nameof(FromDirectoryName),
directoryName);

return New(directoryName);
Expand All @@ -34,7 +34,7 @@ public IDirectoryInfo FromDirectoryName(string directoryName)
/// <inheritdoc cref="IDirectoryInfoFactory.New(string)" />
public IDirectoryInfo New(string path)
{
using IDisposable registration = Register(nameof(New),
using IDisposable registration = RegisterMethod(nameof(New),
path);

return DirectoryInfoMock.New(
Expand All @@ -47,7 +47,7 @@ public IDirectoryInfo New(string path)
[return: NotNullIfNotNull("directoryInfo")]
public IDirectoryInfo? Wrap(DirectoryInfo? directoryInfo)
{
using IDisposable registration = Register(nameof(Wrap),
using IDisposable registration = RegisterMethod(nameof(Wrap),
directoryInfo);

return DirectoryInfoMock.New(
Expand All @@ -59,6 +59,6 @@ public IDirectoryInfo New(string path)

#endregion

private IDisposable Register<T1>(string name, T1 parameter1)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.Register(name, ParameterDescription.FromParameter(parameter1));
private IDisposable RegisterMethod<T1>(string name, T1 parameter1)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.RegisterMethod(name, ParameterDescription.FromParameter(parameter1));
}
102 changes: 63 additions & 39 deletions Source/Testably.Abstractions.Testing/FileSystem/DirectoryInfoMock.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,42 @@ private DirectoryInfoMock(IStorageLocation location,

/// <inheritdoc cref="IFileSystemInfo.Exists" />
public override bool Exists
=> base.Exists && FileSystemType == FileSystemTypes.Directory;
{
get
{
using IDisposable registration = RegisterProperty(nameof(Exists), PropertyAccess.Get);

return base.Exists && FileSystemType == FileSystemTypes.Directory;
}
}

/// <inheritdoc cref="IDirectoryInfo.Parent" />
public IDirectoryInfo? Parent
=> New(Location.GetParent(), _fileSystem);
{
get
{
using IDisposable registration = RegisterProperty(nameof(Parent), PropertyAccess.Get);

return New(Location.GetParent(), _fileSystem);
}
}

/// <inheritdoc cref="IDirectoryInfo.Root" />
public IDirectoryInfo Root
=> New(_fileSystem.Storage.GetLocation(string.Empty.PrefixRoot(_fileSystem)),
_fileSystem);
{
get
{
using IDisposable registration = RegisterProperty(nameof(Root), PropertyAccess.Get);

return New(_fileSystem.Storage.GetLocation(string.Empty.PrefixRoot(_fileSystem)),
_fileSystem);
}
}

/// <inheritdoc cref="IDirectoryInfo.Create()" />
public void Create()
{
using IDisposable registration = Register(nameof(Create));
using IDisposable registration = RegisterMethod(nameof(Create));

FullName.EnsureValidFormat(_fileSystem);

Expand All @@ -61,7 +82,7 @@ public void Create()
/// <inheritdoc cref="IDirectoryInfo.CreateSubdirectory(string)" />
public IDirectoryInfo CreateSubdirectory(string path)
{
using IDisposable registration = Register(nameof(CreateSubdirectory),
using IDisposable registration = RegisterMethod(nameof(CreateSubdirectory),
path);

DirectoryInfoMock directory = New(
Expand All @@ -77,7 +98,7 @@ public IDirectoryInfo CreateSubdirectory(string path)
/// <inheritdoc cref="IFileSystemInfo.Delete()" />
public override void Delete()
{
using IDisposable registration = Register(nameof(Delete));
using IDisposable registration = RegisterMethod(nameof(Delete));

if (!_fileSystem.Storage.DeleteContainer(Location))
{
Expand All @@ -90,7 +111,7 @@ public override void Delete()
/// <inheritdoc cref="IDirectoryInfo.Delete(bool)" />
public void Delete(bool recursive)
{
using IDisposable registration = Register(nameof(Delete),
using IDisposable registration = RegisterMethod(nameof(Delete),
recursive);

if (!_fileSystem.Storage.DeleteContainer(
Expand All @@ -105,7 +126,7 @@ public void Delete(bool recursive)
/// <inheritdoc cref="IDirectoryInfo.EnumerateDirectories()" />
public IEnumerable<IDirectoryInfo> EnumerateDirectories()
{
using IDisposable registration = Register(nameof(EnumerateDirectories));
using IDisposable registration = RegisterMethod(nameof(EnumerateDirectories));

return EnumerateDirectories(
EnumerationOptionsHelper.DefaultSearchPattern,
Expand All @@ -116,7 +137,7 @@ public IEnumerable<IDirectoryInfo> EnumerateDirectories()
public IEnumerable<IDirectoryInfo>
EnumerateDirectories(string searchPattern)
{
using IDisposable registration = Register(nameof(EnumerateDirectories),
using IDisposable registration = RegisterMethod(nameof(EnumerateDirectories),
searchPattern);

return EnumerateDirectories(searchPattern, SearchOption.TopDirectoryOnly);
Expand All @@ -126,7 +147,7 @@ public IEnumerable<IDirectoryInfo>
public IEnumerable<IDirectoryInfo> EnumerateDirectories(
string searchPattern, SearchOption searchOption)
{
using IDisposable registration = Register(nameof(EnumerateDirectories),
using IDisposable registration = RegisterMethod(nameof(EnumerateDirectories),
searchPattern, searchOption);

return EnumerateInternal(FileSystemTypes.Directory,
Expand All @@ -142,7 +163,7 @@ public IEnumerable<IDirectoryInfo> EnumerateDirectories(
string searchPattern,
EnumerationOptions enumerationOptions)
{
using IDisposable registration = Register(nameof(EnumerateDirectories),
using IDisposable registration = RegisterMethod(nameof(EnumerateDirectories),
searchPattern, enumerationOptions);

return EnumerateInternal(FileSystemTypes.Directory,
Expand All @@ -156,7 +177,7 @@ public IEnumerable<IDirectoryInfo> EnumerateDirectories(
/// <inheritdoc cref="IDirectoryInfo.EnumerateFiles()" />
public IEnumerable<IFileInfo> EnumerateFiles()
{
using IDisposable registration = Register(nameof(EnumerateFiles));
using IDisposable registration = RegisterMethod(nameof(EnumerateFiles));

return EnumerateFiles(
EnumerationOptionsHelper.DefaultSearchPattern,
Expand All @@ -166,7 +187,7 @@ public IEnumerable<IFileInfo> EnumerateFiles()
/// <inheritdoc cref="IDirectoryInfo.EnumerateFiles(string)" />
public IEnumerable<IFileInfo> EnumerateFiles(string searchPattern)
{
using IDisposable registration = Register(nameof(EnumerateFiles),
using IDisposable registration = RegisterMethod(nameof(EnumerateFiles),
searchPattern);

return EnumerateFiles(searchPattern, SearchOption.TopDirectoryOnly);
Expand All @@ -176,7 +197,7 @@ public IEnumerable<IFileInfo> EnumerateFiles(string searchPattern)
public IEnumerable<IFileInfo> EnumerateFiles(
string searchPattern, SearchOption searchOption)
{
using IDisposable registration = Register(nameof(EnumerateFiles),
using IDisposable registration = RegisterMethod(nameof(EnumerateFiles),
searchPattern, searchOption);

return EnumerateInternal(FileSystemTypes.File,
Expand All @@ -191,7 +212,7 @@ public IEnumerable<IFileInfo> EnumerateFiles(
public IEnumerable<IFileInfo> EnumerateFiles(
string searchPattern, EnumerationOptions enumerationOptions)
{
using IDisposable registration = Register(nameof(EnumerateFiles),
using IDisposable registration = RegisterMethod(nameof(EnumerateFiles),
searchPattern, enumerationOptions);

return EnumerateInternal(FileSystemTypes.File,
Expand All @@ -205,7 +226,7 @@ public IEnumerable<IFileInfo> EnumerateFiles(
/// <inheritdoc cref="IDirectoryInfo.EnumerateFileSystemInfos()" />
public IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos()
{
using IDisposable registration = Register(nameof(EnumerateFileSystemInfos));
using IDisposable registration = RegisterMethod(nameof(EnumerateFileSystemInfos));

return EnumerateFileSystemInfos(
EnumerationOptionsHelper.DefaultSearchPattern,
Expand All @@ -216,7 +237,7 @@ public IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos()
public IEnumerable<IFileSystemInfo>
EnumerateFileSystemInfos(string searchPattern)
{
using IDisposable registration = Register(nameof(EnumerateFileSystemInfos),
using IDisposable registration = RegisterMethod(nameof(EnumerateFileSystemInfos),
searchPattern);

return EnumerateFileSystemInfos(searchPattern, SearchOption.TopDirectoryOnly);
Expand All @@ -226,7 +247,7 @@ public IEnumerable<IFileSystemInfo>
public IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(
string searchPattern, SearchOption searchOption)
{
using IDisposable registration = Register(nameof(EnumerateFileSystemInfos),
using IDisposable registration = RegisterMethod(nameof(EnumerateFileSystemInfos),
searchPattern, searchOption);

return EnumerateInternal(FileSystemTypes.DirectoryOrFile,
Expand All @@ -242,7 +263,7 @@ public IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(
string searchPattern,
EnumerationOptions enumerationOptions)
{
using IDisposable registration = Register(nameof(EnumerateFileSystemInfos),
using IDisposable registration = RegisterMethod(nameof(EnumerateFileSystemInfos),
searchPattern, enumerationOptions);

return EnumerateInternal(FileSystemTypes.DirectoryOrFile,
Expand All @@ -256,15 +277,15 @@ public IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(
/// <inheritdoc cref="IDirectoryInfo.GetDirectories()" />
public IDirectoryInfo[] GetDirectories()
{
using IDisposable registration = Register(nameof(GetDirectories));
using IDisposable registration = RegisterMethod(nameof(GetDirectories));

return EnumerateDirectories().ToArray();
}

/// <inheritdoc cref="IDirectoryInfo.GetDirectories(string)" />
public IDirectoryInfo[] GetDirectories(string searchPattern)
{
using IDisposable registration = Register(nameof(GetDirectories),
using IDisposable registration = RegisterMethod(nameof(GetDirectories),
searchPattern);

return EnumerateDirectories(searchPattern).ToArray();
Expand All @@ -274,7 +295,7 @@ public IDirectoryInfo[] GetDirectories(string searchPattern)
public IDirectoryInfo[] GetDirectories(
string searchPattern, SearchOption searchOption)
{
using IDisposable registration = Register(nameof(GetDirectories),
using IDisposable registration = RegisterMethod(nameof(GetDirectories),
searchPattern, searchOption);

return EnumerateDirectories(searchPattern, searchOption).ToArray();
Expand All @@ -286,7 +307,7 @@ public IDirectoryInfo[] GetDirectories(
string searchPattern,
EnumerationOptions enumerationOptions)
{
using IDisposable registration = Register(nameof(GetDirectories),
using IDisposable registration = RegisterMethod(nameof(GetDirectories),
searchPattern, enumerationOptions);

return EnumerateDirectories(searchPattern, enumerationOptions).ToArray();
Expand All @@ -296,15 +317,15 @@ public IDirectoryInfo[] GetDirectories(
/// <inheritdoc cref="IDirectoryInfo.GetFiles()" />
public IFileInfo[] GetFiles()
{
using IDisposable registration = Register(nameof(GetFiles));
using IDisposable registration = RegisterMethod(nameof(GetFiles));

return EnumerateFiles().ToArray();
}

/// <inheritdoc cref="IDirectoryInfo.GetFiles(string)" />
public IFileInfo[] GetFiles(string searchPattern)
{
using IDisposable registration = Register(nameof(GetFiles),
using IDisposable registration = RegisterMethod(nameof(GetFiles),
searchPattern);

return EnumerateFiles(searchPattern).ToArray();
Expand All @@ -314,7 +335,7 @@ public IFileInfo[] GetFiles(string searchPattern)
public IFileInfo[] GetFiles(string searchPattern,
SearchOption searchOption)
{
using IDisposable registration = Register(nameof(GetFiles),
using IDisposable registration = RegisterMethod(nameof(GetFiles),
searchPattern, searchOption);

return EnumerateFiles(searchPattern, searchOption).ToArray();
Expand All @@ -325,7 +346,7 @@ public IFileInfo[] GetFiles(string searchPattern,
public IFileInfo[] GetFiles(string searchPattern,
EnumerationOptions enumerationOptions)
{
using IDisposable registration = Register(nameof(GetFiles),
using IDisposable registration = RegisterMethod(nameof(GetFiles),
searchPattern, enumerationOptions);

return EnumerateFiles(searchPattern, enumerationOptions).ToArray();
Expand All @@ -335,15 +356,15 @@ public IFileInfo[] GetFiles(string searchPattern,
/// <inheritdoc cref="IDirectoryInfo.GetFileSystemInfos()" />
public IFileSystemInfo[] GetFileSystemInfos()
{
using IDisposable registration = Register(nameof(GetFileSystemInfos));
using IDisposable registration = RegisterMethod(nameof(GetFileSystemInfos));

return EnumerateFileSystemInfos().ToArray();
}

/// <inheritdoc cref="IDirectoryInfo.GetFileSystemInfos(string)" />
public IFileSystemInfo[] GetFileSystemInfos(string searchPattern)
{
using IDisposable registration = Register(nameof(GetFileSystemInfos),
using IDisposable registration = RegisterMethod(nameof(GetFileSystemInfos),
searchPattern);

return EnumerateFileSystemInfos(searchPattern).ToArray();
Expand All @@ -353,7 +374,7 @@ public IFileSystemInfo[] GetFileSystemInfos(string searchPattern)
public IFileSystemInfo[] GetFileSystemInfos(
string searchPattern, SearchOption searchOption)
{
using IDisposable registration = Register(nameof(GetFileSystemInfos),
using IDisposable registration = RegisterMethod(nameof(GetFileSystemInfos),
searchPattern, searchOption);

return EnumerateFileSystemInfos(searchPattern, searchOption).ToArray();
Expand All @@ -365,7 +386,7 @@ public IFileSystemInfo[] GetFileSystemInfos(
string searchPattern,
EnumerationOptions enumerationOptions)
{
using IDisposable registration = Register(nameof(GetFileSystemInfos),
using IDisposable registration = RegisterMethod(nameof(GetFileSystemInfos),
searchPattern, enumerationOptions);

return EnumerateFileSystemInfos(searchPattern, enumerationOptions).ToArray();
Expand All @@ -375,7 +396,7 @@ public IFileSystemInfo[] GetFileSystemInfos(
/// <inheritdoc cref="IDirectoryInfo.MoveTo(string)" />
public void MoveTo(string destDirName)
{
using IDisposable registration = Register(nameof(MoveTo),
using IDisposable registration = RegisterMethod(nameof(MoveTo),
destDirName);

Location = _fileSystem.Storage.Move(
Expand Down Expand Up @@ -417,15 +438,18 @@ private IEnumerable<IStorageLocation> EnumerateInternal(
enumerationOptions);
}

protected override IDisposable Register(string name)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.Register(Location.FullPath, name);
protected override IDisposable RegisterProperty(string name, PropertyAccess access)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.RegisterProperty(Location.FullPath, name, access);

protected override IDisposable RegisterMethod(string name)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.RegisterMethod(Location.FullPath, name);

protected override IDisposable Register<T1>(string name, T1 parameter1)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.Register(Location.FullPath, name,
protected override IDisposable RegisterMethod<T1>(string name, T1 parameter1)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.RegisterMethod(Location.FullPath, name,
ParameterDescription.FromParameter(parameter1));

private IDisposable Register<T1, T2>(string name, T1 parameter1, T2 parameter2)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.Register(Location.FullPath, name,
private IDisposable RegisterMethod<T1, T2>(string name, T1 parameter1, T2 parameter2)
=> _fileSystem.StatisticsRegistration.DirectoryInfo.RegisterMethod(Location.FullPath, name,
ParameterDescription.FromParameter(parameter1),
ParameterDescription.FromParameter(parameter2));
}
Loading