Skip to content
Closed
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
6 changes: 6 additions & 0 deletions System.IO.Abstractions/DirectoryBase.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Collections.Generic;
#if NET40
using System.Security.AccessControl;
#endif

namespace System.IO.Abstractions
{
Expand All @@ -13,8 +15,10 @@ public abstract class DirectoryBase
public abstract void Delete(string path);
public abstract void Delete(string path, bool recursive);
public abstract bool Exists(string path);
#if NET40
public abstract DirectorySecurity GetAccessControl(string path);
public abstract DirectorySecurity GetAccessControl(string path, AccessControlSections includeSections);
#endif
public abstract DateTime GetCreationTime(string path);
public abstract DateTime GetCreationTimeUtc(string path);
public abstract string GetCurrentDirectory();
Expand All @@ -36,7 +40,9 @@ public abstract class DirectoryBase
#endif
public abstract DirectoryInfoBase GetParent(string path);
public abstract void Move(string sourceDirName, string destDirName);
#if NET40
public abstract void SetAccessControl(string path, DirectorySecurity directorySecurity);
#endif
public abstract void SetCreationTime(string path, DateTime creationTime);
public abstract void SetCreationTimeUtc(string path, DateTime creationTimeUtc);
public abstract void SetCurrentDirectory(string path);
Expand Down
6 changes: 6 additions & 0 deletions System.IO.Abstractions/DirectoryInfoBase.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Collections.Generic;
#if NET40
using System.Security.AccessControl;
#endif

namespace System.IO.Abstractions
{
Expand All @@ -24,8 +26,10 @@ public abstract class DirectoryInfoBase : FileSystemInfoBase
public abstract IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos();
public abstract IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos(string searchPattern);
public abstract IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos(string searchPattern, SearchOption searchOption);
#if NET40
public abstract DirectorySecurity GetAccessControl();
public abstract DirectorySecurity GetAccessControl(AccessControlSections includeSections);
#endif
public abstract DirectoryInfoBase[] GetDirectories();
public abstract DirectoryInfoBase[] GetDirectories(string searchPattern);
public abstract DirectoryInfoBase[] GetDirectories(string searchPattern, SearchOption searchOption);
Expand All @@ -36,7 +40,9 @@ public abstract class DirectoryInfoBase : FileSystemInfoBase
public abstract FileSystemInfoBase[] GetFileSystemInfos(string searchPattern);
public abstract FileSystemInfoBase[] GetFileSystemInfos(string searchPattern, SearchOption searchOption);
public abstract void MoveTo(string destDirName);
#if NET40
public abstract void SetAccessControl(DirectorySecurity directorySecurity);
#endif
public abstract DirectoryInfoBase Parent { get; }
public abstract DirectoryInfoBase Root { get; }

Expand Down
6 changes: 6 additions & 0 deletions System.IO.Abstractions/DirectoryInfoWrapper.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using System.Collections.Generic;
using System.Linq;
#if NET40
using System.Security.AccessControl;
#endif

namespace System.IO.Abstractions
{
Expand Down Expand Up @@ -165,6 +167,7 @@ public override IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos(string
return instance.EnumerateFileSystemInfos(searchPattern, searchOption).WrapFileSystemInfos();
}

#if NET40
public override DirectorySecurity GetAccessControl()
{
return instance.GetAccessControl();
Expand All @@ -174,6 +177,7 @@ public override DirectorySecurity GetAccessControl(AccessControlSections include
{
return instance.GetAccessControl(includeSections);
}
#endif

public override DirectoryInfoBase[] GetDirectories()
{
Expand Down Expand Up @@ -225,10 +229,12 @@ public override void MoveTo(string destDirName)
instance.MoveTo(destDirName);
}

#if NET40
public override void SetAccessControl(DirectorySecurity directorySecurity)
{
instance.SetAccessControl(directorySecurity);
}
#endif

public override DirectoryInfoBase Parent
{
Expand Down
6 changes: 6 additions & 0 deletions System.IO.Abstractions/DirectoryWrapper.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Collections.Generic;
#if NET40
using System.Security.AccessControl;
#endif

namespace System.IO.Abstractions
{
Expand Down Expand Up @@ -32,6 +34,7 @@ public override bool Exists(string path)
return Directory.Exists(path);
}

#if NET40
public override DirectorySecurity GetAccessControl(string path)
{
return new DirectoryInfo(path).GetAccessControl();
Expand All @@ -41,6 +44,7 @@ public override DirectorySecurity GetAccessControl(string path, AccessControlSec
{
return new DirectoryInfo(path).GetAccessControl(includeSections);
}
#endif

public override DateTime GetCreationTime(string path)
{
Expand Down Expand Up @@ -139,10 +143,12 @@ public override void Move(string sourceDirName, string destDirName)
Directory.Move(sourceDirName, destDirName);
}

#if NET40
public override void SetAccessControl(string path, DirectorySecurity directorySecurity)
{
new DirectoryInfo(path).SetAccessControl(directorySecurity);
}
#endif

public override void SetCreationTime(string path, DateTime creationTime)
{
Expand Down
7 changes: 6 additions & 1 deletion System.IO.Abstractions/FileBase.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Collections.Generic;
#if NET40
using System.Security.AccessControl;
#endif
using System.Text;

namespace System.IO.Abstractions
Expand Down Expand Up @@ -57,9 +59,10 @@ public abstract class FileBase
/// </para>
/// </remarks>
public abstract bool Exists(string path);
#if NET40
public abstract FileSecurity GetAccessControl(string path);
public abstract FileSecurity GetAccessControl(string path, AccessControlSections includeSections);

#endif
/// <summary>
/// Gets the <see cref="FileAttributes"/> of the file on the path.
/// </summary>
Expand Down Expand Up @@ -229,7 +232,9 @@ public abstract class FileBase
public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName);
public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);
#endif
#if NET40
public abstract void SetAccessControl(string path, FileSecurity fileSecurity);
#endif
public abstract void SetAttributes(string path, FileAttributes fileAttributes);
public abstract void SetCreationTime(string path, DateTime creationTime);
public abstract void SetCreationTimeUtc(string path, DateTime creationTimeUtc);
Expand Down
10 changes: 7 additions & 3 deletions System.IO.Abstractions/FileInfoBase.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Security.AccessControl;
#if NET40
using System.Security.AccessControl;
#endif

namespace System.IO.Abstractions
{
Expand All @@ -13,9 +15,10 @@ public abstract class FileInfoBase : FileSystemInfoBase
#if NET40
public abstract void Decrypt();
public abstract void Encrypt();
#endif

public abstract FileSecurity GetAccessControl();
public abstract FileSecurity GetAccessControl(AccessControlSections includeSections);
#endif
public abstract void MoveTo(string destFileName);
public abstract Stream Open(FileMode mode);
public abstract Stream Open(FileMode mode, FileAccess access);
Expand All @@ -26,8 +29,9 @@ public abstract class FileInfoBase : FileSystemInfoBase
#if NET40
public abstract FileInfoBase Replace(string destinationFileName, string destinationBackupFileName);
public abstract FileInfoBase Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);
#endif

public abstract void SetAccessControl(FileSecurity fileSecurity);
#endif
public abstract DirectoryInfoBase Directory { get; }
public abstract string DirectoryName { get; }
public abstract bool IsReadOnly { get; set; }
Expand Down
9 changes: 7 additions & 2 deletions System.IO.Abstractions/FileInfoWrapper.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Security.AccessControl;
#if NET40
using System.Security.AccessControl;
#endif

namespace System.IO.Abstractions
{
Expand Down Expand Up @@ -126,6 +128,7 @@ public override void Encrypt()
}
#endif

#if NET40
public override FileSecurity GetAccessControl()
{
return instance.GetAccessControl();
Expand All @@ -135,7 +138,7 @@ public override FileSecurity GetAccessControl(AccessControlSections includeSecti
{
return instance.GetAccessControl(includeSections);
}

#endif
public override void MoveTo(string destFileName)
{
instance.MoveTo(destFileName);
Expand Down Expand Up @@ -183,10 +186,12 @@ public override FileInfoBase Replace(string destinationFileName, string destinat
}
#endif

#if NET40
public override void SetAccessControl(FileSecurity fileSecurity)
{
instance.SetAccessControl(fileSecurity);
}
#endif

public override DirectoryInfoBase Directory
{
Expand Down
6 changes: 6 additions & 0 deletions System.IO.Abstractions/FileWrapper.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Collections.Generic;
#if NET40
using System.Security.AccessControl;
#endif
using System.Text;
using System.IO;

Expand Down Expand Up @@ -94,6 +96,7 @@ public override bool Exists(string path)
return File.Exists(path);
}

#if NET40
public override FileSecurity GetAccessControl(string path)
{
return new FileInfo(path).GetAccessControl();
Expand All @@ -103,6 +106,7 @@ public override FileSecurity GetAccessControl(string path, AccessControlSections
{
return new FileInfo(path).GetAccessControl(includeSections);
}
#endif

/// <summary>
/// Gets the <see cref="FileAttributes"/> of the file on the path.
Expand Down Expand Up @@ -233,10 +237,12 @@ public override void Replace(string sourceFileName, string destinationFileName,
}
#endif

#if NET40
public override void SetAccessControl(string path, FileSecurity fileSecurity)
{
new FileInfo(path).SetAccessControl(fileSecurity);
}
#endif

public override void SetAttributes(string path, FileAttributes fileAttributes)
{
Expand Down
3 changes: 0 additions & 3 deletions System.IO.Abstractions/System.IO.Abstractions.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@
</PropertyGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.4' ">
<PackageReference Include="System.IO.FileSystem.AccessControl">
<Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="System.IO.FileSystem.DriveInfo">
<Version>4.3.0</Version>
</PackageReference>
Expand Down
2 changes: 1 addition & 1 deletion TestHelpers.Tests/TestHelpers.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net40</TargetFrameworks>
<Version>0.0.0.1</Version>
<Version>0.0.0.2</Version>
<Description>The unit tests for our pre-built mocks</Description>
<Company />
<Product>System.IO.Abstractions</Product>
Expand Down
28 changes: 25 additions & 3 deletions TestingHelpers/MockDirectory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
using System.Globalization;
using System.IO;
using System.Linq;
#if NET40
using System.Security.AccessControl;
#endif
using System.Text.RegularExpressions;

namespace System.IO.Abstractions.TestingHelpers
Expand Down Expand Up @@ -30,18 +32,31 @@ public MockDirectory(IMockFileDataAccessor mockFileDataAccessor, FileBase fileBa
this.fileBase = fileBase;
}


public override DirectoryInfoBase CreateDirectory(string path)
{
return CreateDirectoryInternal(path, new DirectorySecurity());
return CreateDirectoryInternal(path
#if NET40
,
new DirectorySecurity()
#endif
);
}

#if NET40
public override DirectoryInfoBase CreateDirectory(string path, DirectorySecurity directorySecurity)
public override DirectoryInfoBase CreateDirectory(string path
, DirectorySecurity directorySecurity
)
{
return CreateDirectoryInternal(path, directorySecurity);
}
#endif
private DirectoryInfoBase CreateDirectoryInternal(string path, DirectorySecurity directorySecurity)
private DirectoryInfoBase CreateDirectoryInternal(string path
#if NET40
,
DirectorySecurity directorySecurity
#endif
)
{
if (path == null)
{
Expand All @@ -61,10 +76,13 @@ private DirectoryInfoBase CreateDirectoryInternal(string path, DirectorySecurity
}

var created = new MockDirectoryInfo(mockFileDataAccessor, path);
#if NET40
created.SetAccessControl(directorySecurity);
#endif
return created;
}


public override void Delete(string path)
{
Delete(path, false);
Expand Down Expand Up @@ -103,6 +121,7 @@ public override bool Exists(string path)
}
}

#if NET40
public override DirectorySecurity GetAccessControl(string path)
{
mockFileDataAccessor.PathVerifier.IsLegalAbsoluteOrRelative(path, "path");
Expand All @@ -121,6 +140,7 @@ public override DirectorySecurity GetAccessControl(string path, AccessControlSec
{
return GetAccessControl(path);
}
#endif

public override DateTime GetCreationTime(string path)
{
Expand Down Expand Up @@ -376,6 +396,7 @@ public override void Move(string sourceDirName, string destDirName)
Delete(fullSourcePath);
}

#if NET40
public override void SetAccessControl(string path, DirectorySecurity directorySecurity)
{
mockFileDataAccessor.PathVerifier.IsLegalAbsoluteOrRelative(path, "path");
Expand All @@ -389,6 +410,7 @@ public override void SetAccessControl(string path, DirectorySecurity directorySe
var directoryData = (MockDirectoryData)mockFileDataAccessor.GetFile(path);
directoryData.AccessControl = directorySecurity;
}
#endif

public override void SetCreationTime(string path, DateTime creationTime)
{
Expand Down
Loading