From f5db2e2c11f03449aea17097206bab4cbbf8d19d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 14:21:40 +0100 Subject: [PATCH 01/15] refactor: consolidate project settings in `Directory.Build.props` (#1211) Move common settings to the `Directory.Build.props` file. --- Directory.Build.props | 2 +- System.IO.Abstractions.sln | 6 +++ src/Directory.Build.props | 38 +++++++++++++++---- ...stem.IO.Abstractions.TestingHelpers.csproj | 18 +++------ ...eIO.System.IO.Abstractions.Wrappers.csproj | 30 +++++++-------- 5 files changed, 56 insertions(+), 38 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 99b60410d..fc1080101 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,7 +1,7 @@ System.IO.Abstractions - Copyright © Tatham Oddie & friends 2010-2024 + Copyright © Tatham Oddie & friends 2010-$([System.DateTime]::Now.ToString('yyyy')) Tatham Oddie & friends True $(MSBuildThisFileDirectory)StrongName.snk diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln index 3ec9ec636..e94f26780 100644 --- a/System.IO.Abstractions.sln +++ b/System.IO.Abstractions.sln @@ -40,6 +40,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{ .github\workflows\pr.yml = .github\workflows\pr.yml EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B66A0B3F-6A00-482E-99E2-27D8DECB075E}" + ProjectSection(SolutionItems) = preProject + src\Directory.Build.props = src\Directory.Build.props + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -91,6 +96,7 @@ Global {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} {D905E09D-6DC3-4F7C-8E83-82FADAE2C9E5} = {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} {1B8388D2-58A7-47B8-89EC-C5A94A0FEED5} = {C078E0B6-9747-475F-A999-B9E775DF6643} + {B66A0B3F-6A00-482E-99E2-27D8DECB075E} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8885C59C-F6A0-4C2F-A3BC-B720E9BD161F} diff --git a/src/Directory.Build.props b/src/Directory.Build.props index d4025be1c..f6ad89407 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,10 +1,32 @@ - - - true - true - snupkg - true - true - + + + + + net472;netstandard2.0;netstandard2.1;net6.0;net8.0;net9.0 + + + + true + true + snupkg + true + true + + + + icon_256x256.png + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj b/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj index ffd7791a7..439bdd6f8 100644 --- a/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj +++ b/src/TestableIO.System.IO.Abstractions.TestingHelpers/TestableIO.System.IO.Abstractions.TestingHelpers.csproj @@ -1,22 +1,14 @@  + TestableIO.System.IO.Abstractions.TestingHelpers System.IO.Abstractions.TestingHelpers A set of pre-built mocks to help when testing file system interactions. - net9.0;net8.0;net6.0;netstandard2.1;netstandard2.0;net472 - icon_256x256.png + - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + diff --git a/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj b/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj index fabcbc8d6..6a4cb72e5 100644 --- a/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj +++ b/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj @@ -1,18 +1,16 @@ - - TestableIO.System.IO.Abstractions.Wrappers - System.IO.Abstractions - A set of abstractions to help make file system interactions testable. - net9.0;net8.0;net6.0;netstandard2.1;netstandard2.0;net472 - icon_256x256.png - - - - - - - - - - + + + TestableIO.System.IO.Abstractions.Wrappers + System.IO.Abstractions + A set of abstractions to help make file system interactions testable. + + + + + + + + + \ No newline at end of file From 2c7f001369ac43fc06e9b86dfcfe5a83f3e2f935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 15:12:10 +0100 Subject: [PATCH 02/15] feat: add API tests (#1212) Add API tests, that ensure that no accidental changes on the public API are made. All changes have to be accepted by executing the explict `AcceptApiChanges` unit test and are included in the repo/pull request. --- Directory.Packages.props | 2 + System.IO.Abstractions.sln | 14 +- src/Directory.Build.props | 2 +- .../ApiAcceptance.cs | 32 + .../ApiApprovalTests.cs | 45 + ....IO.Abstractions.TestingHelpers_net472.txt | 504 ++++++++++ ....IO.Abstractions.TestingHelpers_net6.0.txt | 560 +++++++++++ ....IO.Abstractions.TestingHelpers_net8.0.txt | 585 ++++++++++++ ....IO.Abstractions.TestingHelpers_net9.0.txt | 599 ++++++++++++ ...ractions.TestingHelpers_netstandard2.0.txt | 504 ++++++++++ ...ractions.TestingHelpers_netstandard2.1.txt | 533 +++++++++++ ...System.IO.Abstractions.Wrappers_net472.txt | 658 +++++++++++++ ...System.IO.Abstractions.Wrappers_net6.0.txt | 812 ++++++++++++++++ ...System.IO.Abstractions.Wrappers_net8.0.txt | 867 +++++++++++++++++ ...System.IO.Abstractions.Wrappers_net9.0.txt | 899 ++++++++++++++++++ ...O.Abstractions.Wrappers_netstandard2.0.txt | 658 +++++++++++++ ...O.Abstractions.Wrappers_netstandard2.1.txt | 740 ++++++++++++++ .../Helper.cs | 72 ++ ...IO.System.IO.Abstractions.Api.Tests.csproj | 25 + .../Usings.cs | 3 + 20 files changed, 8110 insertions(+), 4 deletions(-) create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiAcceptance.cs create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiApprovalTests.cs create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Helper.cs create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj create mode 100644 tests/TestableIO.System.IO.Abstractions.Api.Tests/Usings.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index 9be81abc0..9b464162a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -18,6 +18,8 @@ + + diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln index e94f26780..fadf2577a 100644 --- a/System.IO.Abstractions.sln +++ b/System.IO.Abstractions.sln @@ -8,7 +8,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.IO.Abstractions.Test EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestableIO.System.IO.Abstractions.Benchmarks", "benchmarks\TestableIO.System.IO.Abstractions.Benchmarks\TestableIO.System.IO.Abstractions.Benchmarks.csproj", "{015B3812-E01D-479C-895D-BDDF16E798CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{BCEC61BD-4941-41EC-975A-ACEFC7AC1780}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{BCEC61BD-4941-41EC-975A-ACEFC7AC1780}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestableIO.System.IO.Abstractions.Wrappers.Tests", "tests\TestableIO.System.IO.Abstractions.Wrappers.Tests\TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj", "{7105D748-1253-409F-A624-4879412EF3C2}" EndProject @@ -16,7 +16,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestableIO.System.IO.Abstra EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestableIO.System.IO.Abstractions.Wrappers", "src\TestableIO.System.IO.Abstractions.Wrappers\TestableIO.System.IO.Abstractions.Wrappers.csproj", "{3698BB93-B031-4140-BAEF-D3480A94F531}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{C078E0B6-9747-475F-A999-B9E775DF6643}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Meta", "Meta", "{C078E0B6-9747-475F-A999-B9E775DF6643}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestableIO.System.IO.Abstractions.TestingHelpers", "src\TestableIO.System.IO.Abstractions.TestingHelpers\TestableIO.System.IO.Abstractions.TestingHelpers.csproj", "{DE22AA55-408F-4041-B85D-26D6D6A158A4}" EndProject @@ -44,6 +44,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B66A0B3F-6A0 ProjectSection(SolutionItems) = preProject src\Directory.Build.props = src\Directory.Build.props EndProjectSection +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks", "{10F39E91-97F2-4812-9D2F-79BE18EC6B08}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestableIO.System.IO.Abstractions.Api.Tests", "tests\TestableIO.System.IO.Abstractions.Api.Tests\TestableIO.System.IO.Abstractions.Api.Tests.csproj", "{7DE6AD74-E2B3-498E-90C5-DDF3188F333A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -83,6 +86,10 @@ Global {919888D2-E37D-40E7-8AD0-600F9429316D}.Debug|Any CPU.Build.0 = Debug|Any CPU {919888D2-E37D-40E7-8AD0-600F9429316D}.Release|Any CPU.ActiveCfg = Release|Any CPU {919888D2-E37D-40E7-8AD0-600F9429316D}.Release|Any CPU.Build.0 = Release|Any CPU + {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -90,13 +97,14 @@ Global GlobalSection(NestedProjects) = preSolution {B7DA254D-496F-4C50-969C-CF925758E2ED} = {C078E0B6-9747-475F-A999-B9E775DF6643} {0103D32A-6124-4A1A-AD6C-30EB957F09B0} = {C078E0B6-9747-475F-A999-B9E775DF6643} - {015B3812-E01D-479C-895D-BDDF16E798CA} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} {7105D748-1253-409F-A624-4879412EF3C2} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} {919888D2-E37D-40E7-8AD0-600F9429316D} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} {D905E09D-6DC3-4F7C-8E83-82FADAE2C9E5} = {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} {1B8388D2-58A7-47B8-89EC-C5A94A0FEED5} = {C078E0B6-9747-475F-A999-B9E775DF6643} {B66A0B3F-6A00-482E-99E2-27D8DECB075E} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} + {015B3812-E01D-479C-895D-BDDF16E798CA} = {10F39E91-97F2-4812-9D2F-79BE18EC6B08} + {7DE6AD74-E2B3-498E-90C5-DDF3188F333A} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8885C59C-F6A0-4C2F-A3BC-B720E9BD161F} diff --git a/src/Directory.Build.props b/src/Directory.Build.props index f6ad89407..edec72d8b 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -8,7 +8,7 @@ - true + https://github.com/TestableIO/System.IO.Abstractions.git true snupkg true diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiAcceptance.cs b/tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiAcceptance.cs new file mode 100644 index 000000000..c19474d80 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiAcceptance.cs @@ -0,0 +1,32 @@ +using aweXpect; + +namespace TestableIO.System.IO.Abstractions.Api.Tests; + +public sealed class ApiAcceptance +{ + /// + /// Execute this test to update the expected public API to the current API surface. + /// + [TestCase] + [Explicit] + public async Task AcceptApiChanges() + { + string[] assemblyNames = + [ + "TestableIO.System.IO.Abstractions.Wrappers", + "TestableIO.System.IO.Abstractions.TestingHelpers", + ]; + + foreach (string assemblyName in assemblyNames) + { + foreach (string framework in Helper.GetTargetFrameworks()) + { + string publicApi = Helper.CreatePublicApi(framework, assemblyName) + .Replace("\n", Environment.NewLine); + Helper.SetExpectedApi(framework, assemblyName, publicApi); + } + } + + await Expect.That(assemblyNames).IsNotEmpty(); + } +} diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiApprovalTests.cs b/tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiApprovalTests.cs new file mode 100644 index 000000000..26de6cc2e --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/ApiApprovalTests.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using aweXpect; + +namespace TestableIO.System.IO.Abstractions.Api.Tests; + +/// +/// Whenever a test fails, this means that the public API surface changed. +/// If the change was intentional, execute the test to take over the +/// current public API surface. The changes will become part of the pull request and will be reviewed accordingly. +/// +public sealed class ApiApprovalTests +{ + [TestCaseSource(nameof(TargetFrameworksTheoryData))] + public async Task VerifyPublicApiForWrappers(string framework) + { + const string assemblyName = "TestableIO.System.IO.Abstractions.Wrappers"; + + var publicApi = Helper.CreatePublicApi(framework, assemblyName); + var expectedApi = Helper.GetExpectedApi(framework, assemblyName); + + await Expect.That(publicApi).IsEqualTo(expectedApi); + } + + [TestCaseSource(nameof(TargetFrameworksTheoryData))] + public async Task VerifyPublicApiForTestingHelpers(string framework) + { + const string assemblyName = "TestableIO.System.IO.Abstractions.TestingHelpers"; + + var publicApi = Helper.CreatePublicApi(framework, assemblyName); + var expectedApi = Helper.GetExpectedApi(framework, assemblyName); + + await Expect.That(publicApi).IsEqualTo(expectedApi); + } + + private static IEnumerable TargetFrameworksTheoryData() + { + List theoryData = new(); + foreach (var targetFramework in Helper.GetTargetFrameworks()) + { + theoryData.Add(targetFramework); + } + + return theoryData; + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt new file mode 100644 index 000000000..60ab1b81d --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt @@ -0,0 +1,504 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName=".NET Framework 4.7.2")] +namespace System.IO.Abstractions.TestingHelpers +{ + public interface IMockFileDataAccessor : System.IO.Abstractions.IFileSystem + { + System.Collections.Generic.IEnumerable AllDirectories { get; } + System.Collections.Generic.IEnumerable AllDrives { get; } + System.Collections.Generic.IEnumerable AllFiles { get; } + System.Collections.Generic.IEnumerable AllPaths { get; } + System.IO.Abstractions.IFileSystem FileSystem { get; } + System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + void AddDirectory(string path); + void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive); + void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile); + void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments); + bool FileExists(string path); + System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name); + System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path); + void MoveDirectory(string sourcePath, string destPath); + void RemoveFile(string path); + } + [System.Serializable] + public class MockDirectory : System.IO.Abstractions.DirectoryBase + { + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string currentDirectory) { } + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, System.IO.Abstractions.FileBase fileBase, string currentDirectory) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public class MockDirectoryData : System.IO.Abstractions.TestingHelpers.MockFileData + { + public MockDirectoryData() { } + public new System.Security.AccessControl.DirectorySecurity AccessControl { get; set; } + } + [System.Serializable] + public class MockDirectoryInfo : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockDirectoryInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string directoryPath) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockDirectoryInfoFactory : System.IO.Abstractions.IDirectoryInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDirectoryInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDirectoryInfo New(string path) { } + public System.IO.Abstractions.IDirectoryInfo Wrap(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class MockDriveData + { + public MockDriveData() { } + public MockDriveData(System.IO.Abstractions.TestingHelpers.MockDriveData template) { } + public long AvailableFreeSpace { get; set; } + public string DriveFormat { get; set; } + public System.IO.DriveType DriveType { get; set; } + public bool IsReady { get; set; } + public long TotalFreeSpace { get; set; } + public long TotalSize { get; set; } + public string VolumeLabel { get; set; } + } + [System.Serializable] + public class MockDriveInfo : System.IO.Abstractions.DriveInfoBase + { + public MockDriveInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string name) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + [System.Serializable] + public class MockDriveInfoFactory : System.IO.Abstractions.IDriveInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDriveInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDriveInfo[] GetDrives() { } + public System.IO.Abstractions.IDriveInfo New(string driveName) { } + public System.IO.Abstractions.IDriveInfo Wrap(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class MockFile : System.IO.Abstractions.FileBase + { + public MockFile(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + } + [System.Serializable] + public class MockFileData + { + public static readonly System.DateTimeOffset DefaultDateTimeOffset; + public static readonly System.Text.Encoding DefaultEncoding; + public MockFileData(byte[] contents) { } + public MockFileData(System.IO.Abstractions.TestingHelpers.MockFileData template) { } + public MockFileData(string textContents) { } + public MockFileData(string textContents, System.Text.Encoding encoding) { } + public System.Security.AccessControl.FileSecurity AccessControl { get; set; } + public System.IO.FileShare AllowedFileShare { get; set; } + public System.IO.FileAttributes Attributes { get; set; } + public byte[] Contents { get; set; } + public System.DateTimeOffset CreationTime { get; set; } + public System.IO.Abstractions.IFileVersionInfo FileVersionInfo { get; set; } + public bool IsDirectory { get; } + public System.DateTimeOffset LastAccessTime { get; set; } + public System.DateTimeOffset LastWriteTime { get; set; } + public string TextContents { get; set; } + public static System.IO.Abstractions.TestingHelpers.MockFileData op_Implicit(string s) { } + } + [System.Serializable] + public class MockFileInfo : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem, string path) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockFileInfoFactory : System.IO.Abstractions.IFileInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileInfo New(string fileName) { } + public System.IO.Abstractions.IFileInfo Wrap(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class MockFileStream : System.IO.Abstractions.FileSystemStream, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileStream(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string path, System.IO.FileMode mode, System.IO.FileAccess access = 3, System.IO.FileOptions options = 0) { } + public override bool CanRead { get; } + public override bool CanWrite { get; } + public static System.IO.Abstractions.FileSystemStream Null { get; } + protected override void Dispose(bool disposing) { } + public override void EndWrite(System.IAsyncResult asyncResult) { } + public override void Flush() { } + public override void Flush(bool flushToDisk) { } + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override int Read(byte[] buffer, int offset, int count) { } + public void SetAccessControl(object value) { } + public override void SetLength(long value) { } + public override void Write(byte[] buffer, int offset, int count) { } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { } + public override void WriteByte(byte value) { } + } + [System.Serializable] + public class MockFileStreamFactory : System.IO.Abstractions.IFileStreamFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileStreamFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) { } + public System.IO.Abstractions.FileSystemStream Wrap(System.IO.FileStream fileStream) { } + } + [System.Serializable] + public class MockFileSystem : System.IO.Abstractions.FileSystemBase, System.IO.Abstractions.IFileSystem, System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor + { + public MockFileSystem() { } + public MockFileSystem(System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, string currentDirectory = "") { } + public System.Collections.Generic.IEnumerable AllDirectories { get; } + public System.Collections.Generic.IEnumerable AllDrives { get; } + public System.Collections.Generic.IEnumerable AllFiles { get; } + public System.Collections.Generic.IEnumerable AllNodes { get; } + public System.Collections.Generic.IEnumerable AllPaths { get; } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + public System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + public System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + public void AddDirectory(System.IO.Abstractions.IDirectoryInfo path) { } + public void AddDirectory(string path) { } + public void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive) { } + public void AddEmptyFile(System.IO.Abstractions.IFileInfo path) { } + public void AddEmptyFile(string path) { } + public void AddFile(System.IO.Abstractions.IFileInfo path, System.IO.Abstractions.TestingHelpers.MockFileData data) { } + public void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile) { } + public void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments) { } + public bool FileExists(string path) { } + public System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(System.IO.Abstractions.IFileInfo path) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path) { } + public System.IO.Abstractions.TestingHelpers.MockFileSystem MockTime(System.Func dateTimeProvider) { } + public void MoveDirectory(string sourcePath, string destPath) { } + public void RemoveFile(string path) { } + } + public class MockFileSystemOptions + { + public MockFileSystemOptions() { } + public bool CreateDefaultTempDir { get; init; } + public string CurrentDirectory { get; init; } + } + [System.Serializable] + public class MockFileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public MockFileSystemWatcherFactory(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class MockFileVersionInfo : System.IO.Abstractions.FileVersionInfoBase + { + public MockFileVersionInfo( + string fileName, + string fileVersion = null, + string productVersion = null, + string fileDescription = null, + string productName = null, + string companyName = null, + string comments = null, + string internalName = null, + bool isDebug = false, + bool isPatched = false, + bool isPrivateBuild = false, + bool isPreRelease = false, + bool isSpecialBuild = false, + string language = null, + string legalCopyright = null, + string legalTrademarks = null, + string originalFilename = null, + string privateBuild = null, + string specialBuild = null) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class MockFileVersionInfoFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileVersionInfoFactory + { + public MockFileVersionInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileVersionInfo GetVersionInfo(string fileName) { } + } + [System.Serializable] + public class MockPath : System.IO.Abstractions.PathWrapper + { + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string defaultTempDirectory) { } + public override string GetFullPath(string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + } + public static class MockUnixSupport + { + public static bool IsUnixPlatform() { } + public static bool IsWindowsPlatform() { } + public static string Path(string path) { } + } + [System.Serializable] + public class PathVerifier + { + public PathVerifier(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public void CheckInvalidPathChars(string path, bool checkAdditional = false) { } + public bool HasIllegalCharacters(string path, bool checkAdditional) { } + public void IsLegalAbsoluteOrRelative(string path, string paramName) { } + public string NormalizeDriveName(string name) { } + public bool TryNormalizeDriveName(string name, out string result) { } + } + [System.Serializable] + public class StringOperations + { + public StringOperations(bool caseSensitive) { } + public System.StringComparer Comparer { get; } + public bool Contains(string s, string substring) { } + public bool EndsWith(string s, string suffix) { } + public bool Equals(char x, char y) { } + public bool Equals(string x, string y) { } + public int IndexOf(string s, string substring) { } + public int IndexOf(string s, string substring, int startIndex) { } + public string Replace(string s, string oldValue, string newValue) { } + public bool StartsWith(string s, string prefix) { } + public char ToLower(char c) { } + public string ToLower(string s) { } + public char ToUpper(char c) { } + public string ToUpper(string s) { } + } + [System.Flags] + public enum TimeAdjustments + { + None = 0, + CreationTime = 1, + LastAccessTime = 2, + LastWriteTime = 4, + All = -1, + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt new file mode 100644 index 000000000..3852eb62d --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt @@ -0,0 +1,560 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName=".NET 6.0")] +namespace System.IO.Abstractions.TestingHelpers +{ + public interface IMockFileDataAccessor : System.IO.Abstractions.IFileSystem + { + System.Collections.Generic.IEnumerable AllDirectories { get; } + System.Collections.Generic.IEnumerable AllDrives { get; } + System.Collections.Generic.IEnumerable AllFiles { get; } + System.Collections.Generic.IEnumerable AllPaths { get; } + System.IO.Abstractions.IFileSystem FileSystem { get; } + System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + void AddDirectory(string path); + void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive); + void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile); + void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments); + bool FileExists(string path); + System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name); + System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path); + void MoveDirectory(string sourcePath, string destPath); + void RemoveFile(string path); + } + [System.Serializable] + public class MockDirectory : System.IO.Abstractions.DirectoryBase + { + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string currentDirectory) { } + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, System.IO.Abstractions.FileBase fileBase, string currentDirectory) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public class MockDirectoryData : System.IO.Abstractions.TestingHelpers.MockFileData + { + public MockDirectoryData() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public new System.Security.AccessControl.DirectorySecurity AccessControl { get; set; } + } + [System.Serializable] + public class MockDirectoryInfo : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockDirectoryInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string directoryPath) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockDirectoryInfoFactory : System.IO.Abstractions.IDirectoryInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDirectoryInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDirectoryInfo New(string path) { } + public System.IO.Abstractions.IDirectoryInfo Wrap(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class MockDriveData + { + public MockDriveData() { } + public MockDriveData(System.IO.Abstractions.TestingHelpers.MockDriveData template) { } + public long AvailableFreeSpace { get; set; } + public string DriveFormat { get; set; } + public System.IO.DriveType DriveType { get; set; } + public bool IsReady { get; set; } + public long TotalFreeSpace { get; set; } + public long TotalSize { get; set; } + public string VolumeLabel { get; set; } + } + [System.Serializable] + public class MockDriveInfo : System.IO.Abstractions.DriveInfoBase + { + public MockDriveInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string name) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + [System.Serializable] + public class MockDriveInfoFactory : System.IO.Abstractions.IDriveInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDriveInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDriveInfo[] GetDrives() { } + public System.IO.Abstractions.IDriveInfo New(string driveName) { } + public System.IO.Abstractions.IDriveInfo Wrap(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class MockFile : System.IO.Abstractions.FileBase + { + public MockFile(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override void Move(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public class MockFileData + { + public static readonly System.DateTimeOffset DefaultDateTimeOffset; + public static readonly System.Text.Encoding DefaultEncoding; + public MockFileData(byte[] contents) { } + public MockFileData(System.IO.Abstractions.TestingHelpers.MockFileData template) { } + public MockFileData(string textContents) { } + public MockFileData(string textContents, System.Text.Encoding encoding) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public System.Security.AccessControl.FileSecurity AccessControl { get; set; } + public System.IO.FileShare AllowedFileShare { get; set; } + public System.IO.FileAttributes Attributes { get; set; } + public byte[] Contents { get; set; } + public System.DateTimeOffset CreationTime { get; set; } + public System.IO.Abstractions.IFileVersionInfo FileVersionInfo { get; set; } + public bool IsDirectory { get; } + public System.DateTimeOffset LastAccessTime { get; set; } + public System.DateTimeOffset LastWriteTime { get; set; } + public string LinkTarget { get; set; } + public string TextContents { get; set; } + public static System.IO.Abstractions.TestingHelpers.MockFileData op_Implicit(string s) { } + } + [System.Serializable] + public class MockFileInfo : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem, string path) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override void MoveTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockFileInfoFactory : System.IO.Abstractions.IFileInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileInfo New(string fileName) { } + public System.IO.Abstractions.IFileInfo Wrap(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class MockFileStream : System.IO.Abstractions.FileSystemStream, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileStream(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string path, System.IO.FileMode mode, System.IO.FileAccess access = 3, System.IO.FileOptions options = 0) { } + public override bool CanRead { get; } + public override bool CanWrite { get; } + public static System.IO.Abstractions.FileSystemStream Null { get; } + protected override void Dispose(bool disposing) { } + public override void EndWrite(System.IAsyncResult asyncResult) { } + public override void Flush() { } + public override void Flush(bool flushToDisk) { } + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override int Read(byte[] buffer, int offset, int count) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override void SetLength(long value) { } + public override void Write(System.ReadOnlySpan buffer) { } + public override void Write(byte[] buffer, int offset, int count) { } + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { } + public override void WriteByte(byte value) { } + } + [System.Serializable] + public class MockFileStreamFactory : System.IO.Abstractions.IFileStreamFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileStreamFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileStreamOptions options) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) { } + public System.IO.Abstractions.FileSystemStream Wrap(System.IO.FileStream fileStream) { } + } + [System.Serializable] + public class MockFileSystem : System.IO.Abstractions.FileSystemBase, System.IO.Abstractions.IFileSystem, System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor + { + public MockFileSystem() { } + public MockFileSystem(System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, string currentDirectory = "") { } + public System.Collections.Generic.IEnumerable AllDirectories { get; } + public System.Collections.Generic.IEnumerable AllDrives { get; } + public System.Collections.Generic.IEnumerable AllFiles { get; } + public System.Collections.Generic.IEnumerable AllNodes { get; } + public System.Collections.Generic.IEnumerable AllPaths { get; } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + public System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + public System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + public void AddDirectory(System.IO.Abstractions.IDirectoryInfo path) { } + public void AddDirectory(string path) { } + public void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive) { } + public void AddEmptyFile(System.IO.Abstractions.IFileInfo path) { } + public void AddEmptyFile(string path) { } + public void AddFile(System.IO.Abstractions.IFileInfo path, System.IO.Abstractions.TestingHelpers.MockFileData data) { } + public void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile) { } + public void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments) { } + public bool FileExists(string path) { } + public System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(System.IO.Abstractions.IFileInfo path) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path) { } + public System.IO.Abstractions.TestingHelpers.MockFileSystem MockTime(System.Func dateTimeProvider) { } + public void MoveDirectory(string sourcePath, string destPath) { } + public void RemoveFile(string path) { } + } + public class MockFileSystemOptions + { + public MockFileSystemOptions() { } + public bool CreateDefaultTempDir { get; init; } + public string CurrentDirectory { get; init; } + } + [System.Serializable] + public class MockFileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public MockFileSystemWatcherFactory(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class MockFileVersionInfo : System.IO.Abstractions.FileVersionInfoBase + { + public MockFileVersionInfo( + string fileName, + string fileVersion = null, + string productVersion = null, + string fileDescription = null, + string productName = null, + string companyName = null, + string comments = null, + string internalName = null, + bool isDebug = false, + bool isPatched = false, + bool isPrivateBuild = false, + bool isPreRelease = false, + bool isSpecialBuild = false, + string language = null, + string legalCopyright = null, + string legalTrademarks = null, + string originalFilename = null, + string privateBuild = null, + string specialBuild = null) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class MockFileVersionInfoFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileVersionInfoFactory + { + public MockFileVersionInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileVersionInfo GetVersionInfo(string fileName) { } + } + [System.Serializable] + public class MockPath : System.IO.Abstractions.PathWrapper + { + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string defaultTempDirectory) { } + public override string GetFullPath(string path) { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + } + public static class MockUnixSupport + { + public static bool IsUnixPlatform() { } + public static bool IsWindowsPlatform() { } + public static string Path(string path) { } + } + [System.Serializable] + public class PathVerifier + { + public PathVerifier(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public void CheckInvalidPathChars(string path, bool checkAdditional = false) { } + public bool HasIllegalCharacters(string path, bool checkAdditional) { } + public void IsLegalAbsoluteOrRelative(string path, string paramName) { } + public string NormalizeDriveName(string name) { } + public bool TryNormalizeDriveName(string name, out string result) { } + } + [System.Serializable] + public class StringOperations + { + public StringOperations(bool caseSensitive) { } + public System.StringComparer Comparer { get; } + public bool Contains(string s, string substring) { } + public bool EndsWith(string s, string suffix) { } + public bool Equals(char x, char y) { } + public bool Equals(string x, string y) { } + public int IndexOf(string s, string substring) { } + public int IndexOf(string s, string substring, int startIndex) { } + public string Replace(string s, string oldValue, string newValue) { } + public bool StartsWith(string s, string prefix) { } + public char ToLower(char c) { } + public string ToLower(string s) { } + public char ToUpper(char c) { } + public string ToUpper(string s) { } + } + [System.Flags] + public enum TimeAdjustments + { + None = 0, + CreationTime = 1, + LastAccessTime = 2, + LastWriteTime = 4, + All = -1, + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt new file mode 100644 index 000000000..e577fcd4a --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt @@ -0,0 +1,585 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName=".NET 8.0")] +namespace System.IO.Abstractions.TestingHelpers +{ + public interface IMockFileDataAccessor : System.IO.Abstractions.IFileSystem + { + System.Collections.Generic.IEnumerable AllDirectories { get; } + System.Collections.Generic.IEnumerable AllDrives { get; } + System.Collections.Generic.IEnumerable AllFiles { get; } + System.Collections.Generic.IEnumerable AllPaths { get; } + System.IO.Abstractions.IFileSystem FileSystem { get; } + System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + void AddDirectory(string path); + void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive); + void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile); + void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments); + bool FileExists(string path); + System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name); + System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path); + void MoveDirectory(string sourcePath, string destPath); + void RemoveFile(string path); + } + [System.Serializable] + public class MockDirectory : System.IO.Abstractions.DirectoryBase + { + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string currentDirectory) { } + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, System.IO.Abstractions.FileBase fileBase, string currentDirectory) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateTempSubdirectory(string prefix = null) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public class MockDirectoryData : System.IO.Abstractions.TestingHelpers.MockFileData + { + public MockDirectoryData() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public new System.Security.AccessControl.DirectorySecurity AccessControl { get; set; } + } + [System.Serializable] + public class MockDirectoryInfo : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockDirectoryInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string directoryPath) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockDirectoryInfoFactory : System.IO.Abstractions.IDirectoryInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDirectoryInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDirectoryInfo New(string path) { } + public System.IO.Abstractions.IDirectoryInfo Wrap(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class MockDriveData + { + public MockDriveData() { } + public MockDriveData(System.IO.Abstractions.TestingHelpers.MockDriveData template) { } + public long AvailableFreeSpace { get; set; } + public string DriveFormat { get; set; } + public System.IO.DriveType DriveType { get; set; } + public bool IsReady { get; set; } + public long TotalFreeSpace { get; set; } + public long TotalSize { get; set; } + public string VolumeLabel { get; set; } + } + [System.Serializable] + public class MockDriveInfo : System.IO.Abstractions.DriveInfoBase + { + public MockDriveInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string name) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + [System.Serializable] + public class MockDriveInfoFactory : System.IO.Abstractions.IDriveInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDriveInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDriveInfo[] GetDrives() { } + public System.IO.Abstractions.IDriveInfo New(string driveName) { } + public System.IO.Abstractions.IDriveInfo Wrap(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class MockFile : System.IO.Abstractions.FileBase + { + public MockFile(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.IO.UnixFileMode GetUnixFileMode(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override void Move(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + [System.Runtime.CompilerServices.AsyncIteratorStateMachine(typeof(System.IO.Abstractions.TestingHelpers.MockFile.d__10))] + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, [System.Runtime.CompilerServices.EnumeratorCancellation] System.Threading.CancellationToken cancellationToken = default) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode) { } + public override void SetUnixFileMode(string path, System.IO.UnixFileMode mode) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public class MockFileData + { + public static readonly System.DateTimeOffset DefaultDateTimeOffset; + public static readonly System.Text.Encoding DefaultEncoding; + public MockFileData(byte[] contents) { } + public MockFileData(System.IO.Abstractions.TestingHelpers.MockFileData template) { } + public MockFileData(string textContents) { } + public MockFileData(string textContents, System.Text.Encoding encoding) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public System.Security.AccessControl.FileSecurity AccessControl { get; set; } + public System.IO.FileShare AllowedFileShare { get; set; } + public System.IO.FileAttributes Attributes { get; set; } + public byte[] Contents { get; set; } + public System.DateTimeOffset CreationTime { get; set; } + public System.IO.Abstractions.IFileVersionInfo FileVersionInfo { get; set; } + public bool IsDirectory { get; } + public System.DateTimeOffset LastAccessTime { get; set; } + public System.DateTimeOffset LastWriteTime { get; set; } + public string LinkTarget { get; set; } + public string TextContents { get; set; } + public System.IO.UnixFileMode UnixMode { get; set; } + public static System.IO.Abstractions.TestingHelpers.MockFileData op_Implicit(string s) { } + } + [System.Serializable] + public class MockFileInfo : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem, string path) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override void MoveTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockFileInfoFactory : System.IO.Abstractions.IFileInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileInfo New(string fileName) { } + public System.IO.Abstractions.IFileInfo Wrap(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class MockFileStream : System.IO.Abstractions.FileSystemStream, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileStream(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string path, System.IO.FileMode mode, System.IO.FileAccess access = 3, System.IO.FileOptions options = 0) { } + public override bool CanRead { get; } + public override bool CanWrite { get; } + public static System.IO.Abstractions.FileSystemStream Null { get; } + protected override void Dispose(bool disposing) { } + public override void EndWrite(System.IAsyncResult asyncResult) { } + public override void Flush() { } + public override void Flush(bool flushToDisk) { } + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override int Read(byte[] buffer, int offset, int count) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override void SetLength(long value) { } + public override void Write(System.ReadOnlySpan buffer) { } + public override void Write(byte[] buffer, int offset, int count) { } + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { } + public override void WriteByte(byte value) { } + } + [System.Serializable] + public class MockFileStreamFactory : System.IO.Abstractions.IFileStreamFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileStreamFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileStreamOptions options) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) { } + public System.IO.Abstractions.FileSystemStream Wrap(System.IO.FileStream fileStream) { } + } + [System.Serializable] + public class MockFileSystem : System.IO.Abstractions.FileSystemBase, System.IO.Abstractions.IFileSystem, System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor + { + public MockFileSystem() { } + public MockFileSystem(System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, string currentDirectory = "") { } + public System.Collections.Generic.IEnumerable AllDirectories { get; } + public System.Collections.Generic.IEnumerable AllDrives { get; } + public System.Collections.Generic.IEnumerable AllFiles { get; } + public System.Collections.Generic.IEnumerable AllNodes { get; } + public System.Collections.Generic.IEnumerable AllPaths { get; } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + public System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + public System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + public void AddDirectory(System.IO.Abstractions.IDirectoryInfo path) { } + public void AddDirectory(string path) { } + public void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive) { } + public void AddEmptyFile(System.IO.Abstractions.IFileInfo path) { } + public void AddEmptyFile(string path) { } + public void AddFile(System.IO.Abstractions.IFileInfo path, System.IO.Abstractions.TestingHelpers.MockFileData data) { } + public void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile) { } + public void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments) { } + public bool FileExists(string path) { } + public System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(System.IO.Abstractions.IFileInfo path) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path) { } + public System.IO.Abstractions.TestingHelpers.MockFileSystem MockTime(System.Func dateTimeProvider) { } + public void MoveDirectory(string sourcePath, string destPath) { } + public void RemoveFile(string path) { } + } + public class MockFileSystemOptions + { + public MockFileSystemOptions() { } + public bool CreateDefaultTempDir { get; init; } + public string CurrentDirectory { get; init; } + } + [System.Serializable] + public class MockFileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public MockFileSystemWatcherFactory(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class MockFileVersionInfo : System.IO.Abstractions.FileVersionInfoBase + { + public MockFileVersionInfo( + string fileName, + string fileVersion = null, + string productVersion = null, + string fileDescription = null, + string productName = null, + string companyName = null, + string comments = null, + string internalName = null, + bool isDebug = false, + bool isPatched = false, + bool isPrivateBuild = false, + bool isPreRelease = false, + bool isSpecialBuild = false, + string language = null, + string legalCopyright = null, + string legalTrademarks = null, + string originalFilename = null, + string privateBuild = null, + string specialBuild = null) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class MockFileVersionInfoFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileVersionInfoFactory + { + public MockFileVersionInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileVersionInfo GetVersionInfo(string fileName) { } + } + [System.Serializable] + public class MockPath : System.IO.Abstractions.PathWrapper + { + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string defaultTempDirectory) { } + public override bool Exists(string path) { } + public override string GetFullPath(string path) { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + } + public static class MockUnixSupport + { + public static bool IsUnixPlatform() { } + public static bool IsWindowsPlatform() { } + public static string Path(string path) { } + } + [System.Serializable] + public class PathVerifier + { + public PathVerifier(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public void CheckInvalidPathChars(string path, bool checkAdditional = false) { } + public bool HasIllegalCharacters(string path, bool checkAdditional) { } + public void IsLegalAbsoluteOrRelative(string path, string paramName) { } + public string NormalizeDriveName(string name) { } + public bool TryNormalizeDriveName(string name, out string result) { } + } + [System.Serializable] + public class StringOperations + { + public StringOperations(bool caseSensitive) { } + public System.StringComparer Comparer { get; } + public bool Contains(string s, string substring) { } + public bool EndsWith(string s, string suffix) { } + public bool Equals(char x, char y) { } + public bool Equals(string x, string y) { } + public int IndexOf(string s, string substring) { } + public int IndexOf(string s, string substring, int startIndex) { } + public string Replace(string s, string oldValue, string newValue) { } + public bool StartsWith(string s, string prefix) { } + public char ToLower(char c) { } + public string ToLower(string s) { } + public char ToUpper(char c) { } + public string ToUpper(string s) { } + } + [System.Flags] + public enum TimeAdjustments + { + None = 0, + CreationTime = 1, + LastAccessTime = 2, + LastWriteTime = 4, + All = -1, + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt new file mode 100644 index 000000000..c1e0da267 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt @@ -0,0 +1,599 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] +namespace System.IO.Abstractions.TestingHelpers +{ + public interface IMockFileDataAccessor : System.IO.Abstractions.IFileSystem + { + System.Collections.Generic.IEnumerable AllDirectories { get; } + System.Collections.Generic.IEnumerable AllDrives { get; } + System.Collections.Generic.IEnumerable AllFiles { get; } + System.Collections.Generic.IEnumerable AllPaths { get; } + System.IO.Abstractions.IFileSystem FileSystem { get; } + System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + void AddDirectory(string path); + void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive); + void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile); + void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments); + bool FileExists(string path); + System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name); + System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path); + void MoveDirectory(string sourcePath, string destPath); + void RemoveFile(string path); + } + [System.Serializable] + public class MockDirectory : System.IO.Abstractions.DirectoryBase + { + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string currentDirectory) { } + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, System.IO.Abstractions.FileBase fileBase, string currentDirectory) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateTempSubdirectory(string prefix = null) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public class MockDirectoryData : System.IO.Abstractions.TestingHelpers.MockFileData + { + public MockDirectoryData() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public new System.Security.AccessControl.DirectorySecurity AccessControl { get; set; } + } + [System.Serializable] + public class MockDirectoryInfo : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockDirectoryInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string directoryPath) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockDirectoryInfoFactory : System.IO.Abstractions.IDirectoryInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDirectoryInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDirectoryInfo New(string path) { } + public System.IO.Abstractions.IDirectoryInfo Wrap(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class MockDriveData + { + public MockDriveData() { } + public MockDriveData(System.IO.Abstractions.TestingHelpers.MockDriveData template) { } + public long AvailableFreeSpace { get; set; } + public string DriveFormat { get; set; } + public System.IO.DriveType DriveType { get; set; } + public bool IsReady { get; set; } + public long TotalFreeSpace { get; set; } + public long TotalSize { get; set; } + public string VolumeLabel { get; set; } + } + [System.Serializable] + public class MockDriveInfo : System.IO.Abstractions.DriveInfoBase + { + public MockDriveInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string name) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + [System.Serializable] + public class MockDriveInfoFactory : System.IO.Abstractions.IDriveInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDriveInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDriveInfo[] GetDrives() { } + public System.IO.Abstractions.IDriveInfo New(string driveName) { } + public System.IO.Abstractions.IDriveInfo Wrap(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class MockFile : System.IO.Abstractions.FileBase + { + public MockFile(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public override void AppendAllBytes(string path, byte[] bytes) { } + public override void AppendAllBytes(string path, System.ReadOnlySpan bytes) { } + public override System.Threading.Tasks.Task AppendAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllBytesAsync(string path, System.ReadOnlyMemory bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, System.ReadOnlySpan contents) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, System.ReadOnlySpan contents, System.Text.Encoding encoding) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, System.ReadOnlyMemory contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, System.ReadOnlyMemory contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.IO.UnixFileMode GetUnixFileMode(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override void Move(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + [System.Runtime.CompilerServices.AsyncIteratorStateMachine(typeof(System.IO.Abstractions.TestingHelpers.MockFile.d__14))] + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, [System.Runtime.CompilerServices.EnumeratorCancellation] System.Threading.CancellationToken cancellationToken = default) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode) { } + public override void SetUnixFileMode(string path, System.IO.UnixFileMode mode) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override void WriteAllBytes(string path, System.ReadOnlySpan bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, System.ReadOnlyMemory bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, System.ReadOnlySpan contents) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, System.ReadOnlySpan contents, System.Text.Encoding encoding) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, System.ReadOnlyMemory contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, System.ReadOnlyMemory contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public class MockFileData + { + public static readonly System.DateTimeOffset DefaultDateTimeOffset; + public static readonly System.Text.Encoding DefaultEncoding; + public MockFileData(byte[] contents) { } + public MockFileData(System.IO.Abstractions.TestingHelpers.MockFileData template) { } + public MockFileData(string textContents) { } + public MockFileData(string textContents, System.Text.Encoding encoding) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public System.Security.AccessControl.FileSecurity AccessControl { get; set; } + public System.IO.FileShare AllowedFileShare { get; set; } + public System.IO.FileAttributes Attributes { get; set; } + public byte[] Contents { get; set; } + public System.DateTimeOffset CreationTime { get; set; } + public System.IO.Abstractions.IFileVersionInfo FileVersionInfo { get; set; } + public bool IsDirectory { get; } + public System.DateTimeOffset LastAccessTime { get; set; } + public System.DateTimeOffset LastWriteTime { get; set; } + public string LinkTarget { get; set; } + public string TextContents { get; set; } + public System.IO.UnixFileMode UnixMode { get; set; } + public static System.IO.Abstractions.TestingHelpers.MockFileData op_Implicit(string s) { } + } + [System.Serializable] + public class MockFileInfo : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem, string path) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override void MoveTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockFileInfoFactory : System.IO.Abstractions.IFileInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileInfo New(string fileName) { } + public System.IO.Abstractions.IFileInfo Wrap(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class MockFileStream : System.IO.Abstractions.FileSystemStream, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileStream(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string path, System.IO.FileMode mode, System.IO.FileAccess access = 3, System.IO.FileOptions options = 0) { } + public override bool CanRead { get; } + public override bool CanWrite { get; } + public static System.IO.Abstractions.FileSystemStream Null { get; } + protected override void Dispose(bool disposing) { } + public override void EndWrite(System.IAsyncResult asyncResult) { } + public override void Flush() { } + public override void Flush(bool flushToDisk) { } + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override int Read(byte[] buffer, int offset, int count) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override void SetLength(long value) { } + public override void Write(System.ReadOnlySpan buffer) { } + public override void Write(byte[] buffer, int offset, int count) { } + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { } + public override void WriteByte(byte value) { } + } + [System.Serializable] + public class MockFileStreamFactory : System.IO.Abstractions.IFileStreamFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileStreamFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileStreamOptions options) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) { } + public System.IO.Abstractions.FileSystemStream Wrap(System.IO.FileStream fileStream) { } + } + [System.Serializable] + public class MockFileSystem : System.IO.Abstractions.FileSystemBase, System.IO.Abstractions.IFileSystem, System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor + { + public MockFileSystem() { } + public MockFileSystem(System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, string currentDirectory = "") { } + public System.Collections.Generic.IEnumerable AllDirectories { get; } + public System.Collections.Generic.IEnumerable AllDrives { get; } + public System.Collections.Generic.IEnumerable AllFiles { get; } + public System.Collections.Generic.IEnumerable AllNodes { get; } + public System.Collections.Generic.IEnumerable AllPaths { get; } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + public System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + public System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + public void AddDirectory(System.IO.Abstractions.IDirectoryInfo path) { } + public void AddDirectory(string path) { } + public void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive) { } + public void AddEmptyFile(System.IO.Abstractions.IFileInfo path) { } + public void AddEmptyFile(string path) { } + public void AddFile(System.IO.Abstractions.IFileInfo path, System.IO.Abstractions.TestingHelpers.MockFileData data) { } + public void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile) { } + public void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments) { } + public bool FileExists(string path) { } + public System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(System.IO.Abstractions.IFileInfo path) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path) { } + public System.IO.Abstractions.TestingHelpers.MockFileSystem MockTime(System.Func dateTimeProvider) { } + public void MoveDirectory(string sourcePath, string destPath) { } + public void RemoveFile(string path) { } + } + public class MockFileSystemOptions + { + public MockFileSystemOptions() { } + public bool CreateDefaultTempDir { get; init; } + public string CurrentDirectory { get; init; } + } + [System.Serializable] + public class MockFileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public MockFileSystemWatcherFactory(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class MockFileVersionInfo : System.IO.Abstractions.FileVersionInfoBase + { + public MockFileVersionInfo( + string fileName, + string fileVersion = null, + string productVersion = null, + string fileDescription = null, + string productName = null, + string companyName = null, + string comments = null, + string internalName = null, + bool isDebug = false, + bool isPatched = false, + bool isPrivateBuild = false, + bool isPreRelease = false, + bool isSpecialBuild = false, + string language = null, + string legalCopyright = null, + string legalTrademarks = null, + string originalFilename = null, + string privateBuild = null, + string specialBuild = null) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class MockFileVersionInfoFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileVersionInfoFactory + { + public MockFileVersionInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileVersionInfo GetVersionInfo(string fileName) { } + } + [System.Serializable] + public class MockPath : System.IO.Abstractions.PathWrapper + { + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string defaultTempDirectory) { } + public override bool Exists(string path) { } + public override string GetFullPath(string path) { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + } + public static class MockUnixSupport + { + public static bool IsUnixPlatform() { } + public static bool IsWindowsPlatform() { } + public static string Path(string path) { } + } + [System.Serializable] + public class PathVerifier + { + public PathVerifier(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public void CheckInvalidPathChars(string path, bool checkAdditional = false) { } + public bool HasIllegalCharacters(string path, bool checkAdditional) { } + public void IsLegalAbsoluteOrRelative(string path, string paramName) { } + public string NormalizeDriveName(string name) { } + public bool TryNormalizeDriveName(string name, out string result) { } + } + [System.Serializable] + public class StringOperations + { + public StringOperations(bool caseSensitive) { } + public System.StringComparer Comparer { get; } + public bool Contains(string s, string substring) { } + public bool EndsWith(string s, string suffix) { } + public bool Equals(char x, char y) { } + public bool Equals(string x, string y) { } + public int IndexOf(string s, string substring) { } + public int IndexOf(string s, string substring, int startIndex) { } + public string Replace(string s, string oldValue, string newValue) { } + public bool StartsWith(string s, string prefix) { } + public char ToLower(char c) { } + public string ToLower(string s) { } + public char ToUpper(char c) { } + public string ToUpper(string s) { } + } + [System.Flags] + public enum TimeAdjustments + { + None = 0, + CreationTime = 1, + LastAccessTime = 2, + LastWriteTime = 4, + All = -1, + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt new file mode 100644 index 000000000..126d875a6 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt @@ -0,0 +1,504 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")] +namespace System.IO.Abstractions.TestingHelpers +{ + public interface IMockFileDataAccessor : System.IO.Abstractions.IFileSystem + { + System.Collections.Generic.IEnumerable AllDirectories { get; } + System.Collections.Generic.IEnumerable AllDrives { get; } + System.Collections.Generic.IEnumerable AllFiles { get; } + System.Collections.Generic.IEnumerable AllPaths { get; } + System.IO.Abstractions.IFileSystem FileSystem { get; } + System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + void AddDirectory(string path); + void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive); + void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile); + void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments); + bool FileExists(string path); + System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name); + System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path); + void MoveDirectory(string sourcePath, string destPath); + void RemoveFile(string path); + } + [System.Serializable] + public class MockDirectory : System.IO.Abstractions.DirectoryBase + { + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string currentDirectory) { } + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, System.IO.Abstractions.FileBase fileBase, string currentDirectory) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public class MockDirectoryData : System.IO.Abstractions.TestingHelpers.MockFileData + { + public MockDirectoryData() { } + public new System.Security.AccessControl.DirectorySecurity AccessControl { get; set; } + } + [System.Serializable] + public class MockDirectoryInfo : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockDirectoryInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string directoryPath) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockDirectoryInfoFactory : System.IO.Abstractions.IDirectoryInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDirectoryInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDirectoryInfo New(string path) { } + public System.IO.Abstractions.IDirectoryInfo Wrap(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class MockDriveData + { + public MockDriveData() { } + public MockDriveData(System.IO.Abstractions.TestingHelpers.MockDriveData template) { } + public long AvailableFreeSpace { get; set; } + public string DriveFormat { get; set; } + public System.IO.DriveType DriveType { get; set; } + public bool IsReady { get; set; } + public long TotalFreeSpace { get; set; } + public long TotalSize { get; set; } + public string VolumeLabel { get; set; } + } + [System.Serializable] + public class MockDriveInfo : System.IO.Abstractions.DriveInfoBase + { + public MockDriveInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string name) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + [System.Serializable] + public class MockDriveInfoFactory : System.IO.Abstractions.IDriveInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDriveInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDriveInfo[] GetDrives() { } + public System.IO.Abstractions.IDriveInfo New(string driveName) { } + public System.IO.Abstractions.IDriveInfo Wrap(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class MockFile : System.IO.Abstractions.FileBase + { + public MockFile(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + } + [System.Serializable] + public class MockFileData + { + public static readonly System.DateTimeOffset DefaultDateTimeOffset; + public static readonly System.Text.Encoding DefaultEncoding; + public MockFileData(byte[] contents) { } + public MockFileData(System.IO.Abstractions.TestingHelpers.MockFileData template) { } + public MockFileData(string textContents) { } + public MockFileData(string textContents, System.Text.Encoding encoding) { } + public System.Security.AccessControl.FileSecurity AccessControl { get; set; } + public System.IO.FileShare AllowedFileShare { get; set; } + public System.IO.FileAttributes Attributes { get; set; } + public byte[] Contents { get; set; } + public System.DateTimeOffset CreationTime { get; set; } + public System.IO.Abstractions.IFileVersionInfo FileVersionInfo { get; set; } + public bool IsDirectory { get; } + public System.DateTimeOffset LastAccessTime { get; set; } + public System.DateTimeOffset LastWriteTime { get; set; } + public string TextContents { get; set; } + public static System.IO.Abstractions.TestingHelpers.MockFileData op_Implicit(string s) { } + } + [System.Serializable] + public class MockFileInfo : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem, string path) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockFileInfoFactory : System.IO.Abstractions.IFileInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileInfo New(string fileName) { } + public System.IO.Abstractions.IFileInfo Wrap(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class MockFileStream : System.IO.Abstractions.FileSystemStream, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileStream(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string path, System.IO.FileMode mode, System.IO.FileAccess access = 3, System.IO.FileOptions options = 0) { } + public override bool CanRead { get; } + public override bool CanWrite { get; } + public static System.IO.Abstractions.FileSystemStream Null { get; } + protected override void Dispose(bool disposing) { } + public override void EndWrite(System.IAsyncResult asyncResult) { } + public override void Flush() { } + public override void Flush(bool flushToDisk) { } + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override int Read(byte[] buffer, int offset, int count) { } + public void SetAccessControl(object value) { } + public override void SetLength(long value) { } + public override void Write(byte[] buffer, int offset, int count) { } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { } + public override void WriteByte(byte value) { } + } + [System.Serializable] + public class MockFileStreamFactory : System.IO.Abstractions.IFileStreamFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileStreamFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) { } + public System.IO.Abstractions.FileSystemStream Wrap(System.IO.FileStream fileStream) { } + } + [System.Serializable] + public class MockFileSystem : System.IO.Abstractions.FileSystemBase, System.IO.Abstractions.IFileSystem, System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor + { + public MockFileSystem() { } + public MockFileSystem(System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, string currentDirectory = "") { } + public System.Collections.Generic.IEnumerable AllDirectories { get; } + public System.Collections.Generic.IEnumerable AllDrives { get; } + public System.Collections.Generic.IEnumerable AllFiles { get; } + public System.Collections.Generic.IEnumerable AllNodes { get; } + public System.Collections.Generic.IEnumerable AllPaths { get; } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + public System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + public System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + public void AddDirectory(System.IO.Abstractions.IDirectoryInfo path) { } + public void AddDirectory(string path) { } + public void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive) { } + public void AddEmptyFile(System.IO.Abstractions.IFileInfo path) { } + public void AddEmptyFile(string path) { } + public void AddFile(System.IO.Abstractions.IFileInfo path, System.IO.Abstractions.TestingHelpers.MockFileData data) { } + public void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile) { } + public void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments) { } + public bool FileExists(string path) { } + public System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(System.IO.Abstractions.IFileInfo path) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path) { } + public System.IO.Abstractions.TestingHelpers.MockFileSystem MockTime(System.Func dateTimeProvider) { } + public void MoveDirectory(string sourcePath, string destPath) { } + public void RemoveFile(string path) { } + } + public class MockFileSystemOptions + { + public MockFileSystemOptions() { } + public bool CreateDefaultTempDir { get; init; } + public string CurrentDirectory { get; init; } + } + [System.Serializable] + public class MockFileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public MockFileSystemWatcherFactory(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class MockFileVersionInfo : System.IO.Abstractions.FileVersionInfoBase + { + public MockFileVersionInfo( + string fileName, + string fileVersion = null, + string productVersion = null, + string fileDescription = null, + string productName = null, + string companyName = null, + string comments = null, + string internalName = null, + bool isDebug = false, + bool isPatched = false, + bool isPrivateBuild = false, + bool isPreRelease = false, + bool isSpecialBuild = false, + string language = null, + string legalCopyright = null, + string legalTrademarks = null, + string originalFilename = null, + string privateBuild = null, + string specialBuild = null) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class MockFileVersionInfoFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileVersionInfoFactory + { + public MockFileVersionInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileVersionInfo GetVersionInfo(string fileName) { } + } + [System.Serializable] + public class MockPath : System.IO.Abstractions.PathWrapper + { + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string defaultTempDirectory) { } + public override string GetFullPath(string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + } + public static class MockUnixSupport + { + public static bool IsUnixPlatform() { } + public static bool IsWindowsPlatform() { } + public static string Path(string path) { } + } + [System.Serializable] + public class PathVerifier + { + public PathVerifier(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public void CheckInvalidPathChars(string path, bool checkAdditional = false) { } + public bool HasIllegalCharacters(string path, bool checkAdditional) { } + public void IsLegalAbsoluteOrRelative(string path, string paramName) { } + public string NormalizeDriveName(string name) { } + public bool TryNormalizeDriveName(string name, out string result) { } + } + [System.Serializable] + public class StringOperations + { + public StringOperations(bool caseSensitive) { } + public System.StringComparer Comparer { get; } + public bool Contains(string s, string substring) { } + public bool EndsWith(string s, string suffix) { } + public bool Equals(char x, char y) { } + public bool Equals(string x, string y) { } + public int IndexOf(string s, string substring) { } + public int IndexOf(string s, string substring, int startIndex) { } + public string Replace(string s, string oldValue, string newValue) { } + public bool StartsWith(string s, string prefix) { } + public char ToLower(char c) { } + public string ToLower(string s) { } + public char ToUpper(char c) { } + public string ToUpper(string s) { } + } + [System.Flags] + public enum TimeAdjustments + { + None = 0, + CreationTime = 1, + LastAccessTime = 2, + LastWriteTime = 4, + All = -1, + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt new file mode 100644 index 000000000..ecfb7b0a5 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt @@ -0,0 +1,533 @@ +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName=".NET Standard 2.1")] +namespace System.IO.Abstractions.TestingHelpers +{ + public interface IMockFileDataAccessor : System.IO.Abstractions.IFileSystem + { + System.Collections.Generic.IEnumerable AllDirectories { get; } + System.Collections.Generic.IEnumerable AllDrives { get; } + System.Collections.Generic.IEnumerable AllFiles { get; } + System.Collections.Generic.IEnumerable AllPaths { get; } + System.IO.Abstractions.IFileSystem FileSystem { get; } + System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + void AddDirectory(string path); + void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive); + void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile); + void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath); + System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments); + bool FileExists(string path); + System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name); + System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path); + void MoveDirectory(string sourcePath, string destPath); + void RemoveFile(string path); + } + [System.Serializable] + public class MockDirectory : System.IO.Abstractions.DirectoryBase + { + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string currentDirectory) { } + public MockDirectory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, System.IO.Abstractions.FileBase fileBase, string currentDirectory) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public class MockDirectoryData : System.IO.Abstractions.TestingHelpers.MockFileData + { + public MockDirectoryData() { } + public new System.Security.AccessControl.DirectorySecurity AccessControl { get; set; } + } + [System.Serializable] + public class MockDirectoryInfo : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockDirectoryInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string directoryPath) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockDirectoryInfoFactory : System.IO.Abstractions.IDirectoryInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDirectoryInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDirectoryInfo New(string path) { } + public System.IO.Abstractions.IDirectoryInfo Wrap(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class MockDriveData + { + public MockDriveData() { } + public MockDriveData(System.IO.Abstractions.TestingHelpers.MockDriveData template) { } + public long AvailableFreeSpace { get; set; } + public string DriveFormat { get; set; } + public System.IO.DriveType DriveType { get; set; } + public bool IsReady { get; set; } + public long TotalFreeSpace { get; set; } + public long TotalSize { get; set; } + public string VolumeLabel { get; set; } + } + [System.Serializable] + public class MockDriveInfo : System.IO.Abstractions.DriveInfoBase + { + public MockDriveInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string name) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + [System.Serializable] + public class MockDriveInfoFactory : System.IO.Abstractions.IDriveInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockDriveInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IDriveInfo[] GetDrives() { } + public System.IO.Abstractions.IDriveInfo New(string driveName) { } + public System.IO.Abstractions.IDriveInfo Wrap(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class MockFile : System.IO.Abstractions.FileBase + { + public MockFile(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public class MockFileData + { + public static readonly System.DateTimeOffset DefaultDateTimeOffset; + public static readonly System.Text.Encoding DefaultEncoding; + public MockFileData(byte[] contents) { } + public MockFileData(System.IO.Abstractions.TestingHelpers.MockFileData template) { } + public MockFileData(string textContents) { } + public MockFileData(string textContents, System.Text.Encoding encoding) { } + public System.Security.AccessControl.FileSecurity AccessControl { get; set; } + public System.IO.FileShare AllowedFileShare { get; set; } + public System.IO.FileAttributes Attributes { get; set; } + public byte[] Contents { get; set; } + public System.DateTimeOffset CreationTime { get; set; } + public System.IO.Abstractions.IFileVersionInfo FileVersionInfo { get; set; } + public bool IsDirectory { get; } + public System.DateTimeOffset LastAccessTime { get; set; } + public System.DateTimeOffset LastWriteTime { get; set; } + public string TextContents { get; set; } + public static System.IO.Abstractions.TestingHelpers.MockFileData op_Implicit(string s) { } + } + [System.Serializable] + public class MockFileInfo : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileInfo(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem, string path) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class MockFileInfoFactory : System.IO.Abstractions.IFileInfoFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileInfo New(string fileName) { } + public System.IO.Abstractions.IFileInfo Wrap(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class MockFileStream : System.IO.Abstractions.FileSystemStream, System.IO.Abstractions.IFileSystemAclSupport + { + public MockFileStream(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string path, System.IO.FileMode mode, System.IO.FileAccess access = 3, System.IO.FileOptions options = 0) { } + public override bool CanRead { get; } + public override bool CanWrite { get; } + public static System.IO.Abstractions.FileSystemStream Null { get; } + protected override void Dispose(bool disposing) { } + public override void EndWrite(System.IAsyncResult asyncResult) { } + public override void Flush() { } + public override void Flush(bool flushToDisk) { } + public override System.Threading.Tasks.Task FlushAsync(System.Threading.CancellationToken cancellationToken) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override int Read(byte[] buffer, int offset, int count) { } + public void SetAccessControl(object value) { } + public override void SetLength(long value) { } + public override void Write(System.ReadOnlySpan buffer) { } + public override void Write(byte[] buffer, int offset, int count) { } + public override System.Threading.Tasks.ValueTask WriteAsync(System.ReadOnlyMemory buffer, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAsync(byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) { } + public override void WriteByte(byte value) { } + } + [System.Serializable] + public class MockFileStreamFactory : System.IO.Abstractions.IFileStreamFactory, System.IO.Abstractions.IFileSystemEntity + { + public MockFileStreamFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public System.IO.Abstractions.FileSystemStream New(Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync) { } + public System.IO.Abstractions.FileSystemStream New(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options) { } + public System.IO.Abstractions.FileSystemStream Wrap(System.IO.FileStream fileStream) { } + } + [System.Serializable] + public class MockFileSystem : System.IO.Abstractions.FileSystemBase, System.IO.Abstractions.IFileSystem, System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor + { + public MockFileSystem() { } + public MockFileSystem(System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, System.IO.Abstractions.TestingHelpers.MockFileSystemOptions options) { } + public MockFileSystem(System.Collections.Generic.IDictionary files, string currentDirectory = "") { } + public System.Collections.Generic.IEnumerable AllDirectories { get; } + public System.Collections.Generic.IEnumerable AllDrives { get; } + public System.Collections.Generic.IEnumerable AllFiles { get; } + public System.Collections.Generic.IEnumerable AllNodes { get; } + public System.Collections.Generic.IEnumerable AllPaths { get; } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + public System.IO.Abstractions.TestingHelpers.PathVerifier PathVerifier { get; } + public System.IO.Abstractions.TestingHelpers.StringOperations StringOperations { get; } + public void AddDirectory(System.IO.Abstractions.IDirectoryInfo path) { } + public void AddDirectory(string path) { } + public void AddDrive(string name, System.IO.Abstractions.TestingHelpers.MockDriveData mockDrive) { } + public void AddEmptyFile(System.IO.Abstractions.IFileInfo path) { } + public void AddEmptyFile(string path) { } + public void AddFile(System.IO.Abstractions.IFileInfo path, System.IO.Abstractions.TestingHelpers.MockFileData data) { } + public void AddFile(string path, System.IO.Abstractions.TestingHelpers.MockFileData mockFile) { } + public void AddFileFromEmbeddedResource(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public void AddFilesFromEmbeddedNamespace(string path, System.Reflection.Assembly resourceAssembly, string embeddedResourcePath) { } + public System.IO.Abstractions.TestingHelpers.MockFileData AdjustTimes(System.IO.Abstractions.TestingHelpers.MockFileData fileData, System.IO.Abstractions.TestingHelpers.TimeAdjustments timeAdjustments) { } + public bool FileExists(string path) { } + public System.IO.Abstractions.TestingHelpers.MockDriveData GetDrive(string name) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(System.IO.Abstractions.IFileInfo path) { } + public System.IO.Abstractions.TestingHelpers.MockFileData GetFile(string path) { } + public System.IO.Abstractions.TestingHelpers.MockFileSystem MockTime(System.Func dateTimeProvider) { } + public void MoveDirectory(string sourcePath, string destPath) { } + public void RemoveFile(string path) { } + } + public class MockFileSystemOptions + { + public MockFileSystemOptions() { } + public bool CreateDefaultTempDir { get; init; } + public string CurrentDirectory { get; init; } + } + [System.Serializable] + public class MockFileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public MockFileSystemWatcherFactory(System.IO.Abstractions.TestingHelpers.MockFileSystem mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class MockFileVersionInfo : System.IO.Abstractions.FileVersionInfoBase + { + public MockFileVersionInfo( + string fileName, + string fileVersion = null, + string productVersion = null, + string fileDescription = null, + string productName = null, + string companyName = null, + string comments = null, + string internalName = null, + bool isDebug = false, + bool isPatched = false, + bool isPrivateBuild = false, + bool isPreRelease = false, + bool isSpecialBuild = false, + string language = null, + string legalCopyright = null, + string legalTrademarks = null, + string originalFilename = null, + string privateBuild = null, + string specialBuild = null) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class MockFileVersionInfoFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileVersionInfoFactory + { + public MockFileVersionInfoFactory(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileVersionInfo GetVersionInfo(string fileName) { } + } + [System.Serializable] + public class MockPath : System.IO.Abstractions.PathWrapper + { + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public MockPath(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor, string defaultTempDirectory) { } + public override string GetFullPath(string path) { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + } + public static class MockUnixSupport + { + public static bool IsUnixPlatform() { } + public static bool IsWindowsPlatform() { } + public static string Path(string path) { } + } + [System.Serializable] + public class PathVerifier + { + public PathVerifier(System.IO.Abstractions.TestingHelpers.IMockFileDataAccessor mockFileDataAccessor) { } + public void CheckInvalidPathChars(string path, bool checkAdditional = false) { } + public bool HasIllegalCharacters(string path, bool checkAdditional) { } + public void IsLegalAbsoluteOrRelative(string path, string paramName) { } + public string NormalizeDriveName(string name) { } + public bool TryNormalizeDriveName(string name, out string result) { } + } + [System.Serializable] + public class StringOperations + { + public StringOperations(bool caseSensitive) { } + public System.StringComparer Comparer { get; } + public bool Contains(string s, string substring) { } + public bool EndsWith(string s, string suffix) { } + public bool Equals(char x, char y) { } + public bool Equals(string x, string y) { } + public int IndexOf(string s, string substring) { } + public int IndexOf(string s, string substring, int startIndex) { } + public string Replace(string s, string oldValue, string newValue) { } + public bool StartsWith(string s, string prefix) { } + public char ToLower(char c) { } + public string ToLower(string s) { } + public char ToUpper(char c) { } + public string ToUpper(string s) { } + } + [System.Flags] + public enum TimeAdjustments + { + None = 0, + CreationTime = 1, + LastAccessTime = 2, + LastWriteTime = 4, + All = -1, + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt new file mode 100644 index 000000000..8b72ddbab --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt @@ -0,0 +1,658 @@ +[assembly: System.CLSCompliant(true)] +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName=".NET Framework 4.7.2")] +namespace System.IO.Abstractions +{ + public static class DirectoryAclExtensions + { + public static void CreateDirectory(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryBase : System.IO.Abstractions.IDirectory, System.IO.Abstractions.IFileSystemEntity + { + protected DirectoryBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path); + public abstract void Delete(string path); + public abstract void Delete(string path, bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract bool Exists(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract string GetCurrentDirectory(); + public abstract string[] GetDirectories(string path); + public abstract string[] GetDirectories(string path, string searchPattern); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string GetDirectoryRoot(string path); + public abstract string[] GetFileSystemEntries(string path); + public abstract string[] GetFileSystemEntries(string path, string searchPattern); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string[] GetFiles(string path); + public abstract string[] GetFiles(string path, string searchPattern); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract string[] GetLogicalDrives(); + public abstract System.IO.Abstractions.IDirectoryInfo GetParent(string path); + public abstract void Move(string sourceDirName, string destDirName); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetCurrentDirectory(string path); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + } + public static class DirectoryInfoAclExtensions + { + public static void Create(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IDirectoryInfo, System.IO.Abstractions.IFileSystemInfo + { + protected DirectoryInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Parent { get; } + public abstract System.IO.Abstractions.IDirectoryInfo Root { get; } + public abstract void Create(); + public abstract System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path); + public abstract void Delete(bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract void MoveTo(string destDirName); + public static System.IO.Abstractions.DirectoryInfoBase op_Implicit(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class DirectoryInfoWrapper : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public DirectoryInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DirectoryInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class DirectoryWrapper : System.IO.Abstractions.DirectoryBase + { + public DirectoryWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public abstract class DriveInfoBase : System.IO.Abstractions.IDriveInfo, System.IO.Abstractions.IFileSystemEntity + { + protected DriveInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract long AvailableFreeSpace { get; } + public abstract string DriveFormat { get; } + public abstract System.IO.DriveType DriveType { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract bool IsReady { get; } + public abstract string Name { get; } + public abstract System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public abstract long TotalFreeSpace { get; } + public abstract long TotalSize { get; } + public abstract string VolumeLabel { get; set; } + public static System.IO.Abstractions.DriveInfoBase op_Implicit(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class DriveInfoWrapper : System.IO.Abstractions.DriveInfoBase + { + public DriveInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DriveInfo instance) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + public static class FileAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path) { } + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileBase : System.IO.Abstractions.IFile, System.IO.Abstractions.IFileSystemEntity + { + protected FileBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void AppendAllText(string path, string contents); + public abstract void AppendAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.IO.StreamWriter AppendText(string path); + public abstract void Copy(string sourceFileName, string destFileName); + public abstract void Copy(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(string path); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options); + public abstract System.IO.StreamWriter CreateText(string path); + public abstract void Decrypt(string path); + public abstract void Delete(string path); + public abstract void Encrypt(string path); + public abstract bool Exists(string path); + public abstract System.IO.FileAttributes GetAttributes(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract void Move(string sourceFileName, string destFileName); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(string path); + public abstract System.IO.StreamReader OpenText(string path); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(string path); + public abstract byte[] ReadAllBytes(string path); + public abstract string[] ReadAllLines(string path); + public abstract string[] ReadAllLines(string path, System.Text.Encoding encoding); + public abstract string ReadAllText(string path); + public abstract string ReadAllText(string path, System.Text.Encoding encoding); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public abstract void SetAttributes(string path, System.IO.FileAttributes fileAttributes); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + public abstract void WriteAllBytes(string path, byte[] bytes); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void WriteAllLines(string path, string[] contents); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding); + public abstract void WriteAllText(string path, string contents); + public abstract void WriteAllText(string path, string contents, System.Text.Encoding encoding); + } + public static class FileInfoAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo) { } + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IFileInfo, System.IO.Abstractions.IFileSystemInfo + { + protected FileInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Directory { get; } + public abstract string DirectoryName { get; } + public abstract bool IsReadOnly { get; set; } + public abstract long Length { get; } + public abstract System.IO.StreamWriter AppendText(); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(); + public abstract System.IO.StreamWriter CreateText(); + public abstract void Decrypt(); + public abstract void Encrypt(); + public abstract void MoveTo(string destFileName); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(); + public abstract System.IO.StreamReader OpenText(); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public static System.IO.Abstractions.FileInfoBase op_Implicit(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class FileInfoWrapper : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public FileInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + public static class FileStreamAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream) { } + public static void SetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public class FileSystem : System.IO.Abstractions.FileSystemBase + { + public FileSystem() { } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemBase : System.IO.Abstractions.IFileSystem + { + protected FileSystemBase() { } + public abstract System.IO.Abstractions.IDirectory Directory { get; } + public abstract System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public abstract System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public abstract System.IO.Abstractions.IFile File { get; } + public abstract System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public abstract System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public abstract System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public abstract System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public abstract System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemInfoBase : System.IO.Abstractions.IFileSystemInfo + { + protected FileSystemInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.FileAttributes Attributes { get; set; } + public abstract System.DateTime CreationTime { get; set; } + public abstract System.DateTime CreationTimeUtc { get; set; } + public abstract bool Exists { get; } + public abstract string Extension { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string FullName { get; } + public abstract System.DateTime LastAccessTime { get; set; } + public abstract System.DateTime LastAccessTimeUtc { get; set; } + public abstract System.DateTime LastWriteTime { get; set; } + public abstract System.DateTime LastWriteTimeUtc { get; set; } + public abstract string Name { get; } + public abstract void Delete(); + public abstract void Refresh(); + } + [System.Serializable] + public abstract class FileSystemWatcherBase : System.IDisposable, System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcher + { + protected FileSystemWatcherBase() { } + public abstract System.ComponentModel.IContainer Container { get; } + public abstract bool EnableRaisingEvents { get; set; } + public abstract System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string Filter { get; set; } + public abstract bool IncludeSubdirectories { get; set; } + public abstract int InternalBufferSize { get; set; } + public abstract System.IO.NotifyFilters NotifyFilter { get; set; } + public abstract string Path { get; set; } + public abstract System.ComponentModel.ISite Site { get; set; } + public abstract System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public virtual event System.IO.FileSystemEventHandler Changed; + public virtual event System.IO.FileSystemEventHandler Created; + public virtual event System.IO.FileSystemEventHandler Deleted; + public virtual event System.IO.ErrorEventHandler Error; + public virtual event System.IO.RenamedEventHandler Renamed; + public abstract void BeginInit(); + public void Dispose() { } + public virtual void Dispose(bool disposing) { } + public abstract void EndInit(); + protected void OnChanged(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnCreated(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnDeleted(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnError(object sender, System.IO.ErrorEventArgs args) { } + protected void OnRenamed(object sender, System.IO.RenamedEventArgs args) { } + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout); + public static System.IO.Abstractions.FileSystemWatcherBase op_Implicit(System.IO.FileSystemWatcher watcher) { } + } + [System.Serializable] + public class FileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public FileSystemWatcherFactory(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class FileSystemWatcherWrapper : System.IO.Abstractions.FileSystemWatcherBase + { + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileSystemWatcher watcher) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path, string filter) { } + public override System.ComponentModel.IContainer Container { get; } + public override bool EnableRaisingEvents { get; set; } + public override System.IO.Abstractions.IFileSystem FileSystem { get; } + public override string Filter { get; set; } + public override bool IncludeSubdirectories { get; set; } + public override int InternalBufferSize { get; set; } + public override System.IO.NotifyFilters NotifyFilter { get; set; } + public override string Path { get; set; } + public override System.ComponentModel.ISite Site { get; set; } + public override System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public override void BeginInit() { } + public override void Dispose(bool disposing) { } + public override void EndInit() { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { } + } + [System.Serializable] + public abstract class FileVersionInfoBase : System.IO.Abstractions.IFileVersionInfo + { + protected FileVersionInfoBase() { } + public abstract string Comments { get; } + public abstract string CompanyName { get; } + public abstract int FileBuildPart { get; } + public abstract string FileDescription { get; } + public abstract int FileMajorPart { get; } + public abstract int FileMinorPart { get; } + public abstract string FileName { get; } + public abstract int FilePrivatePart { get; } + public abstract string FileVersion { get; } + public abstract string InternalName { get; } + public abstract bool IsDebug { get; } + public abstract bool IsPatched { get; } + public abstract bool IsPreRelease { get; } + public abstract bool IsPrivateBuild { get; } + public abstract bool IsSpecialBuild { get; } + public abstract string Language { get; } + public abstract string LegalCopyright { get; } + public abstract string LegalTrademarks { get; } + public abstract string OriginalFilename { get; } + public abstract string PrivateBuild { get; } + public abstract int ProductBuildPart { get; } + public abstract int ProductMajorPart { get; } + public abstract int ProductMinorPart { get; } + public abstract string ProductName { get; } + public abstract int ProductPrivatePart { get; } + public abstract string ProductVersion { get; } + public abstract string SpecialBuild { get; } + public abstract string ToString(); + public static System.IO.Abstractions.FileVersionInfoBase op_Implicit(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + } + [System.Serializable] + public class FileVersionInfoWrapper : System.IO.Abstractions.FileVersionInfoBase + { + public FileVersionInfoWrapper(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class FileWrapper : System.IO.Abstractions.FileBase + { + public FileWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + } + [System.Serializable] + public abstract class PathBase : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IPath + { + protected PathBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract char AltDirectorySeparatorChar { get; } + public abstract char DirectorySeparatorChar { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public abstract char[] InvalidPathChars { get; } + public abstract char PathSeparator { get; } + public abstract char VolumeSeparatorChar { get; } + public abstract string ChangeExtension(string path, string extension); + public abstract string Combine(params string[] paths); + public abstract string Combine(string path1, string path2); + public abstract string Combine(string path1, string path2, string path3); + public abstract string Combine(string path1, string path2, string path3, string path4); + public abstract string GetDirectoryName(string path); + public abstract string GetExtension(string path); + public abstract string GetFileName(string path); + public abstract string GetFileNameWithoutExtension(string path); + public abstract string GetFullPath(string path); + public abstract char[] GetInvalidFileNameChars(); + public abstract char[] GetInvalidPathChars(); + public abstract string GetPathRoot(string path); + public abstract string GetRandomFileName(); + public abstract string GetTempFileName(); + public abstract string GetTempPath(); + public abstract bool HasExtension(string path); + public abstract bool IsPathRooted(string path); + } + [System.Serializable] + public class PathWrapper : System.IO.Abstractions.PathBase + { + public PathWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override char AltDirectorySeparatorChar { get; } + public override char DirectorySeparatorChar { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public override char[] InvalidPathChars { get; } + public override char PathSeparator { get; } + public override char VolumeSeparatorChar { get; } + public override string ChangeExtension(string path, string extension) { } + public override string Combine(params string[] paths) { } + public override string Combine(string path1, string path2) { } + public override string Combine(string path1, string path2, string path3) { } + public override string Combine(string path1, string path2, string path3, string path4) { } + public override string GetDirectoryName(string path) { } + public override string GetExtension(string path) { } + public override string GetFileName(string path) { } + public override string GetFileNameWithoutExtension(string path) { } + public override string GetFullPath(string path) { } + public override char[] GetInvalidFileNameChars() { } + public override char[] GetInvalidPathChars() { } + public override string GetPathRoot(string path) { } + public override string GetRandomFileName() { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + public override bool HasExtension(string path) { } + public override bool IsPathRooted(string path) { } + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt new file mode 100644 index 000000000..30aa6f7dd --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt @@ -0,0 +1,812 @@ +[assembly: System.CLSCompliant(true)] +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName=".NET 6.0")] +namespace System.IO.Abstractions +{ + public static class DirectoryAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void CreateDirectory(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryBase : System.IO.Abstractions.IDirectory, System.IO.Abstractions.IFileSystemEntity + { + protected DirectoryBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path); + public abstract System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget); + public abstract void Delete(string path); + public abstract void Delete(string path, bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract bool Exists(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract string GetCurrentDirectory(); + public abstract string[] GetDirectories(string path); + public abstract string[] GetDirectories(string path, string searchPattern); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string GetDirectoryRoot(string path); + public abstract string[] GetFileSystemEntries(string path); + public abstract string[] GetFileSystemEntries(string path, string searchPattern); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string[] GetFiles(string path); + public abstract string[] GetFiles(string path, string searchPattern); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract string[] GetLogicalDrives(); + public abstract System.IO.Abstractions.IDirectoryInfo GetParent(string path); + public abstract void Move(string sourceDirName, string destDirName); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetCurrentDirectory(string path); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + } + public static class DirectoryInfoAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void Create(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IDirectoryInfo, System.IO.Abstractions.IFileSystemInfo + { + protected DirectoryInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Parent { get; } + public abstract System.IO.Abstractions.IDirectoryInfo Root { get; } + public abstract void Create(); + public abstract System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path); + public abstract void Delete(bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract void MoveTo(string destDirName); + public static System.IO.Abstractions.DirectoryInfoBase op_Implicit(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class DirectoryInfoWrapper : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public DirectoryInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DirectoryInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class DirectoryWrapper : System.IO.Abstractions.DirectoryBase + { + public DirectoryWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public abstract class DriveInfoBase : System.IO.Abstractions.IDriveInfo, System.IO.Abstractions.IFileSystemEntity + { + protected DriveInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract long AvailableFreeSpace { get; } + public abstract string DriveFormat { get; } + public abstract System.IO.DriveType DriveType { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract bool IsReady { get; } + public abstract string Name { get; } + public abstract System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public abstract long TotalFreeSpace { get; } + public abstract long TotalSize { get; } + public abstract string VolumeLabel { get; set; } + public static System.IO.Abstractions.DriveInfoBase op_Implicit(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class DriveInfoWrapper : System.IO.Abstractions.DriveInfoBase + { + public DriveInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DriveInfo instance) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + [set: System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + public static class FileAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileBase : System.IO.Abstractions.IFile, System.IO.Abstractions.IFileSystemEntity + { + protected FileBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void AppendAllText(string path, string contents); + public abstract void AppendAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.IO.StreamWriter AppendText(string path); + public abstract void Copy(string sourceFileName, string destFileName); + public abstract void Copy(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(string path); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options); + public abstract System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget); + public abstract System.IO.StreamWriter CreateText(string path); + public abstract void Decrypt(string path); + public abstract void Delete(string path); + public abstract void Encrypt(string path); + public abstract bool Exists(string path); + public abstract System.IO.FileAttributes GetAttributes(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract void Move(string sourceFileName, string destFileName); + public abstract void Move(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(string path); + public abstract System.IO.StreamReader OpenText(string path); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(string path); + public abstract byte[] ReadAllBytes(string path); + public abstract System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract string[] ReadAllLines(string path); + public abstract string[] ReadAllLines(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract string ReadAllText(string path); + public abstract string ReadAllText(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget); + public abstract void SetAttributes(string path, System.IO.FileAttributes fileAttributes); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + public abstract void WriteAllBytes(string path, byte[] bytes); + public abstract System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void WriteAllLines(string path, string[] contents); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllText(string path, string contents); + public abstract void WriteAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + } + public static class FileInfoAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IFileInfo, System.IO.Abstractions.IFileSystemInfo + { + protected FileInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Directory { get; } + public abstract string DirectoryName { get; } + public abstract bool IsReadOnly { get; set; } + public abstract long Length { get; } + public abstract System.IO.StreamWriter AppendText(); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(); + public abstract System.IO.StreamWriter CreateText(); + public abstract void Decrypt(); + public abstract void Encrypt(); + public abstract void MoveTo(string destFileName); + public abstract void MoveTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(); + public abstract System.IO.StreamReader OpenText(); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public static System.IO.Abstractions.FileInfoBase op_Implicit(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class FileInfoWrapper : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public FileInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.StreamWriter CreateText() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Decrypt() { } + public override void Delete() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Encrypt() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override void MoveTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + public static class FileStreamAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public class FileSystem : System.IO.Abstractions.FileSystemBase + { + public FileSystem() { } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemBase : System.IO.Abstractions.IFileSystem + { + protected FileSystemBase() { } + public abstract System.IO.Abstractions.IDirectory Directory { get; } + public abstract System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public abstract System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public abstract System.IO.Abstractions.IFile File { get; } + public abstract System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public abstract System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public abstract System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public abstract System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public abstract System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemInfoBase : System.IO.Abstractions.IFileSystemInfo + { + protected FileSystemInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.FileAttributes Attributes { get; set; } + public abstract System.DateTime CreationTime { get; set; } + public abstract System.DateTime CreationTimeUtc { get; set; } + public abstract bool Exists { get; } + public abstract string Extension { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string FullName { get; } + public abstract System.DateTime LastAccessTime { get; set; } + public abstract System.DateTime LastAccessTimeUtc { get; set; } + public abstract System.DateTime LastWriteTime { get; set; } + public abstract System.DateTime LastWriteTimeUtc { get; set; } + public abstract string LinkTarget { get; } + public abstract string Name { get; } + public abstract void CreateAsSymbolicLink(string pathToTarget); + public abstract void Delete(); + public abstract void Refresh(); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget); + } + [System.Serializable] + public abstract class FileSystemWatcherBase : System.IDisposable, System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcher + { + protected FileSystemWatcherBase() { } + public abstract System.ComponentModel.IContainer Container { get; } + public abstract bool EnableRaisingEvents { get; set; } + public abstract System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string Filter { get; set; } + public abstract System.Collections.ObjectModel.Collection Filters { get; } + public abstract bool IncludeSubdirectories { get; set; } + public abstract int InternalBufferSize { get; set; } + public abstract System.IO.NotifyFilters NotifyFilter { get; set; } + public abstract string Path { get; set; } + public abstract System.ComponentModel.ISite Site { get; set; } + public abstract System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public virtual event System.IO.FileSystemEventHandler Changed; + public virtual event System.IO.FileSystemEventHandler Created; + public virtual event System.IO.FileSystemEventHandler Deleted; + public virtual event System.IO.ErrorEventHandler Error; + public virtual event System.IO.RenamedEventHandler Renamed; + public abstract void BeginInit(); + public void Dispose() { } + public virtual void Dispose(bool disposing) { } + public abstract void EndInit(); + protected void OnChanged(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnCreated(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnDeleted(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnError(object sender, System.IO.ErrorEventArgs args) { } + protected void OnRenamed(object sender, System.IO.RenamedEventArgs args) { } + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout); + public static System.IO.Abstractions.FileSystemWatcherBase op_Implicit(System.IO.FileSystemWatcher watcher) { } + } + [System.Serializable] + public class FileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public FileSystemWatcherFactory(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class FileSystemWatcherWrapper : System.IO.Abstractions.FileSystemWatcherBase + { + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileSystemWatcher watcher) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path, string filter) { } + public override System.ComponentModel.IContainer Container { get; } + public override bool EnableRaisingEvents { get; set; } + public override System.IO.Abstractions.IFileSystem FileSystem { get; } + public override string Filter { get; set; } + public override System.Collections.ObjectModel.Collection Filters { get; } + public override bool IncludeSubdirectories { get; set; } + public override int InternalBufferSize { get; set; } + public override System.IO.NotifyFilters NotifyFilter { get; set; } + public override string Path { get; set; } + public override System.ComponentModel.ISite Site { get; set; } + public override System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public override void BeginInit() { } + public override void Dispose(bool disposing) { } + public override void EndInit() { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { } + } + [System.Serializable] + public abstract class FileVersionInfoBase : System.IO.Abstractions.IFileVersionInfo + { + protected FileVersionInfoBase() { } + public abstract string Comments { get; } + public abstract string CompanyName { get; } + public abstract int FileBuildPart { get; } + public abstract string FileDescription { get; } + public abstract int FileMajorPart { get; } + public abstract int FileMinorPart { get; } + public abstract string FileName { get; } + public abstract int FilePrivatePart { get; } + public abstract string FileVersion { get; } + public abstract string InternalName { get; } + public abstract bool IsDebug { get; } + public abstract bool IsPatched { get; } + public abstract bool IsPreRelease { get; } + public abstract bool IsPrivateBuild { get; } + public abstract bool IsSpecialBuild { get; } + public abstract string Language { get; } + public abstract string LegalCopyright { get; } + public abstract string LegalTrademarks { get; } + public abstract string OriginalFilename { get; } + public abstract string PrivateBuild { get; } + public abstract int ProductBuildPart { get; } + public abstract int ProductMajorPart { get; } + public abstract int ProductMinorPart { get; } + public abstract string ProductName { get; } + public abstract int ProductPrivatePart { get; } + public abstract string ProductVersion { get; } + public abstract string SpecialBuild { get; } + public abstract string ToString(); + public static System.IO.Abstractions.FileVersionInfoBase op_Implicit(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + } + [System.Serializable] + public class FileVersionInfoWrapper : System.IO.Abstractions.FileVersionInfoBase + { + public FileVersionInfoWrapper(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class FileWrapper : System.IO.Abstractions.FileBase + { + public FileWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.StreamWriter CreateText(string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Decrypt(string path) { } + public override void Delete(string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override void Move(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public abstract class PathBase : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IPath + { + protected PathBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract char AltDirectorySeparatorChar { get; } + public abstract char DirectorySeparatorChar { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public abstract char[] InvalidPathChars { get; } + public abstract char PathSeparator { get; } + public abstract char VolumeSeparatorChar { get; } + public abstract string ChangeExtension(string path, string extension); + public abstract string Combine(params string[] paths); + public abstract string Combine(string path1, string path2); + public abstract string Combine(string path1, string path2, string path3); + public abstract string Combine(string path1, string path2, string path3, string path4); + public abstract bool EndsInDirectorySeparator(System.ReadOnlySpan path); + public abstract bool EndsInDirectorySeparator(string path); + public abstract System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path); + public abstract string GetDirectoryName(string path); + public abstract System.ReadOnlySpan GetExtension(System.ReadOnlySpan path); + public abstract string GetExtension(string path); + public abstract System.ReadOnlySpan GetFileName(System.ReadOnlySpan path); + public abstract string GetFileName(string path); + public abstract System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path); + public abstract string GetFileNameWithoutExtension(string path); + public abstract string GetFullPath(string path); + public abstract string GetFullPath(string path, string basePath); + public abstract char[] GetInvalidFileNameChars(); + public abstract char[] GetInvalidPathChars(); + public abstract System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path); + public abstract string GetPathRoot(string path); + public abstract string GetRandomFileName(); + public abstract string GetRelativePath(string relativeTo, string path); + public abstract string GetTempFileName(); + public abstract string GetTempPath(); + public abstract bool HasExtension(System.ReadOnlySpan path); + public abstract bool HasExtension(string path); + public abstract bool IsPathFullyQualified(System.ReadOnlySpan path); + public abstract bool IsPathFullyQualified(string path); + public abstract bool IsPathRooted(System.ReadOnlySpan path); + public abstract bool IsPathRooted(string path); + public abstract string Join(params string[] paths); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2); + public abstract string Join(string path1, string path2); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3); + public abstract string Join(string path1, string path2, string path3); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4); + public abstract string Join(string path1, string path2, string path3, string path4); + public abstract System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path); + public abstract string TrimEndingDirectorySeparator(string path); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten); + } + [System.Serializable] + public class PathWrapper : System.IO.Abstractions.PathBase + { + public PathWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override char AltDirectorySeparatorChar { get; } + public override char DirectorySeparatorChar { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public override char[] InvalidPathChars { get; } + public override char PathSeparator { get; } + public override char VolumeSeparatorChar { get; } + public override string ChangeExtension(string path, string extension) { } + public override string Combine(params string[] paths) { } + public override string Combine(string path1, string path2) { } + public override string Combine(string path1, string path2, string path3) { } + public override string Combine(string path1, string path2, string path3, string path4) { } + public override bool EndsInDirectorySeparator(System.ReadOnlySpan path) { } + public override bool EndsInDirectorySeparator(string path) { } + public override System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path) { } + public override string GetDirectoryName(string path) { } + public override System.ReadOnlySpan GetExtension(System.ReadOnlySpan path) { } + public override string GetExtension(string path) { } + public override System.ReadOnlySpan GetFileName(System.ReadOnlySpan path) { } + public override string GetFileName(string path) { } + public override System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path) { } + public override string GetFileNameWithoutExtension(string path) { } + public override string GetFullPath(string path) { } + public override string GetFullPath(string path, string basePath) { } + public override char[] GetInvalidFileNameChars() { } + public override char[] GetInvalidPathChars() { } + public override System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path) { } + public override string GetPathRoot(string path) { } + public override string GetRandomFileName() { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + public override bool HasExtension(System.ReadOnlySpan path) { } + public override bool HasExtension(string path) { } + public override bool IsPathFullyQualified(System.ReadOnlySpan path) { } + public override bool IsPathFullyQualified(string path) { } + public override bool IsPathRooted(System.ReadOnlySpan path) { } + public override bool IsPathRooted(string path) { } + public override string Join(params string[] paths) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2) { } + public override string Join(string path1, string path2) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3) { } + public override string Join(string path1, string path2, string path3) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4) { } + public override string Join(string path1, string path2, string path3, string path4) { } + public override System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path) { } + public override string TrimEndingDirectorySeparator(string path) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) { } + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt new file mode 100644 index 000000000..ec7994c52 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt @@ -0,0 +1,867 @@ +[assembly: System.CLSCompliant(true)] +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName=".NET 8.0")] +namespace System.IO.Abstractions +{ + public static class DirectoryAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void CreateDirectory(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryBase : System.IO.Abstractions.IDirectory, System.IO.Abstractions.IFileSystemEntity + { + protected DirectoryBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path); + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode); + public abstract System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget); + public abstract System.IO.Abstractions.IDirectoryInfo CreateTempSubdirectory(string prefix = null); + public abstract void Delete(string path); + public abstract void Delete(string path, bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract bool Exists(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract string GetCurrentDirectory(); + public abstract string[] GetDirectories(string path); + public abstract string[] GetDirectories(string path, string searchPattern); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string GetDirectoryRoot(string path); + public abstract string[] GetFileSystemEntries(string path); + public abstract string[] GetFileSystemEntries(string path, string searchPattern); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string[] GetFiles(string path); + public abstract string[] GetFiles(string path, string searchPattern); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract string[] GetLogicalDrives(); + public abstract System.IO.Abstractions.IDirectoryInfo GetParent(string path); + public abstract void Move(string sourceDirName, string destDirName); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetCurrentDirectory(string path); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + } + public static class DirectoryInfoAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void Create(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IDirectoryInfo, System.IO.Abstractions.IFileSystemInfo + { + protected DirectoryInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Parent { get; } + public abstract System.IO.Abstractions.IDirectoryInfo Root { get; } + public abstract void Create(); + public abstract System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path); + public abstract void Delete(bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract void MoveTo(string destDirName); + public static System.IO.Abstractions.DirectoryInfoBase op_Implicit(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class DirectoryInfoWrapper : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public DirectoryInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DirectoryInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class DirectoryWrapper : System.IO.Abstractions.DirectoryBase + { + public DirectoryWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateTempSubdirectory(string prefix = null) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public abstract class DriveInfoBase : System.IO.Abstractions.IDriveInfo, System.IO.Abstractions.IFileSystemEntity + { + protected DriveInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract long AvailableFreeSpace { get; } + public abstract string DriveFormat { get; } + public abstract System.IO.DriveType DriveType { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract bool IsReady { get; } + public abstract string Name { get; } + public abstract System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public abstract long TotalFreeSpace { get; } + public abstract long TotalSize { get; } + public abstract string VolumeLabel { get; set; } + public static System.IO.Abstractions.DriveInfoBase op_Implicit(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class DriveInfoWrapper : System.IO.Abstractions.DriveInfoBase + { + public DriveInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DriveInfo instance) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + [set: System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + public static class FileAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileBase : System.IO.Abstractions.IFile, System.IO.Abstractions.IFileSystemEntity + { + protected FileBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void AppendAllText(string path, string contents); + public abstract void AppendAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.IO.StreamWriter AppendText(string path); + public abstract void Copy(string sourceFileName, string destFileName); + public abstract void Copy(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(string path); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options); + public abstract System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget); + public abstract System.IO.StreamWriter CreateText(string path); + public abstract void Decrypt(string path); + public abstract void Delete(string path); + public abstract void Encrypt(string path); + public abstract bool Exists(string path); + public abstract System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.IO.FileAttributes GetAttributes(string path); + public abstract System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.IO.UnixFileMode GetUnixFileMode(string path); + public abstract void Move(string sourceFileName, string destFileName); + public abstract void Move(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(string path); + public abstract System.IO.StreamReader OpenText(string path); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(string path); + public abstract byte[] ReadAllBytes(string path); + public abstract System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract string[] ReadAllLines(string path); + public abstract string[] ReadAllLines(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract string ReadAllText(string path); + public abstract string ReadAllText(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding); + public abstract System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget); + public abstract void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes); + public abstract void SetAttributes(string path, System.IO.FileAttributes fileAttributes); + public abstract void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + public abstract void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode); + public abstract void SetUnixFileMode(string path, System.IO.UnixFileMode mode); + public abstract void WriteAllBytes(string path, byte[] bytes); + public abstract System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void WriteAllLines(string path, string[] contents); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllText(string path, string contents); + public abstract void WriteAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + } + public static class FileInfoAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IFileInfo, System.IO.Abstractions.IFileSystemInfo + { + protected FileInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Directory { get; } + public abstract string DirectoryName { get; } + public abstract bool IsReadOnly { get; set; } + public abstract long Length { get; } + public abstract System.IO.StreamWriter AppendText(); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(); + public abstract System.IO.StreamWriter CreateText(); + public abstract void Decrypt(); + public abstract void Encrypt(); + public abstract void MoveTo(string destFileName); + public abstract void MoveTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(); + public abstract System.IO.StreamReader OpenText(); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public static System.IO.Abstractions.FileInfoBase op_Implicit(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class FileInfoWrapper : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public FileInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.StreamWriter CreateText() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Decrypt() { } + public override void Delete() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Encrypt() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override void MoveTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + public static class FileStreamAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public class FileSystem : System.IO.Abstractions.FileSystemBase + { + public FileSystem() { } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemBase : System.IO.Abstractions.IFileSystem + { + protected FileSystemBase() { } + public abstract System.IO.Abstractions.IDirectory Directory { get; } + public abstract System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public abstract System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public abstract System.IO.Abstractions.IFile File { get; } + public abstract System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public abstract System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public abstract System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public abstract System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public abstract System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemInfoBase : System.IO.Abstractions.IFileSystemInfo + { + protected FileSystemInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.FileAttributes Attributes { get; set; } + public abstract System.DateTime CreationTime { get; set; } + public abstract System.DateTime CreationTimeUtc { get; set; } + public abstract bool Exists { get; } + public abstract string Extension { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string FullName { get; } + public abstract System.DateTime LastAccessTime { get; set; } + public abstract System.DateTime LastAccessTimeUtc { get; set; } + public abstract System.DateTime LastWriteTime { get; set; } + public abstract System.DateTime LastWriteTimeUtc { get; set; } + public abstract string LinkTarget { get; } + public abstract string Name { get; } + [set: System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public System.IO.UnixFileMode UnixFileMode { get; set; } + public abstract void CreateAsSymbolicLink(string pathToTarget); + public abstract void Delete(); + public abstract void Refresh(); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget); + } + [System.Serializable] + public abstract class FileSystemWatcherBase : System.IDisposable, System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcher + { + protected FileSystemWatcherBase() { } + public abstract System.ComponentModel.IContainer Container { get; } + public abstract bool EnableRaisingEvents { get; set; } + public abstract System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string Filter { get; set; } + public abstract System.Collections.ObjectModel.Collection Filters { get; } + public abstract bool IncludeSubdirectories { get; set; } + public abstract int InternalBufferSize { get; set; } + public abstract System.IO.NotifyFilters NotifyFilter { get; set; } + public abstract string Path { get; set; } + public abstract System.ComponentModel.ISite Site { get; set; } + public abstract System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public virtual event System.IO.FileSystemEventHandler Changed; + public virtual event System.IO.FileSystemEventHandler Created; + public virtual event System.IO.FileSystemEventHandler Deleted; + public virtual event System.IO.ErrorEventHandler Error; + public virtual event System.IO.RenamedEventHandler Renamed; + public abstract void BeginInit(); + public void Dispose() { } + public virtual void Dispose(bool disposing) { } + public abstract void EndInit(); + protected void OnChanged(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnCreated(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnDeleted(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnError(object sender, System.IO.ErrorEventArgs args) { } + protected void OnRenamed(object sender, System.IO.RenamedEventArgs args) { } + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, System.TimeSpan timeout); + public static System.IO.Abstractions.FileSystemWatcherBase op_Implicit(System.IO.FileSystemWatcher watcher) { } + } + [System.Serializable] + public class FileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public FileSystemWatcherFactory(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class FileSystemWatcherWrapper : System.IO.Abstractions.FileSystemWatcherBase + { + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileSystemWatcher watcher) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path, string filter) { } + public override System.ComponentModel.IContainer Container { get; } + public override bool EnableRaisingEvents { get; set; } + public override System.IO.Abstractions.IFileSystem FileSystem { get; } + public override string Filter { get; set; } + public override System.Collections.ObjectModel.Collection Filters { get; } + public override bool IncludeSubdirectories { get; set; } + public override int InternalBufferSize { get; set; } + public override System.IO.NotifyFilters NotifyFilter { get; set; } + public override string Path { get; set; } + public override System.ComponentModel.ISite Site { get; set; } + public override System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public override void BeginInit() { } + public override void Dispose(bool disposing) { } + public override void EndInit() { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, System.TimeSpan timeout) { } + } + [System.Serializable] + public abstract class FileVersionInfoBase : System.IO.Abstractions.IFileVersionInfo + { + protected FileVersionInfoBase() { } + public abstract string Comments { get; } + public abstract string CompanyName { get; } + public abstract int FileBuildPart { get; } + public abstract string FileDescription { get; } + public abstract int FileMajorPart { get; } + public abstract int FileMinorPart { get; } + public abstract string FileName { get; } + public abstract int FilePrivatePart { get; } + public abstract string FileVersion { get; } + public abstract string InternalName { get; } + public abstract bool IsDebug { get; } + public abstract bool IsPatched { get; } + public abstract bool IsPreRelease { get; } + public abstract bool IsPrivateBuild { get; } + public abstract bool IsSpecialBuild { get; } + public abstract string Language { get; } + public abstract string LegalCopyright { get; } + public abstract string LegalTrademarks { get; } + public abstract string OriginalFilename { get; } + public abstract string PrivateBuild { get; } + public abstract int ProductBuildPart { get; } + public abstract int ProductMajorPart { get; } + public abstract int ProductMinorPart { get; } + public abstract string ProductName { get; } + public abstract int ProductPrivatePart { get; } + public abstract string ProductVersion { get; } + public abstract string SpecialBuild { get; } + public abstract string ToString(); + public static System.IO.Abstractions.FileVersionInfoBase op_Implicit(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + } + [System.Serializable] + public class FileVersionInfoWrapper : System.IO.Abstractions.FileVersionInfoBase + { + public FileVersionInfoWrapper(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class FileWrapper : System.IO.Abstractions.FileBase + { + public FileWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.StreamWriter CreateText(string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Decrypt(string path) { } + public override void Delete(string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override System.IO.UnixFileMode GetUnixFileMode(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override void Move(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override void SetUnixFileMode(string path, System.IO.UnixFileMode mode) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public abstract class PathBase : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IPath + { + protected PathBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract char AltDirectorySeparatorChar { get; } + public abstract char DirectorySeparatorChar { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public abstract char[] InvalidPathChars { get; } + public abstract char PathSeparator { get; } + public abstract char VolumeSeparatorChar { get; } + public abstract string ChangeExtension(string path, string extension); + public abstract string Combine(params string[] paths); + public abstract string Combine(string path1, string path2); + public abstract string Combine(string path1, string path2, string path3); + public abstract string Combine(string path1, string path2, string path3, string path4); + public abstract bool EndsInDirectorySeparator(System.ReadOnlySpan path); + public abstract bool EndsInDirectorySeparator(string path); + public abstract bool Exists(string path); + public abstract System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path); + public abstract string GetDirectoryName(string path); + public abstract System.ReadOnlySpan GetExtension(System.ReadOnlySpan path); + public abstract string GetExtension(string path); + public abstract System.ReadOnlySpan GetFileName(System.ReadOnlySpan path); + public abstract string GetFileName(string path); + public abstract System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path); + public abstract string GetFileNameWithoutExtension(string path); + public abstract string GetFullPath(string path); + public abstract string GetFullPath(string path, string basePath); + public abstract char[] GetInvalidFileNameChars(); + public abstract char[] GetInvalidPathChars(); + public abstract System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path); + public abstract string GetPathRoot(string path); + public abstract string GetRandomFileName(); + public abstract string GetRelativePath(string relativeTo, string path); + public abstract string GetTempFileName(); + public abstract string GetTempPath(); + public abstract bool HasExtension(System.ReadOnlySpan path); + public abstract bool HasExtension(string path); + public abstract bool IsPathFullyQualified(System.ReadOnlySpan path); + public abstract bool IsPathFullyQualified(string path); + public abstract bool IsPathRooted(System.ReadOnlySpan path); + public abstract bool IsPathRooted(string path); + public abstract string Join(params string[] paths); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2); + public abstract string Join(string path1, string path2); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3); + public abstract string Join(string path1, string path2, string path3); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4); + public abstract string Join(string path1, string path2, string path3, string path4); + public abstract System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path); + public abstract string TrimEndingDirectorySeparator(string path); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten); + } + [System.Serializable] + public class PathWrapper : System.IO.Abstractions.PathBase + { + public PathWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override char AltDirectorySeparatorChar { get; } + public override char DirectorySeparatorChar { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public override char[] InvalidPathChars { get; } + public override char PathSeparator { get; } + public override char VolumeSeparatorChar { get; } + public override string ChangeExtension(string path, string extension) { } + public override string Combine(params string[] paths) { } + public override string Combine(string path1, string path2) { } + public override string Combine(string path1, string path2, string path3) { } + public override string Combine(string path1, string path2, string path3, string path4) { } + public override bool EndsInDirectorySeparator(System.ReadOnlySpan path) { } + public override bool EndsInDirectorySeparator(string path) { } + public override bool Exists(string path) { } + public override System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path) { } + public override string GetDirectoryName(string path) { } + public override System.ReadOnlySpan GetExtension(System.ReadOnlySpan path) { } + public override string GetExtension(string path) { } + public override System.ReadOnlySpan GetFileName(System.ReadOnlySpan path) { } + public override string GetFileName(string path) { } + public override System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path) { } + public override string GetFileNameWithoutExtension(string path) { } + public override string GetFullPath(string path) { } + public override string GetFullPath(string path, string basePath) { } + public override char[] GetInvalidFileNameChars() { } + public override char[] GetInvalidPathChars() { } + public override System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path) { } + public override string GetPathRoot(string path) { } + public override string GetRandomFileName() { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + public override bool HasExtension(System.ReadOnlySpan path) { } + public override bool HasExtension(string path) { } + public override bool IsPathFullyQualified(System.ReadOnlySpan path) { } + public override bool IsPathFullyQualified(string path) { } + public override bool IsPathRooted(System.ReadOnlySpan path) { } + public override bool IsPathRooted(string path) { } + public override string Join(params string[] paths) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2) { } + public override string Join(string path1, string path2) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3) { } + public override string Join(string path1, string path2, string path3) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4) { } + public override string Join(string path1, string path2, string path3, string path4) { } + public override System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path) { } + public override string TrimEndingDirectorySeparator(string path) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) { } + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt new file mode 100644 index 000000000..c52feb76d --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt @@ -0,0 +1,899 @@ +[assembly: System.CLSCompliant(true)] +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] +namespace System.IO.Abstractions +{ + public static class DirectoryAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void CreateDirectory(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryBase : System.IO.Abstractions.IDirectory, System.IO.Abstractions.IFileSystemEntity + { + protected DirectoryBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path); + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode); + public abstract System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget); + public abstract System.IO.Abstractions.IDirectoryInfo CreateTempSubdirectory(string prefix = null); + public abstract void Delete(string path); + public abstract void Delete(string path, bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract bool Exists(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract string GetCurrentDirectory(); + public abstract string[] GetDirectories(string path); + public abstract string[] GetDirectories(string path, string searchPattern); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string GetDirectoryRoot(string path); + public abstract string[] GetFileSystemEntries(string path); + public abstract string[] GetFileSystemEntries(string path, string searchPattern); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string[] GetFiles(string path); + public abstract string[] GetFiles(string path, string searchPattern); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract string[] GetLogicalDrives(); + public abstract System.IO.Abstractions.IDirectoryInfo GetParent(string path); + public abstract void Move(string sourceDirName, string destDirName); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetCurrentDirectory(string path); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + } + public static class DirectoryInfoAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void Create(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IDirectoryInfo, System.IO.Abstractions.IFileSystemInfo + { + protected DirectoryInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Parent { get; } + public abstract System.IO.Abstractions.IDirectoryInfo Root { get; } + public abstract void Create(); + public abstract System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path); + public abstract void Delete(bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract void MoveTo(string destDirName); + public static System.IO.Abstractions.DirectoryInfoBase op_Implicit(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class DirectoryInfoWrapper : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public DirectoryInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DirectoryInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class DirectoryWrapper : System.IO.Abstractions.DirectoryBase + { + public DirectoryWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path, System.IO.UnixFileMode unixCreateMode) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.Abstractions.IDirectoryInfo CreateTempSubdirectory(string prefix = null) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public abstract class DriveInfoBase : System.IO.Abstractions.IDriveInfo, System.IO.Abstractions.IFileSystemEntity + { + protected DriveInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract long AvailableFreeSpace { get; } + public abstract string DriveFormat { get; } + public abstract System.IO.DriveType DriveType { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract bool IsReady { get; } + public abstract string Name { get; } + public abstract System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public abstract long TotalFreeSpace { get; } + public abstract long TotalSize { get; } + public abstract string VolumeLabel { get; set; } + public static System.IO.Abstractions.DriveInfoBase op_Implicit(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class DriveInfoWrapper : System.IO.Abstractions.DriveInfoBase + { + public DriveInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DriveInfo instance) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + [set: System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + public static class FileAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileBase : System.IO.Abstractions.IFile, System.IO.Abstractions.IFileSystemEntity + { + protected FileBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract void AppendAllBytes(string path, byte[] bytes); + public abstract void AppendAllBytes(string path, System.ReadOnlySpan bytes); + public abstract System.Threading.Tasks.Task AppendAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllBytesAsync(string path, System.ReadOnlyMemory bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void AppendAllText(string path, System.ReadOnlySpan contents); + public abstract void AppendAllText(string path, string contents); + public abstract void AppendAllText(string path, System.ReadOnlySpan contents, System.Text.Encoding encoding); + public abstract void AppendAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, System.ReadOnlyMemory contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, System.ReadOnlyMemory contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.IO.StreamWriter AppendText(string path); + public abstract void Copy(string sourceFileName, string destFileName); + public abstract void Copy(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(string path); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options); + public abstract System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget); + public abstract System.IO.StreamWriter CreateText(string path); + public abstract void Decrypt(string path); + public abstract void Delete(string path); + public abstract void Encrypt(string path); + public abstract bool Exists(string path); + public abstract System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.IO.FileAttributes GetAttributes(string path); + public abstract System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle); + public abstract System.IO.UnixFileMode GetUnixFileMode(string path); + public abstract void Move(string sourceFileName, string destFileName); + public abstract void Move(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(string path); + public abstract System.IO.StreamReader OpenText(string path); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(string path); + public abstract byte[] ReadAllBytes(string path); + public abstract System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract string[] ReadAllLines(string path); + public abstract string[] ReadAllLines(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract string ReadAllText(string path); + public abstract string ReadAllText(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding); + public abstract System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget); + public abstract void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes); + public abstract void SetAttributes(string path, System.IO.FileAttributes fileAttributes); + public abstract void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + public abstract void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode); + public abstract void SetUnixFileMode(string path, System.IO.UnixFileMode mode); + public abstract void WriteAllBytes(string path, byte[] bytes); + public abstract void WriteAllBytes(string path, System.ReadOnlySpan bytes); + public abstract System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllBytesAsync(string path, System.ReadOnlyMemory bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void WriteAllLines(string path, string[] contents); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllText(string path, System.ReadOnlySpan contents); + public abstract void WriteAllText(string path, string contents); + public abstract void WriteAllText(string path, System.ReadOnlySpan contents, System.Text.Encoding encoding); + public abstract void WriteAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, System.ReadOnlyMemory contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, System.ReadOnlyMemory contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + } + public static class FileInfoAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IFileInfo, System.IO.Abstractions.IFileSystemInfo + { + protected FileInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Directory { get; } + public abstract string DirectoryName { get; } + public abstract bool IsReadOnly { get; set; } + public abstract long Length { get; } + public abstract System.IO.StreamWriter AppendText(); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(); + public abstract System.IO.StreamWriter CreateText(); + public abstract void Decrypt(); + public abstract void Encrypt(); + public abstract void MoveTo(string destFileName); + public abstract void MoveTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(); + public abstract System.IO.StreamReader OpenText(); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public static System.IO.Abstractions.FileInfoBase op_Implicit(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class FileInfoWrapper : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public FileInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string LinkTarget { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override void CreateAsSymbolicLink(string pathToTarget) { } + public override System.IO.StreamWriter CreateText() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Decrypt() { } + public override void Delete() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Encrypt() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl() { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override void MoveTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public void SetAccessControl(object value) { } + public override string ToString() { } + } + public static class FileStreamAclExtensions + { + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public static void SetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public class FileSystem : System.IO.Abstractions.FileSystemBase + { + public FileSystem() { } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemBase : System.IO.Abstractions.IFileSystem + { + protected FileSystemBase() { } + public abstract System.IO.Abstractions.IDirectory Directory { get; } + public abstract System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public abstract System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public abstract System.IO.Abstractions.IFile File { get; } + public abstract System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public abstract System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public abstract System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public abstract System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public abstract System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemInfoBase : System.IO.Abstractions.IFileSystemInfo + { + protected FileSystemInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.FileAttributes Attributes { get; set; } + public abstract System.DateTime CreationTime { get; set; } + public abstract System.DateTime CreationTimeUtc { get; set; } + public abstract bool Exists { get; } + public abstract string Extension { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string FullName { get; } + public abstract System.DateTime LastAccessTime { get; set; } + public abstract System.DateTime LastAccessTimeUtc { get; set; } + public abstract System.DateTime LastWriteTime { get; set; } + public abstract System.DateTime LastWriteTimeUtc { get; set; } + public abstract string LinkTarget { get; } + public abstract string Name { get; } + [set: System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public System.IO.UnixFileMode UnixFileMode { get; set; } + public abstract void CreateAsSymbolicLink(string pathToTarget); + public abstract void Delete(); + public abstract void Refresh(); + public abstract System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(bool returnFinalTarget); + } + [System.Serializable] + public abstract class FileSystemWatcherBase : System.IDisposable, System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcher + { + protected FileSystemWatcherBase() { } + public abstract System.ComponentModel.IContainer Container { get; } + public abstract bool EnableRaisingEvents { get; set; } + public abstract System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string Filter { get; set; } + public abstract System.Collections.ObjectModel.Collection Filters { get; } + public abstract bool IncludeSubdirectories { get; set; } + public abstract int InternalBufferSize { get; set; } + public abstract System.IO.NotifyFilters NotifyFilter { get; set; } + public abstract string Path { get; set; } + public abstract System.ComponentModel.ISite Site { get; set; } + public abstract System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public virtual event System.IO.FileSystemEventHandler Changed; + public virtual event System.IO.FileSystemEventHandler Created; + public virtual event System.IO.FileSystemEventHandler Deleted; + public virtual event System.IO.ErrorEventHandler Error; + public virtual event System.IO.RenamedEventHandler Renamed; + public abstract void BeginInit(); + public void Dispose() { } + public virtual void Dispose(bool disposing) { } + public abstract void EndInit(); + protected void OnChanged(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnCreated(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnDeleted(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnError(object sender, System.IO.ErrorEventArgs args) { } + protected void OnRenamed(object sender, System.IO.RenamedEventArgs args) { } + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, System.TimeSpan timeout); + public static System.IO.Abstractions.FileSystemWatcherBase op_Implicit(System.IO.FileSystemWatcher watcher) { } + } + [System.Serializable] + public class FileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public FileSystemWatcherFactory(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class FileSystemWatcherWrapper : System.IO.Abstractions.FileSystemWatcherBase + { + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileSystemWatcher watcher) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path, string filter) { } + public override System.ComponentModel.IContainer Container { get; } + public override bool EnableRaisingEvents { get; set; } + public override System.IO.Abstractions.IFileSystem FileSystem { get; } + public override string Filter { get; set; } + public override System.Collections.ObjectModel.Collection Filters { get; } + public override bool IncludeSubdirectories { get; set; } + public override int InternalBufferSize { get; set; } + public override System.IO.NotifyFilters NotifyFilter { get; set; } + public override string Path { get; set; } + public override System.ComponentModel.ISite Site { get; set; } + public override System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public override void BeginInit() { } + public override void Dispose(bool disposing) { } + public override void EndInit() { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, System.TimeSpan timeout) { } + } + [System.Serializable] + public abstract class FileVersionInfoBase : System.IO.Abstractions.IFileVersionInfo + { + protected FileVersionInfoBase() { } + public abstract string Comments { get; } + public abstract string CompanyName { get; } + public abstract int FileBuildPart { get; } + public abstract string FileDescription { get; } + public abstract int FileMajorPart { get; } + public abstract int FileMinorPart { get; } + public abstract string FileName { get; } + public abstract int FilePrivatePart { get; } + public abstract string FileVersion { get; } + public abstract string InternalName { get; } + public abstract bool IsDebug { get; } + public abstract bool IsPatched { get; } + public abstract bool IsPreRelease { get; } + public abstract bool IsPrivateBuild { get; } + public abstract bool IsSpecialBuild { get; } + public abstract string Language { get; } + public abstract string LegalCopyright { get; } + public abstract string LegalTrademarks { get; } + public abstract string OriginalFilename { get; } + public abstract string PrivateBuild { get; } + public abstract int ProductBuildPart { get; } + public abstract int ProductMajorPart { get; } + public abstract int ProductMinorPart { get; } + public abstract string ProductName { get; } + public abstract int ProductPrivatePart { get; } + public abstract string ProductVersion { get; } + public abstract string SpecialBuild { get; } + public abstract string ToString(); + public static System.IO.Abstractions.FileVersionInfoBase op_Implicit(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + } + [System.Serializable] + public class FileVersionInfoWrapper : System.IO.Abstractions.FileVersionInfoBase + { + public FileVersionInfoWrapper(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class FileWrapper : System.IO.Abstractions.FileBase + { + public FileWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override void AppendAllBytes(string path, byte[] bytes) { } + public override void AppendAllBytes(string path, System.ReadOnlySpan bytes) { } + public override System.Threading.Tasks.Task AppendAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllBytesAsync(string path, System.ReadOnlyMemory bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, System.ReadOnlySpan contents) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, System.ReadOnlySpan contents, System.Text.Encoding encoding) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, System.ReadOnlyMemory contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, System.ReadOnlyMemory contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.Abstractions.IFileSystemInfo CreateSymbolicLink(string path, string pathToTarget) { } + public override System.IO.StreamWriter CreateText(string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Decrypt(string path) { } + public override void Delete(string path) { } + [System.Runtime.Versioning.SupportedOSPlatform("windows")] + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override System.IO.UnixFileMode GetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override System.IO.UnixFileMode GetUnixFileMode(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override void Move(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileStreamOptions options) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IAsyncEnumerable ReadLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override System.IO.Abstractions.IFileSystemInfo ResolveLinkTarget(string linkPath, bool returnFinalTarget) { } + public override void SetAttributes(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.FileAttributes fileAttributes) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTime) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime creationTimeUtc) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTime) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastAccessTimeUtc) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTime) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.DateTime lastWriteTimeUtc) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override void SetUnixFileMode(Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, System.IO.UnixFileMode mode) { } + [System.Runtime.Versioning.UnsupportedOSPlatform("windows")] + public override void SetUnixFileMode(string path, System.IO.UnixFileMode mode) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override void WriteAllBytes(string path, System.ReadOnlySpan bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, System.ReadOnlyMemory bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, System.ReadOnlySpan contents) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, System.ReadOnlySpan contents, System.Text.Encoding encoding) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, System.ReadOnlyMemory contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, System.ReadOnlyMemory contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public abstract class PathBase : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IPath + { + protected PathBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract char AltDirectorySeparatorChar { get; } + public abstract char DirectorySeparatorChar { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public abstract char[] InvalidPathChars { get; } + public abstract char PathSeparator { get; } + public abstract char VolumeSeparatorChar { get; } + public abstract string ChangeExtension(string path, string extension); + public abstract string Combine([System.Runtime.CompilerServices.ScopedRef] System.ReadOnlySpan paths); + public abstract string Combine(params string[] paths); + public abstract string Combine(string path1, string path2); + public abstract string Combine(string path1, string path2, string path3); + public abstract string Combine(string path1, string path2, string path3, string path4); + public abstract bool EndsInDirectorySeparator(System.ReadOnlySpan path); + public abstract bool EndsInDirectorySeparator(string path); + public abstract bool Exists(string path); + public abstract System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path); + public abstract string GetDirectoryName(string path); + public abstract System.ReadOnlySpan GetExtension(System.ReadOnlySpan path); + public abstract string GetExtension(string path); + public abstract System.ReadOnlySpan GetFileName(System.ReadOnlySpan path); + public abstract string GetFileName(string path); + public abstract System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path); + public abstract string GetFileNameWithoutExtension(string path); + public abstract string GetFullPath(string path); + public abstract string GetFullPath(string path, string basePath); + public abstract char[] GetInvalidFileNameChars(); + public abstract char[] GetInvalidPathChars(); + public abstract System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path); + public abstract string GetPathRoot(string path); + public abstract string GetRandomFileName(); + public abstract string GetRelativePath(string relativeTo, string path); + public abstract string GetTempFileName(); + public abstract string GetTempPath(); + public abstract bool HasExtension(System.ReadOnlySpan path); + public abstract bool HasExtension(string path); + public abstract bool IsPathFullyQualified(System.ReadOnlySpan path); + public abstract bool IsPathFullyQualified(string path); + public abstract bool IsPathRooted(System.ReadOnlySpan path); + public abstract bool IsPathRooted(string path); + public abstract string Join([System.Runtime.CompilerServices.ScopedRef] System.ReadOnlySpan paths); + public abstract string Join(params string[] paths); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2); + public abstract string Join(string path1, string path2); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3); + public abstract string Join(string path1, string path2, string path3); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4); + public abstract string Join(string path1, string path2, string path3, string path4); + public abstract System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path); + public abstract string TrimEndingDirectorySeparator(string path); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten); + } + [System.Serializable] + public class PathWrapper : System.IO.Abstractions.PathBase + { + public PathWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override char AltDirectorySeparatorChar { get; } + public override char DirectorySeparatorChar { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public override char[] InvalidPathChars { get; } + public override char PathSeparator { get; } + public override char VolumeSeparatorChar { get; } + public override string ChangeExtension(string path, string extension) { } + public override string Combine([System.Runtime.CompilerServices.ScopedRef] System.ReadOnlySpan paths) { } + public override string Combine(params string[] paths) { } + public override string Combine(string path1, string path2) { } + public override string Combine(string path1, string path2, string path3) { } + public override string Combine(string path1, string path2, string path3, string path4) { } + public override bool EndsInDirectorySeparator(System.ReadOnlySpan path) { } + public override bool EndsInDirectorySeparator(string path) { } + public override bool Exists(string path) { } + public override System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path) { } + public override string GetDirectoryName(string path) { } + public override System.ReadOnlySpan GetExtension(System.ReadOnlySpan path) { } + public override string GetExtension(string path) { } + public override System.ReadOnlySpan GetFileName(System.ReadOnlySpan path) { } + public override string GetFileName(string path) { } + public override System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path) { } + public override string GetFileNameWithoutExtension(string path) { } + public override string GetFullPath(string path) { } + public override string GetFullPath(string path, string basePath) { } + public override char[] GetInvalidFileNameChars() { } + public override char[] GetInvalidPathChars() { } + public override System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path) { } + public override string GetPathRoot(string path) { } + public override string GetRandomFileName() { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + public override bool HasExtension(System.ReadOnlySpan path) { } + public override bool HasExtension(string path) { } + public override bool IsPathFullyQualified(System.ReadOnlySpan path) { } + public override bool IsPathFullyQualified(string path) { } + public override bool IsPathRooted(System.ReadOnlySpan path) { } + public override bool IsPathRooted(string path) { } + public override string Join([System.Runtime.CompilerServices.ScopedRef] System.ReadOnlySpan paths) { } + public override string Join(params string[] paths) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2) { } + public override string Join(string path1, string path2) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3) { } + public override string Join(string path1, string path2, string path3) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.ReadOnlySpan path4) { } + public override string Join(string path1, string path2, string path3, string path4) { } + public override System.ReadOnlySpan TrimEndingDirectorySeparator(System.ReadOnlySpan path) { } + public override string TrimEndingDirectorySeparator(string path) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) { } + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt new file mode 100644 index 000000000..215c9a7a8 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt @@ -0,0 +1,658 @@ +[assembly: System.CLSCompliant(true)] +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")] +namespace System.IO.Abstractions +{ + public static class DirectoryAclExtensions + { + public static void CreateDirectory(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryBase : System.IO.Abstractions.IDirectory, System.IO.Abstractions.IFileSystemEntity + { + protected DirectoryBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path); + public abstract void Delete(string path); + public abstract void Delete(string path, bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract bool Exists(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract string GetCurrentDirectory(); + public abstract string[] GetDirectories(string path); + public abstract string[] GetDirectories(string path, string searchPattern); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string GetDirectoryRoot(string path); + public abstract string[] GetFileSystemEntries(string path); + public abstract string[] GetFileSystemEntries(string path, string searchPattern); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string[] GetFiles(string path); + public abstract string[] GetFiles(string path, string searchPattern); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract string[] GetLogicalDrives(); + public abstract System.IO.Abstractions.IDirectoryInfo GetParent(string path); + public abstract void Move(string sourceDirName, string destDirName); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetCurrentDirectory(string path); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + } + public static class DirectoryInfoAclExtensions + { + public static void Create(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IDirectoryInfo, System.IO.Abstractions.IFileSystemInfo + { + protected DirectoryInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Parent { get; } + public abstract System.IO.Abstractions.IDirectoryInfo Root { get; } + public abstract void Create(); + public abstract System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path); + public abstract void Delete(bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract void MoveTo(string destDirName); + public static System.IO.Abstractions.DirectoryInfoBase op_Implicit(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class DirectoryInfoWrapper : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public DirectoryInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DirectoryInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class DirectoryWrapper : System.IO.Abstractions.DirectoryBase + { + public DirectoryWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public abstract class DriveInfoBase : System.IO.Abstractions.IDriveInfo, System.IO.Abstractions.IFileSystemEntity + { + protected DriveInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract long AvailableFreeSpace { get; } + public abstract string DriveFormat { get; } + public abstract System.IO.DriveType DriveType { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract bool IsReady { get; } + public abstract string Name { get; } + public abstract System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public abstract long TotalFreeSpace { get; } + public abstract long TotalSize { get; } + public abstract string VolumeLabel { get; set; } + public static System.IO.Abstractions.DriveInfoBase op_Implicit(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class DriveInfoWrapper : System.IO.Abstractions.DriveInfoBase + { + public DriveInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DriveInfo instance) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + public static class FileAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path) { } + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileBase : System.IO.Abstractions.IFile, System.IO.Abstractions.IFileSystemEntity + { + protected FileBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void AppendAllText(string path, string contents); + public abstract void AppendAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.IO.StreamWriter AppendText(string path); + public abstract void Copy(string sourceFileName, string destFileName); + public abstract void Copy(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(string path); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options); + public abstract System.IO.StreamWriter CreateText(string path); + public abstract void Decrypt(string path); + public abstract void Delete(string path); + public abstract void Encrypt(string path); + public abstract bool Exists(string path); + public abstract System.IO.FileAttributes GetAttributes(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract void Move(string sourceFileName, string destFileName); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(string path); + public abstract System.IO.StreamReader OpenText(string path); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(string path); + public abstract byte[] ReadAllBytes(string path); + public abstract string[] ReadAllLines(string path); + public abstract string[] ReadAllLines(string path, System.Text.Encoding encoding); + public abstract string ReadAllText(string path); + public abstract string ReadAllText(string path, System.Text.Encoding encoding); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public abstract void SetAttributes(string path, System.IO.FileAttributes fileAttributes); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + public abstract void WriteAllBytes(string path, byte[] bytes); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void WriteAllLines(string path, string[] contents); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding); + public abstract void WriteAllText(string path, string contents); + public abstract void WriteAllText(string path, string contents, System.Text.Encoding encoding); + } + public static class FileInfoAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo) { } + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IFileInfo, System.IO.Abstractions.IFileSystemInfo + { + protected FileInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Directory { get; } + public abstract string DirectoryName { get; } + public abstract bool IsReadOnly { get; set; } + public abstract long Length { get; } + public abstract System.IO.StreamWriter AppendText(); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(); + public abstract System.IO.StreamWriter CreateText(); + public abstract void Decrypt(); + public abstract void Encrypt(); + public abstract void MoveTo(string destFileName); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(); + public abstract System.IO.StreamReader OpenText(); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public static System.IO.Abstractions.FileInfoBase op_Implicit(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class FileInfoWrapper : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public FileInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + public static class FileStreamAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream) { } + public static void SetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public class FileSystem : System.IO.Abstractions.FileSystemBase + { + public FileSystem() { } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemBase : System.IO.Abstractions.IFileSystem + { + protected FileSystemBase() { } + public abstract System.IO.Abstractions.IDirectory Directory { get; } + public abstract System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public abstract System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public abstract System.IO.Abstractions.IFile File { get; } + public abstract System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public abstract System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public abstract System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public abstract System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public abstract System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemInfoBase : System.IO.Abstractions.IFileSystemInfo + { + protected FileSystemInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.FileAttributes Attributes { get; set; } + public abstract System.DateTime CreationTime { get; set; } + public abstract System.DateTime CreationTimeUtc { get; set; } + public abstract bool Exists { get; } + public abstract string Extension { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string FullName { get; } + public abstract System.DateTime LastAccessTime { get; set; } + public abstract System.DateTime LastAccessTimeUtc { get; set; } + public abstract System.DateTime LastWriteTime { get; set; } + public abstract System.DateTime LastWriteTimeUtc { get; set; } + public abstract string Name { get; } + public abstract void Delete(); + public abstract void Refresh(); + } + [System.Serializable] + public abstract class FileSystemWatcherBase : System.IDisposable, System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcher + { + protected FileSystemWatcherBase() { } + public abstract System.ComponentModel.IContainer Container { get; } + public abstract bool EnableRaisingEvents { get; set; } + public abstract System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string Filter { get; set; } + public abstract bool IncludeSubdirectories { get; set; } + public abstract int InternalBufferSize { get; set; } + public abstract System.IO.NotifyFilters NotifyFilter { get; set; } + public abstract string Path { get; set; } + public abstract System.ComponentModel.ISite Site { get; set; } + public abstract System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public virtual event System.IO.FileSystemEventHandler Changed; + public virtual event System.IO.FileSystemEventHandler Created; + public virtual event System.IO.FileSystemEventHandler Deleted; + public virtual event System.IO.ErrorEventHandler Error; + public virtual event System.IO.RenamedEventHandler Renamed; + public abstract void BeginInit(); + public void Dispose() { } + public virtual void Dispose(bool disposing) { } + public abstract void EndInit(); + protected void OnChanged(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnCreated(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnDeleted(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnError(object sender, System.IO.ErrorEventArgs args) { } + protected void OnRenamed(object sender, System.IO.RenamedEventArgs args) { } + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout); + public static System.IO.Abstractions.FileSystemWatcherBase op_Implicit(System.IO.FileSystemWatcher watcher) { } + } + [System.Serializable] + public class FileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public FileSystemWatcherFactory(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class FileSystemWatcherWrapper : System.IO.Abstractions.FileSystemWatcherBase + { + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileSystemWatcher watcher) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path, string filter) { } + public override System.ComponentModel.IContainer Container { get; } + public override bool EnableRaisingEvents { get; set; } + public override System.IO.Abstractions.IFileSystem FileSystem { get; } + public override string Filter { get; set; } + public override bool IncludeSubdirectories { get; set; } + public override int InternalBufferSize { get; set; } + public override System.IO.NotifyFilters NotifyFilter { get; set; } + public override string Path { get; set; } + public override System.ComponentModel.ISite Site { get; set; } + public override System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public override void BeginInit() { } + public override void Dispose(bool disposing) { } + public override void EndInit() { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { } + } + [System.Serializable] + public abstract class FileVersionInfoBase : System.IO.Abstractions.IFileVersionInfo + { + protected FileVersionInfoBase() { } + public abstract string Comments { get; } + public abstract string CompanyName { get; } + public abstract int FileBuildPart { get; } + public abstract string FileDescription { get; } + public abstract int FileMajorPart { get; } + public abstract int FileMinorPart { get; } + public abstract string FileName { get; } + public abstract int FilePrivatePart { get; } + public abstract string FileVersion { get; } + public abstract string InternalName { get; } + public abstract bool IsDebug { get; } + public abstract bool IsPatched { get; } + public abstract bool IsPreRelease { get; } + public abstract bool IsPrivateBuild { get; } + public abstract bool IsSpecialBuild { get; } + public abstract string Language { get; } + public abstract string LegalCopyright { get; } + public abstract string LegalTrademarks { get; } + public abstract string OriginalFilename { get; } + public abstract string PrivateBuild { get; } + public abstract int ProductBuildPart { get; } + public abstract int ProductMajorPart { get; } + public abstract int ProductMinorPart { get; } + public abstract string ProductName { get; } + public abstract int ProductPrivatePart { get; } + public abstract string ProductVersion { get; } + public abstract string SpecialBuild { get; } + public abstract string ToString(); + public static System.IO.Abstractions.FileVersionInfoBase op_Implicit(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + } + [System.Serializable] + public class FileVersionInfoWrapper : System.IO.Abstractions.FileVersionInfoBase + { + public FileVersionInfoWrapper(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class FileWrapper : System.IO.Abstractions.FileBase + { + public FileWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + } + [System.Serializable] + public abstract class PathBase : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IPath + { + protected PathBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract char AltDirectorySeparatorChar { get; } + public abstract char DirectorySeparatorChar { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public abstract char[] InvalidPathChars { get; } + public abstract char PathSeparator { get; } + public abstract char VolumeSeparatorChar { get; } + public abstract string ChangeExtension(string path, string extension); + public abstract string Combine(params string[] paths); + public abstract string Combine(string path1, string path2); + public abstract string Combine(string path1, string path2, string path3); + public abstract string Combine(string path1, string path2, string path3, string path4); + public abstract string GetDirectoryName(string path); + public abstract string GetExtension(string path); + public abstract string GetFileName(string path); + public abstract string GetFileNameWithoutExtension(string path); + public abstract string GetFullPath(string path); + public abstract char[] GetInvalidFileNameChars(); + public abstract char[] GetInvalidPathChars(); + public abstract string GetPathRoot(string path); + public abstract string GetRandomFileName(); + public abstract string GetTempFileName(); + public abstract string GetTempPath(); + public abstract bool HasExtension(string path); + public abstract bool IsPathRooted(string path); + } + [System.Serializable] + public class PathWrapper : System.IO.Abstractions.PathBase + { + public PathWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override char AltDirectorySeparatorChar { get; } + public override char DirectorySeparatorChar { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public override char[] InvalidPathChars { get; } + public override char PathSeparator { get; } + public override char VolumeSeparatorChar { get; } + public override string ChangeExtension(string path, string extension) { } + public override string Combine(params string[] paths) { } + public override string Combine(string path1, string path2) { } + public override string Combine(string path1, string path2, string path3) { } + public override string Combine(string path1, string path2, string path3, string path4) { } + public override string GetDirectoryName(string path) { } + public override string GetExtension(string path) { } + public override string GetFileName(string path) { } + public override string GetFileNameWithoutExtension(string path) { } + public override string GetFullPath(string path) { } + public override char[] GetInvalidFileNameChars() { } + public override char[] GetInvalidPathChars() { } + public override string GetPathRoot(string path) { } + public override string GetRandomFileName() { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + public override bool HasExtension(string path) { } + public override bool IsPathRooted(string path) { } + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt new file mode 100644 index 000000000..8ec4263eb --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt @@ -0,0 +1,740 @@ +[assembly: System.CLSCompliant(true)] +[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName=".NET Standard 2.1")] +namespace System.IO.Abstractions +{ + public static class DirectoryAclExtensions + { + public static void CreateDirectory(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IDirectory directory, string path, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryBase : System.IO.Abstractions.IDirectory, System.IO.Abstractions.IFileSystemEntity + { + protected DirectoryBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path); + public abstract void Delete(string path); + public abstract void Delete(string path, bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract bool Exists(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract string GetCurrentDirectory(); + public abstract string[] GetDirectories(string path); + public abstract string[] GetDirectories(string path, string searchPattern); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string GetDirectoryRoot(string path); + public abstract string[] GetFileSystemEntries(string path); + public abstract string[] GetFileSystemEntries(string path, string searchPattern); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract string[] GetFiles(string path); + public abstract string[] GetFiles(string path, string searchPattern); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract string[] GetLogicalDrives(); + public abstract System.IO.Abstractions.IDirectoryInfo GetParent(string path); + public abstract void Move(string sourceDirName, string destDirName); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetCurrentDirectory(string path); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + } + public static class DirectoryInfoAclExtensions + { + public static void Create(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo) { } + public static System.Security.AccessControl.DirectorySecurity GetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IDirectoryInfo directoryInfo, System.Security.AccessControl.DirectorySecurity directorySecurity) { } + } + [System.Serializable] + public abstract class DirectoryInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IDirectoryInfo, System.IO.Abstractions.IFileSystemInfo + { + protected DirectoryInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Parent { get; } + public abstract System.IO.Abstractions.IDirectoryInfo Root { get; } + public abstract void Create(); + public abstract System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path); + public abstract void Delete(bool recursive); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions); + public abstract System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption); + public abstract void MoveTo(string destDirName); + public static System.IO.Abstractions.DirectoryInfoBase op_Implicit(System.IO.DirectoryInfo directoryInfo) { } + } + [System.Serializable] + public class DirectoryInfoWrapper : System.IO.Abstractions.DirectoryInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public DirectoryInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DirectoryInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo Parent { get; } + public override System.IO.Abstractions.IDirectoryInfo Root { get; } + public override void Create() { } + public override System.IO.Abstractions.IDirectoryInfo CreateSubdirectory(string path) { } + public override void Delete() { } + public override void Delete(bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories() { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos() { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles() { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories() { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IDirectoryInfo[] GetDirectories(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos() { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles() { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.IO.Abstractions.IFileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption) { } + public override void MoveTo(string destDirName) { } + public override void Refresh() { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + [System.Serializable] + public class DirectoryWrapper : System.IO.Abstractions.DirectoryBase + { + public DirectoryWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override System.IO.Abstractions.IDirectoryInfo CreateDirectory(string path) { } + public override void Delete(string path) { } + public override void Delete(string path, bool recursive) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override System.Collections.Generic.IEnumerable EnumerateFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override bool Exists(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override string GetCurrentDirectory() { } + public override string[] GetDirectories(string path) { } + public override string[] GetDirectories(string path, string searchPattern) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string GetDirectoryRoot(string path) { } + public override string[] GetFileSystemEntries(string path) { } + public override string[] GetFileSystemEntries(string path, string searchPattern) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override string[] GetFiles(string path) { } + public override string[] GetFiles(string path, string searchPattern) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions) { } + public override string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override string[] GetLogicalDrives() { } + public override System.IO.Abstractions.IDirectoryInfo GetParent(string path) { } + public override void Move(string sourceDirName, string destDirName) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetCurrentDirectory(string path) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + } + [System.Serializable] + public abstract class DriveInfoBase : System.IO.Abstractions.IDriveInfo, System.IO.Abstractions.IFileSystemEntity + { + protected DriveInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract long AvailableFreeSpace { get; } + public abstract string DriveFormat { get; } + public abstract System.IO.DriveType DriveType { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract bool IsReady { get; } + public abstract string Name { get; } + public abstract System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public abstract long TotalFreeSpace { get; } + public abstract long TotalSize { get; } + public abstract string VolumeLabel { get; set; } + public static System.IO.Abstractions.DriveInfoBase op_Implicit(System.IO.DriveInfo driveInfo) { } + } + [System.Serializable] + public class DriveInfoWrapper : System.IO.Abstractions.DriveInfoBase + { + public DriveInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.DriveInfo instance) { } + public override long AvailableFreeSpace { get; } + public override string DriveFormat { get; } + public override System.IO.DriveType DriveType { get; } + public override bool IsReady { get; } + public override string Name { get; } + public override System.IO.Abstractions.IDirectoryInfo RootDirectory { get; } + public override long TotalFreeSpace { get; } + public override long TotalSize { get; } + public override string VolumeLabel { get; set; } + public override string ToString() { } + } + public static class FileAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path) { } + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IFile file, string path, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileBase : System.IO.Abstractions.IFile, System.IO.Abstractions.IFileSystemEntity + { + protected FileBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void AppendAllText(string path, string contents); + public abstract void AppendAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.IO.StreamWriter AppendText(string path); + public abstract void Copy(string sourceFileName, string destFileName); + public abstract void Copy(string sourceFileName, string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(string path); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize); + public abstract System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options); + public abstract System.IO.StreamWriter CreateText(string path); + public abstract void Decrypt(string path); + public abstract void Delete(string path); + public abstract void Encrypt(string path); + public abstract bool Exists(string path); + public abstract System.IO.FileAttributes GetAttributes(string path); + public abstract System.DateTime GetCreationTime(string path); + public abstract System.DateTime GetCreationTimeUtc(string path); + public abstract System.DateTime GetLastAccessTime(string path); + public abstract System.DateTime GetLastAccessTimeUtc(string path); + public abstract System.DateTime GetLastWriteTime(string path); + public abstract System.DateTime GetLastWriteTimeUtc(string path); + public abstract void Move(string sourceFileName, string destFileName); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(string path); + public abstract System.IO.StreamReader OpenText(string path); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(string path); + public abstract byte[] ReadAllBytes(string path); + public abstract System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract string[] ReadAllLines(string path); + public abstract string[] ReadAllLines(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract string ReadAllText(string path); + public abstract string ReadAllText(string path, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path); + public abstract System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName); + public abstract void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public abstract void SetAttributes(string path, System.IO.FileAttributes fileAttributes); + public abstract void SetCreationTime(string path, System.DateTime creationTime); + public abstract void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc); + public abstract void SetLastAccessTime(string path, System.DateTime lastAccessTime); + public abstract void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc); + public abstract void SetLastWriteTime(string path, System.DateTime lastWriteTime); + public abstract void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc); + public abstract void WriteAllBytes(string path, byte[] bytes); + public abstract System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents); + public abstract void WriteAllLines(string path, string[] contents); + public abstract void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding); + public abstract void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + public abstract void WriteAllText(string path, string contents); + public abstract void WriteAllText(string path, string contents, System.Text.Encoding encoding); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default); + public abstract System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default); + } + public static class FileInfoAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo) { } + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.AccessControlSections includeSections) { } + public static void SetAccessControl(this System.IO.Abstractions.IFileInfo fileInfo, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public abstract class FileInfoBase : System.IO.Abstractions.FileSystemInfoBase, System.IO.Abstractions.IFileInfo, System.IO.Abstractions.IFileSystemInfo + { + protected FileInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.Abstractions.IDirectoryInfo Directory { get; } + public abstract string DirectoryName { get; } + public abstract bool IsReadOnly { get; set; } + public abstract long Length { get; } + public abstract System.IO.StreamWriter AppendText(); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName); + public abstract System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite); + public abstract System.IO.Abstractions.FileSystemStream Create(); + public abstract System.IO.StreamWriter CreateText(); + public abstract void Decrypt(); + public abstract void Encrypt(); + public abstract void MoveTo(string destFileName); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access); + public abstract System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share); + public abstract System.IO.Abstractions.FileSystemStream OpenRead(); + public abstract System.IO.StreamReader OpenText(); + public abstract System.IO.Abstractions.FileSystemStream OpenWrite(); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName); + public abstract System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); + public static System.IO.Abstractions.FileInfoBase op_Implicit(System.IO.FileInfo fileInfo) { } + } + [System.Serializable] + public class FileInfoWrapper : System.IO.Abstractions.FileInfoBase, System.IO.Abstractions.IFileSystemAclSupport + { + public FileInfoWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileInfo instance) { } + public override System.IO.FileAttributes Attributes { get; set; } + public override System.DateTime CreationTime { get; set; } + public override System.DateTime CreationTimeUtc { get; set; } + public override System.IO.Abstractions.IDirectoryInfo Directory { get; } + public override string DirectoryName { get; } + public override bool Exists { get; } + public override string Extension { get; } + public override string FullName { get; } + public override bool IsReadOnly { get; set; } + public override System.DateTime LastAccessTime { get; set; } + public override System.DateTime LastAccessTimeUtc { get; set; } + public override System.DateTime LastWriteTime { get; set; } + public override System.DateTime LastWriteTimeUtc { get; set; } + public override long Length { get; } + public override string Name { get; } + public override System.IO.StreamWriter AppendText() { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName) { } + public override System.IO.Abstractions.IFileInfo CopyTo(string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create() { } + public override System.IO.StreamWriter CreateText() { } + public override void Decrypt() { } + public override void Delete() { } + public override void Encrypt() { } + public object GetAccessControl() { } + public object GetAccessControl(System.IO.Abstractions.IFileSystemAclSupport.AccessControlSections includeSections) { } + public override void MoveTo(string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead() { } + public override System.IO.StreamReader OpenText() { } + public override System.IO.Abstractions.FileSystemStream OpenWrite() { } + public override void Refresh() { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName) { } + public override System.IO.Abstractions.IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public void SetAccessControl(object value) { } + public override string ToString() { } + } + public static class FileStreamAclExtensions + { + public static System.Security.AccessControl.FileSecurity GetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream) { } + public static void SetAccessControl(this System.IO.Abstractions.FileSystemStream fileStream, System.Security.AccessControl.FileSecurity fileSecurity) { } + } + [System.Serializable] + public class FileSystem : System.IO.Abstractions.FileSystemBase + { + public FileSystem() { } + public override System.IO.Abstractions.IDirectory Directory { get; } + public override System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public override System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public override System.IO.Abstractions.IFile File { get; } + public override System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public override System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public override System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public override System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public override System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemBase : System.IO.Abstractions.IFileSystem + { + protected FileSystemBase() { } + public abstract System.IO.Abstractions.IDirectory Directory { get; } + public abstract System.IO.Abstractions.IDirectoryInfoFactory DirectoryInfo { get; } + public abstract System.IO.Abstractions.IDriveInfoFactory DriveInfo { get; } + public abstract System.IO.Abstractions.IFile File { get; } + public abstract System.IO.Abstractions.IFileInfoFactory FileInfo { get; } + public abstract System.IO.Abstractions.IFileStreamFactory FileStream { get; } + public abstract System.IO.Abstractions.IFileSystemWatcherFactory FileSystemWatcher { get; } + public abstract System.IO.Abstractions.IFileVersionInfoFactory FileVersionInfo { get; } + public abstract System.IO.Abstractions.IPath Path { get; } + } + [System.Serializable] + public abstract class FileSystemInfoBase : System.IO.Abstractions.IFileSystemInfo + { + protected FileSystemInfoBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract System.IO.FileAttributes Attributes { get; set; } + public abstract System.DateTime CreationTime { get; set; } + public abstract System.DateTime CreationTimeUtc { get; set; } + public abstract bool Exists { get; } + public abstract string Extension { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string FullName { get; } + public abstract System.DateTime LastAccessTime { get; set; } + public abstract System.DateTime LastAccessTimeUtc { get; set; } + public abstract System.DateTime LastWriteTime { get; set; } + public abstract System.DateTime LastWriteTimeUtc { get; set; } + public abstract string Name { get; } + public abstract void Delete(); + public abstract void Refresh(); + } + [System.Serializable] + public abstract class FileSystemWatcherBase : System.IDisposable, System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcher + { + protected FileSystemWatcherBase() { } + public abstract System.ComponentModel.IContainer Container { get; } + public abstract bool EnableRaisingEvents { get; set; } + public abstract System.IO.Abstractions.IFileSystem FileSystem { get; } + public abstract string Filter { get; set; } + public abstract bool IncludeSubdirectories { get; set; } + public abstract int InternalBufferSize { get; set; } + public abstract System.IO.NotifyFilters NotifyFilter { get; set; } + public abstract string Path { get; set; } + public abstract System.ComponentModel.ISite Site { get; set; } + public abstract System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public virtual event System.IO.FileSystemEventHandler Changed; + public virtual event System.IO.FileSystemEventHandler Created; + public virtual event System.IO.FileSystemEventHandler Deleted; + public virtual event System.IO.ErrorEventHandler Error; + public virtual event System.IO.RenamedEventHandler Renamed; + public abstract void BeginInit(); + public void Dispose() { } + public virtual void Dispose(bool disposing) { } + public abstract void EndInit(); + protected void OnChanged(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnCreated(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnDeleted(object sender, System.IO.FileSystemEventArgs args) { } + protected void OnError(object sender, System.IO.ErrorEventArgs args) { } + protected void OnRenamed(object sender, System.IO.RenamedEventArgs args) { } + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType); + public abstract System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout); + public static System.IO.Abstractions.FileSystemWatcherBase op_Implicit(System.IO.FileSystemWatcher watcher) { } + } + [System.Serializable] + public class FileSystemWatcherFactory : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IFileSystemWatcherFactory + { + public FileSystemWatcherFactory(System.IO.Abstractions.IFileSystem fileSystem) { } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + public System.IO.Abstractions.IFileSystemWatcher New() { } + public System.IO.Abstractions.IFileSystemWatcher New(string path) { } + public System.IO.Abstractions.IFileSystemWatcher New(string path, string filter) { } + public System.IO.Abstractions.IFileSystemWatcher Wrap(System.IO.FileSystemWatcher fileSystemWatcher) { } + } + [System.Serializable] + public class FileSystemWatcherWrapper : System.IO.Abstractions.FileSystemWatcherBase + { + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, System.IO.FileSystemWatcher watcher) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path) { } + public FileSystemWatcherWrapper(System.IO.Abstractions.IFileSystem fileSystem, string path, string filter) { } + public override System.ComponentModel.IContainer Container { get; } + public override bool EnableRaisingEvents { get; set; } + public override System.IO.Abstractions.IFileSystem FileSystem { get; } + public override string Filter { get; set; } + public override bool IncludeSubdirectories { get; set; } + public override int InternalBufferSize { get; set; } + public override System.IO.NotifyFilters NotifyFilter { get; set; } + public override string Path { get; set; } + public override System.ComponentModel.ISite Site { get; set; } + public override System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; } + public override void BeginInit() { } + public override void Dispose(bool disposing) { } + public override void EndInit() { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { } + public override System.IO.Abstractions.IWaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { } + } + [System.Serializable] + public abstract class FileVersionInfoBase : System.IO.Abstractions.IFileVersionInfo + { + protected FileVersionInfoBase() { } + public abstract string Comments { get; } + public abstract string CompanyName { get; } + public abstract int FileBuildPart { get; } + public abstract string FileDescription { get; } + public abstract int FileMajorPart { get; } + public abstract int FileMinorPart { get; } + public abstract string FileName { get; } + public abstract int FilePrivatePart { get; } + public abstract string FileVersion { get; } + public abstract string InternalName { get; } + public abstract bool IsDebug { get; } + public abstract bool IsPatched { get; } + public abstract bool IsPreRelease { get; } + public abstract bool IsPrivateBuild { get; } + public abstract bool IsSpecialBuild { get; } + public abstract string Language { get; } + public abstract string LegalCopyright { get; } + public abstract string LegalTrademarks { get; } + public abstract string OriginalFilename { get; } + public abstract string PrivateBuild { get; } + public abstract int ProductBuildPart { get; } + public abstract int ProductMajorPart { get; } + public abstract int ProductMinorPart { get; } + public abstract string ProductName { get; } + public abstract int ProductPrivatePart { get; } + public abstract string ProductVersion { get; } + public abstract string SpecialBuild { get; } + public abstract string ToString(); + public static System.IO.Abstractions.FileVersionInfoBase op_Implicit(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + } + [System.Serializable] + public class FileVersionInfoWrapper : System.IO.Abstractions.FileVersionInfoBase + { + public FileVersionInfoWrapper(System.Diagnostics.FileVersionInfo fileVersionInfo) { } + public override string Comments { get; } + public override string CompanyName { get; } + public override int FileBuildPart { get; } + public override string FileDescription { get; } + public override int FileMajorPart { get; } + public override int FileMinorPart { get; } + public override string FileName { get; } + public override int FilePrivatePart { get; } + public override string FileVersion { get; } + public override string InternalName { get; } + public override bool IsDebug { get; } + public override bool IsPatched { get; } + public override bool IsPreRelease { get; } + public override bool IsPrivateBuild { get; } + public override bool IsSpecialBuild { get; } + public override string Language { get; } + public override string LegalCopyright { get; } + public override string LegalTrademarks { get; } + public override string OriginalFilename { get; } + public override string PrivateBuild { get; } + public override int ProductBuildPart { get; } + public override int ProductMajorPart { get; } + public override int ProductMinorPart { get; } + public override string ProductName { get; } + public override int ProductPrivatePart { get; } + public override string ProductVersion { get; } + public override string SpecialBuild { get; } + public override string ToString() { } + } + [System.Serializable] + public class FileWrapper : System.IO.Abstractions.FileBase + { + public FileWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void AppendAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void AppendAllText(string path, string contents) { } + public override void AppendAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task AppendAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.IO.StreamWriter AppendText(string path) { } + public override void Copy(string sourceFileName, string destFileName) { } + public override void Copy(string sourceFileName, string destFileName, bool overwrite) { } + public override System.IO.Abstractions.FileSystemStream Create(string path) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize) { } + public override System.IO.Abstractions.FileSystemStream Create(string path, int bufferSize, System.IO.FileOptions options) { } + public override System.IO.StreamWriter CreateText(string path) { } + public override void Decrypt(string path) { } + public override void Delete(string path) { } + public override void Encrypt(string path) { } + public override bool Exists(string path) { } + public override System.IO.FileAttributes GetAttributes(string path) { } + public override System.DateTime GetCreationTime(string path) { } + public override System.DateTime GetCreationTimeUtc(string path) { } + public override System.DateTime GetLastAccessTime(string path) { } + public override System.DateTime GetLastAccessTimeUtc(string path) { } + public override System.DateTime GetLastWriteTime(string path) { } + public override System.DateTime GetLastWriteTimeUtc(string path) { } + public override void Move(string sourceFileName, string destFileName) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access) { } + public override System.IO.Abstractions.FileSystemStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share) { } + public override System.IO.Abstractions.FileSystemStream OpenRead(string path) { } + public override System.IO.StreamReader OpenText(string path) { } + public override System.IO.Abstractions.FileSystemStream OpenWrite(string path) { } + public override byte[] ReadAllBytes(string path) { } + public override System.Threading.Tasks.Task ReadAllBytesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override string[] ReadAllLines(string path) { } + public override string[] ReadAllLines(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllLinesAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override string ReadAllText(string path) { } + public override string ReadAllText(string path, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task ReadAllTextAsync(string path, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path) { } + public override System.Collections.Generic.IEnumerable ReadLines(string path, System.Text.Encoding encoding) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName) { } + public override void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors) { } + public override void SetAttributes(string path, System.IO.FileAttributes fileAttributes) { } + public override void SetCreationTime(string path, System.DateTime creationTime) { } + public override void SetCreationTimeUtc(string path, System.DateTime creationTimeUtc) { } + public override void SetLastAccessTime(string path, System.DateTime lastAccessTime) { } + public override void SetLastAccessTimeUtc(string path, System.DateTime lastAccessTimeUtc) { } + public override void SetLastWriteTime(string path, System.DateTime lastWriteTime) { } + public override void SetLastWriteTimeUtc(string path, System.DateTime lastWriteTimeUtc) { } + public override void WriteAllBytes(string path, byte[] bytes) { } + public override System.Threading.Tasks.Task WriteAllBytesAsync(string path, byte[] bytes, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents) { } + public override void WriteAllLines(string path, string[] contents) { } + public override void WriteAllLines(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding) { } + public override void WriteAllLines(string path, string[] contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllLinesAsync(string path, System.Collections.Generic.IEnumerable contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + public override void WriteAllText(string path, string contents) { } + public override void WriteAllText(string path, string contents, System.Text.Encoding encoding) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Threading.CancellationToken cancellationToken = default) { } + public override System.Threading.Tasks.Task WriteAllTextAsync(string path, string contents, System.Text.Encoding encoding, System.Threading.CancellationToken cancellationToken = default) { } + } + [System.Serializable] + public abstract class PathBase : System.IO.Abstractions.IFileSystemEntity, System.IO.Abstractions.IPath + { + protected PathBase(System.IO.Abstractions.IFileSystem fileSystem) { } + public abstract char AltDirectorySeparatorChar { get; } + public abstract char DirectorySeparatorChar { get; } + public System.IO.Abstractions.IFileSystem FileSystem { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public abstract char[] InvalidPathChars { get; } + public abstract char PathSeparator { get; } + public abstract char VolumeSeparatorChar { get; } + public abstract string ChangeExtension(string path, string extension); + public abstract string Combine(params string[] paths); + public abstract string Combine(string path1, string path2); + public abstract string Combine(string path1, string path2, string path3); + public abstract string Combine(string path1, string path2, string path3, string path4); + public abstract System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path); + public abstract string GetDirectoryName(string path); + public abstract System.ReadOnlySpan GetExtension(System.ReadOnlySpan path); + public abstract string GetExtension(string path); + public abstract System.ReadOnlySpan GetFileName(System.ReadOnlySpan path); + public abstract string GetFileName(string path); + public abstract System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path); + public abstract string GetFileNameWithoutExtension(string path); + public abstract string GetFullPath(string path); + public abstract string GetFullPath(string path, string basePath); + public abstract char[] GetInvalidFileNameChars(); + public abstract char[] GetInvalidPathChars(); + public abstract System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path); + public abstract string GetPathRoot(string path); + public abstract string GetRandomFileName(); + public abstract string GetRelativePath(string relativeTo, string path); + public abstract string GetTempFileName(); + public abstract string GetTempPath(); + public abstract bool HasExtension(System.ReadOnlySpan path); + public abstract bool HasExtension(string path); + public abstract bool IsPathFullyQualified(System.ReadOnlySpan path); + public abstract bool IsPathFullyQualified(string path); + public abstract bool IsPathRooted(System.ReadOnlySpan path); + public abstract bool IsPathRooted(string path); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2); + public abstract string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten); + public abstract bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten); + } + [System.Serializable] + public class PathWrapper : System.IO.Abstractions.PathBase + { + public PathWrapper(System.IO.Abstractions.IFileSystem fileSystem) { } + public override char AltDirectorySeparatorChar { get; } + public override char DirectorySeparatorChar { get; } + [System.Obsolete("Please use GetInvalidPathChars or GetInvalidFileNameChars instead.")] + public override char[] InvalidPathChars { get; } + public override char PathSeparator { get; } + public override char VolumeSeparatorChar { get; } + public override string ChangeExtension(string path, string extension) { } + public override string Combine(params string[] paths) { } + public override string Combine(string path1, string path2) { } + public override string Combine(string path1, string path2, string path3) { } + public override string Combine(string path1, string path2, string path3, string path4) { } + public override System.ReadOnlySpan GetDirectoryName(System.ReadOnlySpan path) { } + public override string GetDirectoryName(string path) { } + public override System.ReadOnlySpan GetExtension(System.ReadOnlySpan path) { } + public override string GetExtension(string path) { } + public override System.ReadOnlySpan GetFileName(System.ReadOnlySpan path) { } + public override string GetFileName(string path) { } + public override System.ReadOnlySpan GetFileNameWithoutExtension(System.ReadOnlySpan path) { } + public override string GetFileNameWithoutExtension(string path) { } + public override string GetFullPath(string path) { } + public override string GetFullPath(string path, string basePath) { } + public override char[] GetInvalidFileNameChars() { } + public override char[] GetInvalidPathChars() { } + public override System.ReadOnlySpan GetPathRoot(System.ReadOnlySpan path) { } + public override string GetPathRoot(string path) { } + public override string GetRandomFileName() { } + public override string GetRelativePath(string relativeTo, string path) { } + public override string GetTempFileName() { } + public override string GetTempPath() { } + public override bool HasExtension(System.ReadOnlySpan path) { } + public override bool HasExtension(string path) { } + public override bool IsPathFullyQualified(System.ReadOnlySpan path) { } + public override bool IsPathFullyQualified(string path) { } + public override bool IsPathRooted(System.ReadOnlySpan path) { } + public override bool IsPathRooted(string path) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2) { } + public override string Join(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.Span destination, out int charsWritten) { } + public override bool TryJoin(System.ReadOnlySpan path1, System.ReadOnlySpan path2, System.ReadOnlySpan path3, System.Span destination, out int charsWritten) { } + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Helper.cs b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Helper.cs new file mode 100644 index 000000000..d4f27af25 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Helper.cs @@ -0,0 +1,72 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Xml.Linq; +using System.Xml.XPath; +using PublicApiGenerator; + +namespace TestableIO.System.IO.Abstractions.Api.Tests; + +public static class Helper +{ + public static string CreatePublicApi(string framework, string assemblyName) + { +#if DEBUG + var configuration = "Debug"; +#else + string configuration = "Release"; +#endif + var assemblyFile = + CombinedPaths("src", assemblyName, "bin", configuration, framework, $"{assemblyName}.dll"); + var assembly = Assembly.LoadFile(assemblyFile); + var publicApi = assembly.GeneratePublicApi(new ApiGeneratorOptions + { + AllowNamespacePrefixes = ["System.IO.Abstractions",], + }); + return publicApi.Replace("\r\n", "\n"); + } + + public static string GetExpectedApi(string framework, string assemblyName) + { + var expectedPath = CombinedPaths("tests", "TestableIO.System.IO.Abstractions.Api.Tests", + "Expected", $"{assemblyName}_{framework}.txt"); + try + { + return File.ReadAllText(expectedPath) + .Replace("\r\n", "\n"); + } + catch + { + return string.Empty; + } + } + + public static IEnumerable GetTargetFrameworks() + { + var csproj = CombinedPaths("src", "Directory.Build.props"); + var project = XDocument.Load(csproj); + var targetFrameworks = + project.XPathSelectElement("/Project/PropertyGroup/TargetFrameworks"); + foreach (var targetFramework in targetFrameworks!.Value.Split(';')) yield return targetFramework; + } + + public static void SetExpectedApi(string framework, string assemblyName, string publicApi) + { + var expectedPath = CombinedPaths("tests", "TestableIO.System.IO.Abstractions.Api.Tests", + "Expected", $"{assemblyName}_{framework}.txt"); + Directory.CreateDirectory(Path.GetDirectoryName(expectedPath)!); + File.WriteAllText(expectedPath, publicApi); + } + + private static string CombinedPaths(params string[] paths) + { + return Path.GetFullPath(Path.Combine(paths.Prepend(GetSolutionDirectory()).ToArray())); + } + + private static string GetSolutionDirectory([CallerFilePath] string path = "") + { + return Path.Combine(Path.GetDirectoryName(path)!, "..", ".."); + } +} \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj b/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj new file mode 100644 index 000000000..01697a037 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj @@ -0,0 +1,25 @@ + + + + net8.0 + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Usings.cs b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Usings.cs new file mode 100644 index 000000000..749afb230 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Usings.cs @@ -0,0 +1,3 @@ +global using System; +global using System.Threading.Tasks; +global using NUnit.Framework; From e075fe87e728721c1d80fcc71886d8e485c4c291 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 16:13:44 +0100 Subject: [PATCH 03/15] refactor: consolidate use of meta project packages (#1215) Remaining issue from #1211: Also adapt the projects for Meta packages. --- .github/workflows/ci.yml | 2 +- ...stem.IO.Abstractions.TestingHelpers.csproj | 24 ++++++------ .../System.IO.Abstractions.csproj | 8 ++-- .../TestableIO.System.IO.Abstractions.csproj | 38 +++++++++---------- 4 files changed, 33 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c959c7980..d08690638 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: 8.0.x 9.0.x - name: Run tests - run: dotnet test --collect:"XPlat Code Coverage" --logger "GitHubActions" + run: dotnet test --filter FullyQualifiedName\!~TestableIO.System.IO.Abstractions.Api.Tests --collect:"XPlat Code Coverage" --logger "GitHubActions" - name: Upload coverage uses: actions/upload-artifact@v4 with: diff --git a/src/System.IO.Abstractions.TestingHelpers/System.IO.Abstractions.TestingHelpers.csproj b/src/System.IO.Abstractions.TestingHelpers/System.IO.Abstractions.TestingHelpers.csproj index d22f94fe5..c3852465d 100644 --- a/src/System.IO.Abstractions.TestingHelpers/System.IO.Abstractions.TestingHelpers.csproj +++ b/src/System.IO.Abstractions.TestingHelpers/System.IO.Abstractions.TestingHelpers.csproj @@ -1,15 +1,13 @@  - - System.IO.Abstractions.TestingHelpers - System.IO.Abstractions.TestingHelpers - A set of pre-built mocks to help when testing file system interactions. - net9.0;net8.0;net6.0;netstandard2.1;netstandard2.0;net472 - icon_256x256.png - - - - - - - + + + System.IO.Abstractions.TestingHelpers + System.IO.Abstractions.TestingHelpers + A set of pre-built mocks to help when testing file system interactions. + + + + + + diff --git a/src/System.IO.Abstractions/System.IO.Abstractions.csproj b/src/System.IO.Abstractions/System.IO.Abstractions.csproj index b60e2ee22..044581f9a 100644 --- a/src/System.IO.Abstractions/System.IO.Abstractions.csproj +++ b/src/System.IO.Abstractions/System.IO.Abstractions.csproj @@ -1,16 +1,14 @@  + System.IO.Abstractions System.IO.Abstractions A set of abstractions to help make file system interactions testable. - net8.0;net6.0;netstandard2.1;netstandard2.0;net472 - icon_256x256.png + - - - + diff --git a/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj b/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj index 236734151..bc3e9307f 100644 --- a/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj +++ b/src/TestableIO.System.IO.Abstractions/TestableIO.System.IO.Abstractions.csproj @@ -1,21 +1,19 @@ - - TestableIO.System.IO.Abstractions - System.IO.Abstractions - A set of abstractions to help make file system interactions testable. - net9.0;net8.0;net6.0;netstandard2.1;netstandard2.0;net472 - icon_256x256.png - enable - preview - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - \ No newline at end of file + + + TestableIO.System.IO.Abstractions + System.IO.Abstractions + A set of abstractions to help make file system interactions testable. + enable + preview + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + From 9a0630b7722b754058def0f5570964ee515e807a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 16:19:59 +0100 Subject: [PATCH 04/15] refactor: add explicit API test step in the build pipeline (#1214) * Add explicit API build and test step in the pipeline --- .github/workflows/ci.yml | 26 ++++++++++++++++--- src/Directory.Build.props | 4 +-- .../System.IO.Abstractions.csproj | 24 ++++++++--------- 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d08690638..638b2c4cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: | + dotnet-version: | 6.0.x 7.0.x 8.0.x @@ -32,9 +32,29 @@ jobs: with: name: Code coverage ${{ matrix.os }} path: "**/coverage.cobertura.xml" + api-test: + name: API Test + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + 9.0.x + - name: Build solution + run: dotnet build + - name: Run tests + run: dotnet test --filter FullyQualifiedName~TestableIO.System.IO.Abstractions.Api.Tests --logger "GitHubActions" coverage: name: Coverage - needs: [test] + needs: [test, api-test] runs-on: ubuntu-latest steps: - name: Checkout sources @@ -67,7 +87,7 @@ jobs: coverage-reports: coverage-report/Cobertura.xml pack: name: Pack - needs: [test] + needs: [test, api-test] runs-on: ubuntu-latest steps: - name: Checkout sources diff --git a/src/Directory.Build.props b/src/Directory.Build.props index edec72d8b..594dcab3d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -19,7 +19,7 @@ icon_256x256.png - + @@ -28,5 +28,5 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/System.IO.Abstractions/System.IO.Abstractions.csproj b/src/System.IO.Abstractions/System.IO.Abstractions.csproj index 044581f9a..931a4b5e1 100644 --- a/src/System.IO.Abstractions/System.IO.Abstractions.csproj +++ b/src/System.IO.Abstractions/System.IO.Abstractions.csproj @@ -1,14 +1,14 @@  - - - System.IO.Abstractions - System.IO.Abstractions - A set of abstractions to help make file system interactions testable. - - - - - - - + + + System.IO.Abstractions + System.IO.Abstractions + A set of abstractions to help make file system interactions testable. + + + + + + + From 0dbe7419c91d16ab6a2a88bdf9db1a2b0a54f3d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 16:37:35 +0100 Subject: [PATCH 05/15] refactor: consolidate test project settings in `Directory.Build.props` (#1213) Similar to #1211 but for test projects. --- System.IO.Abstractions.sln | 6 +++ tests/Directory.Build.props | 36 ++++++++++++++++ ...IO.System.IO.Abstractions.Api.Tests.csproj | 5 --- ...O.Abstractions.TestingHelpers.Tests.csproj | 41 ++++--------------- ...stem.IO.Abstractions.Wrappers.Tests.csproj | 24 ++--------- 5 files changed, 54 insertions(+), 58 deletions(-) create mode 100644 tests/Directory.Build.props diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln index fadf2577a..100eec389 100644 --- a/System.IO.Abstractions.sln +++ b/System.IO.Abstractions.sln @@ -48,6 +48,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestableIO.System.IO.Abstractions.Api.Tests", "tests\TestableIO.System.IO.Abstractions.Api.Tests\TestableIO.System.IO.Abstractions.Api.Tests.csproj", "{7DE6AD74-E2B3-498E-90C5-DDF3188F333A}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5971F640-8BBA-4264-BCD6-60A97DD54B4A}" + ProjectSection(SolutionItems) = preProject + tests\Directory.Build.props = tests\Directory.Build.props + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -105,6 +110,7 @@ Global {B66A0B3F-6A00-482E-99E2-27D8DECB075E} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} {015B3812-E01D-479C-895D-BDDF16E798CA} = {10F39E91-97F2-4812-9D2F-79BE18EC6B08} {7DE6AD74-E2B3-498E-90C5-DDF3188F333A} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} + {5971F640-8BBA-4264-BCD6-60A97DD54B4A} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8885C59C-F6A0-4C2F-A3BC-B720E9BD161F} diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 100644 index 000000000..2e00e9bb1 --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1,36 @@ + + + + + + net9.0;net8.0;net6.0 + $(TargetFrameworks);net472 + false + true + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + true + + + diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj b/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj index 01697a037..dc026d8bc 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/TestableIO.System.IO.Abstractions.Api.Tests.csproj @@ -10,11 +10,6 @@ - - - - - diff --git a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests.csproj b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests.csproj index e33677d44..5d83134e6 100644 --- a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests.csproj +++ b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests.csproj @@ -1,13 +1,15 @@  + - net9.0;net8.0;net6.0 - $(TargetFrameworks);net472 The unit tests for our pre-built mocks System.IO.Abstractions.TestingHelpers.Tests System.IO.Abstractions.TestingHelpers.Tests - false - true + + + + + true + - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - - true - + diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj b/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj index 30973de72..45fd3b956 100644 --- a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj +++ b/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj @@ -1,33 +1,17 @@  + - net9.0;net8.0;net6.0 - $(TargetFrameworks);net472 The unit tests for our the core abstractions System.IO.Abstractions.Tests System.IO.Abstractions.Tests - false - true + + - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - - - true - + From 43ce42d82f526a82bac29d8cdad882b0a24dc40c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 16:47:44 +0100 Subject: [PATCH 06/15] chore: update aweXpect to v1.0.1 (#1216) --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9b464162a..9c4a6e2a5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -19,7 +19,7 @@ - + From ecadf257f4853adc958d18cac68a8574f0f7fc03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 20:33:52 +0100 Subject: [PATCH 07/15] refactor: avoid `InternalsVisibleTo` (#1217) Remove tests that only verify internal behavior and get rid of `InternalsVisibleTo` except for `DynamicProxyGenAssembly2`. --- Directory.Build.props | 1 + .../Properties/AssemblyInfo.cs | 7 - .../Properties/AssemblyInfo.cs | 13 -- ...eIO.System.IO.Abstractions.Wrappers.csproj | 10 ++ ....IO.Abstractions.TestingHelpers_net472.txt | 1 - ....IO.Abstractions.TestingHelpers_net6.0.txt | 1 - ....IO.Abstractions.TestingHelpers_net8.0.txt | 1 - ....IO.Abstractions.TestingHelpers_net9.0.txt | 1 - ...ractions.TestingHelpers_netstandard2.0.txt | 1 - ...ractions.TestingHelpers_netstandard2.1.txt | 1 - ...System.IO.Abstractions.Wrappers_net472.txt | 3 +- ...System.IO.Abstractions.Wrappers_net6.0.txt | 3 +- ...System.IO.Abstractions.Wrappers_net8.0.txt | 3 +- ...System.IO.Abstractions.Wrappers_net9.0.txt | 3 +- ...O.Abstractions.Wrappers_netstandard2.0.txt | 3 +- ...O.Abstractions.Wrappers_netstandard2.1.txt | 3 +- .../Polyfills/SupportedOSPlatformAttribute.cs | 12 ++ .../ProductVersionParserTests.cs | 40 +++--- .../StringExtensionsTests.cs | 128 ------------------ .../ConvertersTests.cs | 75 ---------- 20 files changed, 49 insertions(+), 261 deletions(-) delete mode 100644 src/TestableIO.System.IO.Abstractions.TestingHelpers/Properties/AssemblyInfo.cs delete mode 100644 src/TestableIO.System.IO.Abstractions.Wrappers/Properties/AssemblyInfo.cs create mode 100644 tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/Polyfills/SupportedOSPlatformAttribute.cs delete mode 100644 tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/StringExtensionsTests.cs delete mode 100644 tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ConvertersTests.cs diff --git a/Directory.Build.props b/Directory.Build.props index fc1080101..a7a394986 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,6 +4,7 @@ Copyright © Tatham Oddie & friends 2010-$([System.DateTime]::Now.ToString('yyyy')) Tatham Oddie & friends True + 00240000048000009400000006020000002400005253413100040000010001001160c7a0f907c400c5392975b66d2f3752fb82625d5674d386b83896d4d4ae8d0ef8319ef391fbb3466de0058ad2f361b8f5cb8a32ecb4e908bece5c519387552cedd2ca0250e36b59c6d6dc3dc260ca73a7e27c3add4ae22d5abaa562225d7ba34d427e8f3f52928a46a674deb0208eca7d379aa22712355b91a55a5ce521d2 $(MSBuildThisFileDirectory)StrongName.snk latest testing diff --git a/src/TestableIO.System.IO.Abstractions.TestingHelpers/Properties/AssemblyInfo.cs b/src/TestableIO.System.IO.Abstractions.TestingHelpers/Properties/AssemblyInfo.cs deleted file mode 100644 index 797decb1d..000000000 --- a/src/TestableIO.System.IO.Abstractions.TestingHelpers/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System.Runtime.CompilerServices; - -#if DEBUG -[assembly: InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] -#else - [assembly: InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests, PublicKey=002400000480000094000000060200000024000052534131000400000100010051bf2aa00ba30d507d4cebcab1751dfa13768a6f5235ce52da572260e33a11f52b87707f858fe4bbe32cd51830a8dd73245f688902707fa797c07205ff9b5212f93760d52f6d13022a286ff7daa13a0cd9eb958e888fcd7d9ed1f7cf76b19a5391835a7b633418a5f584d10925d76810f782f6b814cc34a2326b438abdc3b5bd")] -#endif diff --git a/src/TestableIO.System.IO.Abstractions.Wrappers/Properties/AssemblyInfo.cs b/src/TestableIO.System.IO.Abstractions.Wrappers/Properties/AssemblyInfo.cs deleted file mode 100644 index 4dbd4e8f9..000000000 --- a/src/TestableIO.System.IO.Abstractions.Wrappers/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Runtime.CompilerServices; - -[assembly: CLSCompliant(true)] - -#if DEBUG -[assembly: InternalsVisibleTo("System.IO.Abstractions.Tests")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -#else -[assembly: InternalsVisibleTo("System.IO.Abstractions.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001001160c7a0f907c400c5392975b66d2f3752fb82625d5674d386b83896d4d4ae8d0ef8319ef391fbb3466de0058ad2f361b8f5cb8a32ecb4e908bece5c519387552cedd2ca0250e36b59c6d6dc3dc260ca73a7e27c3add4ae22d5abaa562225d7ba34d427e8f3f52928a46a674deb0208eca7d379aa22712355b91a55a5ce521d2")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] -#endif - diff --git a/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj b/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj index 6a4cb72e5..91cf86273 100644 --- a/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj +++ b/src/TestableIO.System.IO.Abstractions.Wrappers/TestableIO.System.IO.Abstractions.Wrappers.csproj @@ -13,4 +13,14 @@ + + + <_Parameter1>true + + + + + + + \ No newline at end of file diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt index 60ab1b81d..296433506 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt @@ -1,5 +1,4 @@ [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] [assembly: System.Runtime.Versioning.TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName=".NET Framework 4.7.2")] namespace System.IO.Abstractions.TestingHelpers { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt index 3852eb62d..0717900dd 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt @@ -1,5 +1,4 @@ [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] [assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName=".NET 6.0")] namespace System.IO.Abstractions.TestingHelpers { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt index e577fcd4a..9e09e1b04 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt @@ -1,5 +1,4 @@ [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] [assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName=".NET 8.0")] namespace System.IO.Abstractions.TestingHelpers { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt index c1e0da267..309c132cb 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt @@ -1,5 +1,4 @@ [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] [assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] namespace System.IO.Abstractions.TestingHelpers { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt index 126d875a6..84b1fef74 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt @@ -1,5 +1,4 @@ [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] [assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")] namespace System.IO.Abstractions.TestingHelpers { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt index ecfb7b0a5..30ac2b613 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt @@ -1,5 +1,4 @@ [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.TestingHelpers.Tests")] [assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName=".NET Standard 2.1")] namespace System.IO.Abstractions.TestingHelpers { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt index 8b72ddbab..ae59ef379 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net472.txt @@ -1,7 +1,6 @@ [assembly: System.CLSCompliant(true)] [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: System.Runtime.Versioning.TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName=".NET Framework 4.7.2")] namespace System.IO.Abstractions { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt index 30aa6f7dd..a9edda72e 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net6.0.txt @@ -1,7 +1,6 @@ [assembly: System.CLSCompliant(true)] [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName=".NET 6.0")] namespace System.IO.Abstractions { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt index ec7994c52..f0902c9b5 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net8.0.txt @@ -1,7 +1,6 @@ [assembly: System.CLSCompliant(true)] [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName=".NET 8.0")] namespace System.IO.Abstractions { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt index c52feb76d..76213edff 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_net9.0.txt @@ -1,7 +1,6 @@ [assembly: System.CLSCompliant(true)] [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")] namespace System.IO.Abstractions { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt index 215c9a7a8..41cc10bbe 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.0.txt @@ -1,7 +1,6 @@ [assembly: System.CLSCompliant(true)] [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")] namespace System.IO.Abstractions { diff --git a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt index 8ec4263eb..a159f9c70 100644 --- a/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt +++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.Wrappers_netstandard2.1.txt @@ -1,7 +1,6 @@ [assembly: System.CLSCompliant(true)] [assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("DynamicProxyGenAssembly2")] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.IO.Abstractions.Tests")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] [assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName=".NET Standard 2.1")] namespace System.IO.Abstractions { diff --git a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/Polyfills/SupportedOSPlatformAttribute.cs b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/Polyfills/SupportedOSPlatformAttribute.cs new file mode 100644 index 000000000..ef6635b4f --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/Polyfills/SupportedOSPlatformAttribute.cs @@ -0,0 +1,12 @@ +#if !FEATURE_SUPPORTED_OS_ATTRIBUTE +namespace System.Runtime.Versioning +{ + [AttributeUsage(AttributeTargets.All)] + internal class SupportedOSPlatformAttribute : Attribute + { + public SupportedOSPlatformAttribute(string _) + { + } + } +} +#endif diff --git a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/ProductVersionParserTests.cs b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/ProductVersionParserTests.cs index 980c8be5d..f7807347b 100644 --- a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/ProductVersionParserTests.cs +++ b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/ProductVersionParserTests.cs @@ -12,15 +12,15 @@ public void ProductVersionParser_Parse_ShouldIgnoreTheSegmentsWhenThereAreMoreTh string productVersion = "1.2.3.4.5"; // Act - var parsedProductVersion = ProductVersionParser.Parse(productVersion); + var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion); // Assert Assert.Multiple(() => { - Assert.That(parsedProductVersion.Major, Is.Zero); - Assert.That(parsedProductVersion.Minor, Is.Zero); - Assert.That(parsedProductVersion.Build, Is.Zero); - Assert.That(parsedProductVersion.PrivatePart, Is.Zero); + Assert.That(versionInfo.ProductMajorPart, Is.Zero); + Assert.That(versionInfo.ProductMinorPart, Is.Zero); + Assert.That(versionInfo.ProductBuildPart, Is.Zero); + Assert.That(versionInfo.ProductPrivatePart, Is.Zero); }); } @@ -37,15 +37,15 @@ public void ProductVersionParser_Parse_ShouldSkipTheRestOfTheSegmentsWhenOneIsNo int expectedRevision) { // Act - var parsedProductVersion = ProductVersionParser.Parse(productVersion); + var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion); // Assert Assert.Multiple(() => { - Assert.That(parsedProductVersion.Major, Is.EqualTo(expectedMajor)); - Assert.That(parsedProductVersion.Minor, Is.EqualTo(expectedMinor)); - Assert.That(parsedProductVersion.Build, Is.EqualTo(expectedBuild)); - Assert.That(parsedProductVersion.PrivatePart, Is.EqualTo(expectedRevision)); + Assert.That(versionInfo.ProductMajorPart, Is.EqualTo(expectedMajor)); + Assert.That(versionInfo.ProductMinorPart, Is.EqualTo(expectedMinor)); + Assert.That(versionInfo.ProductBuildPart, Is.EqualTo(expectedBuild)); + Assert.That(versionInfo.ProductPrivatePart, Is.EqualTo(expectedRevision)); }); } @@ -66,15 +66,15 @@ public void ProductVersionParser_Parse_ShouldSkipTheRestOfTheSegmentsWhenOneCont int expectedRevision) { // Act - var parsedProductVersion = ProductVersionParser.Parse(productVersion); + var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion); // Assert Assert.Multiple(() => { - Assert.That(parsedProductVersion.Major, Is.EqualTo(expectedMajor)); - Assert.That(parsedProductVersion.Minor, Is.EqualTo(expectedMinor)); - Assert.That(parsedProductVersion.Build, Is.EqualTo(expectedBuild)); - Assert.That(parsedProductVersion.PrivatePart, Is.EqualTo(expectedRevision)); + Assert.That(versionInfo.ProductMajorPart, Is.EqualTo(expectedMajor)); + Assert.That(versionInfo.ProductMinorPart, Is.EqualTo(expectedMinor)); + Assert.That(versionInfo.ProductBuildPart, Is.EqualTo(expectedBuild)); + Assert.That(versionInfo.ProductPrivatePart, Is.EqualTo(expectedRevision)); }); } @@ -92,15 +92,15 @@ public void ProductVersionParser_Parse_ShouldParseEachProvidedSegment( int expectedRevision) { // Act - var parsedProductVersion = ProductVersionParser.Parse(productVersion); + var versionInfo = new MockFileVersionInfo("foo", productVersion: productVersion); // Assert Assert.Multiple(() => { - Assert.That(parsedProductVersion.Major, Is.EqualTo(expectedMajor)); - Assert.That(parsedProductVersion.Minor, Is.EqualTo(expectedMinor)); - Assert.That(parsedProductVersion.Build, Is.EqualTo(expectedBuild)); - Assert.That(parsedProductVersion.PrivatePart, Is.EqualTo(expectedRevision)); + Assert.That(versionInfo.ProductMajorPart, Is.EqualTo(expectedMajor)); + Assert.That(versionInfo.ProductMinorPart, Is.EqualTo(expectedMinor)); + Assert.That(versionInfo.ProductBuildPart, Is.EqualTo(expectedBuild)); + Assert.That(versionInfo.ProductPrivatePart, Is.EqualTo(expectedRevision)); }); } } diff --git a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/StringExtensionsTests.cs b/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/StringExtensionsTests.cs deleted file mode 100644 index d45b6229d..000000000 --- a/tests/TestableIO.System.IO.Abstractions.TestingHelpers.Tests/StringExtensionsTests.cs +++ /dev/null @@ -1,128 +0,0 @@ -using NUnit.Framework; - -namespace System.IO.Abstractions.TestingHelpers.Tests -{ - using XFS = MockUnixSupport; - - [TestFixture] - public class StringExtensionsTests - { - [Test] - public void SplitLines_InputWithOneLine_ShouldReturnOnlyOneLine() - { - var input = "This is row one"; - var expected = new[] { "This is row one" }; - - var result = input.SplitLines(); - - Assert.That(result, Is.EquivalentTo(expected)); - } - - [Test] - public void SplitLines_InputWithTwoLinesSeparatedWithLf_ShouldReturnBothLines() - { - var input = "This is row one\nThis is row two"; - var expected = new[] { "This is row one", "This is row two" }; - - var result = input.SplitLines(); - - Assert.That(result, Is.EquivalentTo(expected)); - } - - [Test] - public void SplitLines_InputWithTwoLinesSeparatedWithCr_ShouldReturnBothLines() - { - var input = "This is row one\rThis is row two"; - var expected = new[] { "This is row one", "This is row two" }; - - var result = input.SplitLines(); - - Assert.That(result, Is.EquivalentTo(expected)); - } - - [Test] - public void SplitLines_InputWithTwoLinesSeparatedWithCrLf_ShouldReturnBothLines() - { - var input = "This is row one\r\nThis is row two"; - var expected = new[] { "This is row one", "This is row two" }; - - var result = input.SplitLines(); - - Assert.That(result, Is.EquivalentTo(expected)); - } - - [Test] - public void SplitLines_InputWithTwoLinesSeparatedWithAllLineEndings_ShouldReturnAllLines() - { - var input = "one\r\ntwo\rthree\nfour"; - var expected = new[] { "one", "two", "three", "four" }; - - var result = input.SplitLines(); - - Assert.That(result, Is.EquivalentTo(expected)); - } - - [Test] - [WindowsOnly(WindowsSpecifics.Drives)] - public void TrimSlashes_DriveRoot_PreserveTrailingSlash() - { - Assert.That(@"c:\".TrimSlashes(), Is.EqualTo(@"c:\")); - } - - [Test] - [WindowsOnly(WindowsSpecifics.Drives)] - public void TrimSlashes_DriveRoot_AppendsTrailingSlash() - { - Assert.That(@"c:".TrimSlashes(), Is.EqualTo(@"c:\")); - } - - [Test] - [WindowsOnly(WindowsSpecifics.Drives)] - public void TrimSlashes_DriveRoot_TrimsExcessTrailingSlash() - { - Assert.That(@"c:\\".TrimSlashes(), Is.EqualTo(@"c:\")); - } - - [Test] - [WindowsOnly(WindowsSpecifics.Drives)] - public void TrimSlashes_DriveRoot_NormalizeAlternateSlash() - { - Assert.That(@"c:/".TrimSlashes(), Is.EqualTo(@"c:\")); - } - - [Test] - [WindowsOnly(WindowsSpecifics.Drives)] - public void TrimSlashes_RootedPath_TrimsAllTrailingSlashes() - { - Assert.That(@"c:\x\".TrimSlashes(), Is.EqualTo(@"c:\x")); - } - - [Test] - public void TrimSlashes_RootedPath_DoNotAlterPathWithoutTrailingSlashes() - { - Assert.That(XFS.Path(@"c:\x").TrimSlashes(), Is.EqualTo(XFS.Path(@"c:\x"))); - } - - [Test] - [UnixOnly(UnixSpecifics.SlashRoot)] - public void TrimSlashes_SlashRoot_TrimsExcessTrailingSlash() - { - Assert.That("//".TrimSlashes(), Is.EqualTo("/")); - } - - [Test] - [UnixOnly(UnixSpecifics.SlashRoot)] - public void TrimSlashes_SlashRoot_PreserveSlashRoot() - { - Assert.That("/".TrimSlashes(), Is.EqualTo("/")); - } - - [TestCase(@"\\unc\folder\file.txt", @"\\unc\folder\file.txt")] - [TestCase(@"//unc/folder/file.txt", @"\\unc\folder\file.txt")] - [WindowsOnly(WindowsSpecifics.UNCPaths)] - public void NormalizeSlashes_KeepsUNCPathPrefix(string path, string expectedValue) - { - Assert.That(path.NormalizeSlashes(), Is.EqualTo(expectedValue)); - } - } -} diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ConvertersTests.cs b/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ConvertersTests.cs deleted file mode 100644 index e83483352..000000000 --- a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ConvertersTests.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework; - -namespace System.IO.Abstractions.Tests -{ - [TestFixture] - public class ConvertersTests - { - private sealed class CrashingEnumerable : IEnumerable - { - private sealed class CrashingEnumerator : IEnumerator - { - object IEnumerator.Current => throw new NotSupportedException(); - - public T Current => throw new NotSupportedException(); - - public bool MoveNext() { throw new NotSupportedException(); } - - public void Reset() { } - - public void Dispose() { } - } - - public IEnumerator GetEnumerator() => new CrashingEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - } - - [Test] - public void WrapFileSystemInfos_with_IEnumerable_is_lazy() - { - var crashingFileSystemInfos = new CrashingEnumerable(); - - Assert.DoesNotThrow(() => crashingFileSystemInfos.WrapFileSystemInfos(new FileSystem())); - } - - [Test] - public void WrapFiles_with_IEnumerable_is_lazy() - { - var crashingFileInfos = new CrashingEnumerable(); - - Assert.DoesNotThrow(() => crashingFileInfos.WrapFiles(new FileSystem())); - } - - [Test] - public void WrapDirectories_with_IEnumerable_is_lazy() - { - var crashingDirectoryInfos = new CrashingEnumerable(); - - Assert.DoesNotThrow(() => crashingDirectoryInfos.WrapDirectories(new FileSystem())); - } - - [Test] - public void WrapFileSystemInfo_handles_null_FileSystemInfo() - { - Assert.That(Converters.WrapFileSystemInfo(null, new FileSystem()), Is.Null); - } - - [Test] - public void WrapDirectories_handles_null_DirectoryInfo() - { - List directoryInfos = new() { null }; - Assert.That(directoryInfos.WrapDirectories(new FileSystem()).Single(), Is.Null); - } - - [Test] - public void WrapFiles_handles_null_FileInfo() - { - List fileInfos = new() { null }; - Assert.That(fileInfos.WrapFiles(new FileSystem()).Single(), Is.Null); - } - } -} From 5e332ec252fba9f887795d278abce1ef37dfdbd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 21:19:13 +0100 Subject: [PATCH 08/15] refactor: add separate project for parity tests (#1219) Also get rid of the [Snapshooter.NUnit](https://www.nuget.org/packages/Snapshooter.NUnit) dependency. --- Directory.Packages.props | 2 +- System.IO.Abstractions.sln | 8 +++ .../ApiParityTests.cs | 55 ++++++++++++------- ...System.IO.Abstractions.Parity.Tests.csproj | 18 ++++++ ...ApiParityTests.DirectoryInfo_.NET 6.0.snap | 0 ...ApiParityTests.DirectoryInfo_.NET 8.0.snap | 0 ...ApiParityTests.DirectoryInfo_.NET 9.0.snap | 0 ...ts.DirectoryInfo_.NET Framework 4.7.2.snap | 0 .../ApiParityTests.Directory_.NET 6.0.snap | 0 .../ApiParityTests.Directory_.NET 8.0.snap | 0 .../ApiParityTests.Directory_.NET 9.0.snap | 0 ...yTests.Directory_.NET Framework 4.7.2.snap | 0 .../ApiParityTests.DriveInfo_.NET 6.0.snap | 0 .../ApiParityTests.DriveInfo_.NET 8.0.snap | 0 .../ApiParityTests.DriveInfo_.NET 9.0.snap | 0 ...yTests.DriveInfo_.NET Framework 4.7.2.snap | 0 .../ApiParityTests.FileInfo_.NET 6.0.snap | 0 .../ApiParityTests.FileInfo_.NET 8.0.snap | 0 .../ApiParityTests.FileInfo_.NET 9.0.snap | 0 ...tyTests.FileInfo_.NET Framework 4.7.2.snap | 0 ...arityTests.FileSystemWatcher_.NET 6.0.snap | 0 ...arityTests.FileSystemWatcher_.NET 8.0.snap | 0 ...arityTests.FileSystemWatcher_.NET 9.0.snap | 0 ...ileSystemWatcher_.NET Framework 4.7.2.snap | 0 ...iParityTests.FileVersionInfo_.NET 6.0.snap | 0 ...iParityTests.FileVersionInfo_.NET 8.0.snap | 0 ...iParityTests.FileVersionInfo_.NET 9.0.snap | 0 ....FileVersionInfo_.NET Framework 4.7.2.snap | 0 .../ApiParityTests.File_.NET 6.0.snap | 0 .../ApiParityTests.File_.NET 8.0.snap | 0 .../ApiParityTests.File_.NET 9.0.snap | 0 ...ParityTests.File_.NET Framework 4.7.2.snap | 0 .../ApiParityTests.Path_.NET 6.0.snap | 0 .../ApiParityTests.Path_.NET 8.0.snap | 0 .../ApiParityTests.Path_.NET 9.0.snap | 0 ...ParityTests.Path_.NET Framework 4.7.2.snap | 0 ...stem.IO.Abstractions.Wrappers.Tests.csproj | 4 -- 37 files changed, 62 insertions(+), 25 deletions(-) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/ApiParityTests.cs (73%) create mode 100644 tests/TestableIO.System.IO.Abstractions.Parity.Tests/TestableIO.System.IO.Abstractions.Parity.Tests.csproj rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DirectoryInfo_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DirectoryInfo_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DirectoryInfo_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DirectoryInfo_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Directory_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Directory_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Directory_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Directory_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DriveInfo_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DriveInfo_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DriveInfo_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.DriveInfo_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileInfo_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileInfo_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileInfo_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileInfo_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileSystemWatcher_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileVersionInfo_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileVersionInfo_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileVersionInfo_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.FileVersionInfo_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.File_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.File_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.File_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.File_.NET Framework 4.7.2.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Path_.NET 6.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Path_.NET 8.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Path_.NET 9.0.snap (100%) rename tests/{TestableIO.System.IO.Abstractions.Wrappers.Tests => TestableIO.System.IO.Abstractions.Parity.Tests}/__snapshots__/ApiParityTests.Path_.NET Framework 4.7.2.snap (100%) diff --git a/Directory.Packages.props b/Directory.Packages.props index 9c4a6e2a5..f771b06d0 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,6 +4,7 @@ + @@ -17,7 +18,6 @@ - diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln index 100eec389..13f0b57a8 100644 --- a/System.IO.Abstractions.sln +++ b/System.IO.Abstractions.sln @@ -44,6 +44,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B66A0B3F-6A0 ProjectSection(SolutionItems) = preProject src\Directory.Build.props = src\Directory.Build.props EndProjectSection +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Benchmarks", "Benchmarks", "{10F39E91-97F2-4812-9D2F-79BE18EC6B08}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestableIO.System.IO.Abstractions.Api.Tests", "tests\TestableIO.System.IO.Abstractions.Api.Tests\TestableIO.System.IO.Abstractions.Api.Tests.csproj", "{7DE6AD74-E2B3-498E-90C5-DDF3188F333A}" @@ -53,6 +54,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5971F640 tests\Directory.Build.props = tests\Directory.Build.props EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestableIO.System.IO.Abstractions.Parity.Tests", "tests\TestableIO.System.IO.Abstractions.Parity.Tests\TestableIO.System.IO.Abstractions.Parity.Tests.csproj", "{93B79631-E220-414B-8F0D-3885825DE1AC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -95,6 +98,10 @@ Global {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Debug|Any CPU.Build.0 = Debug|Any CPU {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Release|Any CPU.Build.0 = Release|Any CPU + {93B79631-E220-414B-8F0D-3885825DE1AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93B79631-E220-414B-8F0D-3885825DE1AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93B79631-E220-414B-8F0D-3885825DE1AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93B79631-E220-414B-8F0D-3885825DE1AC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -111,6 +118,7 @@ Global {015B3812-E01D-479C-895D-BDDF16E798CA} = {10F39E91-97F2-4812-9D2F-79BE18EC6B08} {7DE6AD74-E2B3-498E-90C5-DDF3188F333A} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} {5971F640-8BBA-4264-BCD6-60A97DD54B4A} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} + {93B79631-E220-414B-8F0D-3885825DE1AC} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8885C59C-F6A0-4C2F-A3BC-B720E9BD161F} diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ApiParityTests.cs b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/ApiParityTests.cs similarity index 73% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ApiParityTests.cs rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/ApiParityTests.cs index 2eb740b33..c5cc29a3c 100644 --- a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/ApiParityTests.cs +++ b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/ApiParityTests.cs @@ -1,8 +1,9 @@ using System.Collections.Generic; using System.Linq; +using System.Text.Json; +using System.Threading.Tasks; +using aweXpect; using NUnit.Framework; -using Snapshooter; -using Snapshooter.NUnit; using static System.Reflection.BindingFlags; namespace System.IO.Abstractions.Tests @@ -11,62 +12,62 @@ namespace System.IO.Abstractions.Tests public class ApiParityTests { [Test] - public void File() => - AssertParity( + public async Task File() => + await AssertParity( typeof(System.IO.File), typeof(System.IO.Abstractions.FileBase) ); [Test] - public void FileInfo() => - AssertParity( + public async Task FileInfo() => + await AssertParity( typeof(System.IO.FileInfo), typeof(System.IO.Abstractions.FileInfoBase) ); [Test] - public void FileVersionInfo() => - AssertParity( + public async Task FileVersionInfo() => + await AssertParity( typeof(System.Diagnostics.FileVersionInfo), typeof(System.IO.Abstractions.FileVersionInfoBase) ); [Test] - public void Directory() => - AssertParity( + public async Task Directory() => + await AssertParity( typeof(System.IO.Directory), typeof(System.IO.Abstractions.DirectoryBase) ); [Test] - public void DirectoryInfo() => - AssertParity( + public async Task DirectoryInfo() => + await AssertParity( typeof(System.IO.DirectoryInfo), typeof(System.IO.Abstractions.DirectoryInfoBase) ); [Test] - public void DriveInfo() => - AssertParity( + public async Task DriveInfo() => + await AssertParity( typeof(System.IO.DriveInfo), typeof(System.IO.Abstractions.DriveInfoBase) ); [Test] - public void Path() => - AssertParity( + public async Task Path() => + await AssertParity( typeof(System.IO.Path), typeof(System.IO.Abstractions.PathBase) ); [Test] - public void FileSystemWatcher() => - AssertParity( + public async Task FileSystemWatcher() => + await AssertParity( typeof(System.IO.FileSystemWatcher), typeof(System.IO.Abstractions.FileSystemWatcherBase) ); - private void AssertParity(Type referenceType, Type abstractionType) + private async Task AssertParity(Type referenceType, Type abstractionType) { static IEnumerable GetMembers(Type type) => type .GetMembers(bindingAttr: Instance | Static | Public | FlattenHierarchy) @@ -89,9 +90,23 @@ static IEnumerable GetMembers(Type type) => type extraMembers: abstractionMembers.Except(referenceMembers), missingMembers: referenceMembers.Except(abstractionMembers) ); - Snapshot.Match(diff, SnapshotNameExtension.Create(snapshotSuffix)); + + var serializedDiff = JsonSerializer.Serialize(diff, SerializerOptions); + + var snapshotPath = IO.Path.GetFullPath("../../../__snapshots__/"); + var fileName = $"ApiParityTests.{referenceType.Name}_{snapshotSuffix}.snap"; + var fileContent = IO.File.ReadAllText(IO.Path.Combine(snapshotPath, fileName)); + + await Expect.That(fileContent).IsEqualTo(serializedDiff) + .IgnoringNewlineStyle() + .IgnoringTrailingWhiteSpace(); } + private static JsonSerializerOptions SerializerOptions = new() + { + WriteIndented = true + }; + private readonly struct ApiDiff { public ApiDiff(IEnumerable extraMembers, IEnumerable missingMembers) diff --git a/tests/TestableIO.System.IO.Abstractions.Parity.Tests/TestableIO.System.IO.Abstractions.Parity.Tests.csproj b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/TestableIO.System.IO.Abstractions.Parity.Tests.csproj new file mode 100644 index 000000000..455a3a0e5 --- /dev/null +++ b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/TestableIO.System.IO.Abstractions.Parity.Tests.csproj @@ -0,0 +1,18 @@ + + + + The unit tests for our the parity checks + System.IO.Abstractions.Parity.Tests + System.IO.Abstractions.Parity.Tests + + + + + + + + + + + + diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DirectoryInfo_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Directory_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Directory_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.DriveInfo_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileInfo_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileInfo_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileSystemWatcher_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.FileVersionInfo_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.File_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.File_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET 6.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET 6.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET 6.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET 6.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET 8.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET 8.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET 8.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET 8.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET 9.0.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET 9.0.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET 9.0.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET 9.0.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET Framework 4.7.2.snap b/tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET Framework 4.7.2.snap similarity index 100% rename from tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/__snapshots__/ApiParityTests.Path_.NET Framework 4.7.2.snap rename to tests/TestableIO.System.IO.Abstractions.Parity.Tests/__snapshots__/ApiParityTests.Path_.NET Framework 4.7.2.snap diff --git a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj b/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj index 45fd3b956..fa122d5bc 100644 --- a/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj +++ b/tests/TestableIO.System.IO.Abstractions.Wrappers.Tests/TestableIO.System.IO.Abstractions.Wrappers.Tests.csproj @@ -10,8 +10,4 @@ - - - - From 9cbb9d621333c3dc1193597dd90d1b3e7bb28fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 22:06:19 +0100 Subject: [PATCH 09/15] refactor: use Nuke.build pipeline (#1218) Use [Nuke.build](https://nuke.build/) in pipelines --- .github/workflows/build.yml | 207 ++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 183 ++++++++++---------------- .gitignore | 4 + .nuke/build.schema.json | 141 ++++++++++++++++++++ .nuke/parameters.json | 4 + Directory.Build.props | 7 + Directory.Packages.props | 6 + Pipeline/.editorconfig | 11 ++ Pipeline/Build.ApiChecks.cs | 28 ++++ Pipeline/Build.CodeAnalysis.cs | 42 ++++++ Pipeline/Build.CodeCoverage.cs | 25 ++++ Pipeline/Build.Compile.cs | 92 +++++++++++++ Pipeline/Build.Pack.cs | 98 ++++++++++++++ Pipeline/Build.UnitTest.cs | 79 ++++++++++++ Pipeline/Build.cs | 31 +++++ Pipeline/Build.csproj | 31 +++++ Pipeline/Build.csproj.DotSettings | 31 +++++ Pipeline/BuildExtensions.cs | 36 ++++++ Pipeline/Configuration.cs | 16 +++ Pipeline/Directory.Build.props | 8 ++ Pipeline/Directory.Build.targets | 8 ++ System.IO.Abstractions.sln | 16 ++- build.cmd | 7 + build.ps1 | 74 +++++++++++ build.sh | 67 ++++++++++ 25 files changed, 1135 insertions(+), 117 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .nuke/build.schema.json create mode 100644 .nuke/parameters.json create mode 100644 Pipeline/.editorconfig create mode 100644 Pipeline/Build.ApiChecks.cs create mode 100644 Pipeline/Build.CodeAnalysis.cs create mode 100644 Pipeline/Build.CodeCoverage.cs create mode 100644 Pipeline/Build.Compile.cs create mode 100644 Pipeline/Build.Pack.cs create mode 100644 Pipeline/Build.UnitTest.cs create mode 100644 Pipeline/Build.cs create mode 100644 Pipeline/Build.csproj create mode 100644 Pipeline/Build.csproj.DotSettings create mode 100644 Pipeline/BuildExtensions.cs create mode 100644 Pipeline/Configuration.cs create mode 100644 Pipeline/Directory.Build.props create mode 100644 Pipeline/Directory.Build.targets create mode 100755 build.cmd create mode 100644 build.ps1 create mode 100755 build.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..4195b0ff4 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,207 @@ +name: Build + +on: + push: + branches: [ main ] + tags: [ 'v[0-9]+.[0-9]+.[0-9]+*' ] + +jobs: + unit-tests: + name: "Unit tests" + strategy: + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup .NET SDKs + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + 9.0.x + - name: Run unit tests (windows) + if: matrix.os == 'windows-latest' + run: ./build.ps1 CodeCoverage + - name: Run unit tests (ubuntu|macos) + if: matrix.os != 'windows-latest' + run: ./build.sh CodeCoverage + - name: Upload artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: ${{ runner.os }}-artifacts + path: | + ./Artifacts/* + ./TestResults/*.trx + + api-tests: + name: "API tests" + runs-on: ubuntu-latest + env: + DOTNET_NOLOGO: true + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup .NET SDKs + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + 9.0.x + - name: API checks + run: ./build.sh ApiChecks + - name: Upload artifacts + if: always() + uses: actions/upload-artifact@v4 + with: + name: API-tests + path: | + ./Artifacts/* + ./TestResults/*.trx + + static-code-analysis: + name: "Static code analysis" + runs-on: ubuntu-latest + env: + REPORTGENERATOR_LICENSE: ${{ secrets.REPORTGENERATOR_LICENSE }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + DOTNET_NOLOGO: true + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup .NET SDKs + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + 9.0.x + - name: Run sonarcloud analysis + run: ./build.sh CodeAnalysis + + publish-test-results: + name: "Publish Tests Results" + needs: [ api-tests, unit-tests ] + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + if: always() + steps: + - name: Download Artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + with: + comment_mode: always + files: "artifacts/**/**/*.trx" + + pack: + name: "Pack" + runs-on: ubuntu-latest + needs: [ publish-test-results, static-code-analysis ] + env: + DOTNET_NOLOGO: true + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup .NET SDKs + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + 9.0.x + - name: Pack nuget packages + run: ./build.sh Pack + - name: Upload packages + if: always() + uses: actions/upload-artifact@v4 + with: + path: Artifacts/Packages + name: Packages + + push: + name: "Push" + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + runs-on: macos-latest + environment: production + needs: [ pack ] + permissions: + contents: write + steps: + - name: Download packages + uses: actions/download-artifact@v4 + with: + name: Packages + path: Artifacts/Packages + - name: Publish + run: | + echo "Found the following packages to push:" + search_dir=Artifacts/Packages + for entry in Artifacts/Packages/*.nupkg + do + echo "- $entry" + done + for entry in Artifacts/Packages/*.nupkg + do + nuget push $entry -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}} -SkipDuplicate + done + - name: Check pre-release + id: check-pre-release + run: | + if [[ ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "release=true" >> $GITHUB_OUTPUT + fi + - name: Create GitHub release + if: steps.check-pre-release.outputs.release == 'true' + continue-on-error: true + uses: softprops/action-gh-release@v2 + with: + name: ${{ steps.tag.outputs.release_version }} + tag_name: ${{ steps.tag.outputs.release_version }} + token: ${{ secrets.GITHUB_TOKEN }} + generate_release_notes: true + + finalize-release: + name: "Finalize release" + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + needs: [ push ] + permissions: + contents: read + issues: write + pull-requests: write + steps: + - name: Check pre-release + id: check-pre-release + run: | + if [[ ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "release=true" >> $GITHUB_OUTPUT + fi + - name: Comment relevant issues and pull requests + if: steps.check-pre-release.outputs.release == 'true' + continue-on-error: true + uses: apexskier/github-release-commenter@v1.3.6 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + comment-template: | + This is addressed in release {release_link}. + label-template: | + state: released + skip-label: | + state: released diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 638b2c4cb..fb1cd2dc1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,23 +1,22 @@ -name: Continuous Integration +name: CI + on: - push: - branches: [main] + workflow_dispatch: pull_request: - branches: [main] + branches: [ main ] + jobs: - test: - name: Test + unit-tests: + name: "Unit tests" strategy: - fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ ubuntu-latest, windows-latest, macos-latest ] runs-on: ${{ matrix.os }} steps: - - name: Checkout sources - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup .NET + - name: Setup .NET SDKs uses: actions/setup-dotnet@v4 with: dotnet-version: | @@ -25,22 +24,31 @@ jobs: 7.0.x 8.0.x 9.0.x - - name: Run tests - run: dotnet test --filter FullyQualifiedName\!~TestableIO.System.IO.Abstractions.Api.Tests --collect:"XPlat Code Coverage" --logger "GitHubActions" - - name: Upload coverage + - name: Run unit tests (windows) + if: matrix.os == 'windows-latest' + run: ./build.ps1 CodeCoverage + - name: Run unit tests (ubuntu|macos) + if: matrix.os != 'windows-latest' + run: ./build.sh CodeCoverage + - name: Upload artifacts + if: always() uses: actions/upload-artifact@v4 with: - name: Code coverage ${{ matrix.os }} - path: "**/coverage.cobertura.xml" - api-test: - name: API Test + name: ${{ runner.os }}-artifacts + path: | + ./Artifacts/* + ./TestResults/*.trx + + api-tests: + name: "API tests" runs-on: ubuntu-latest + env: + DOTNET_NOLOGO: true steps: - - name: Checkout sources - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup .NET + - name: Setup .NET SDKs uses: actions/setup-dotnet@v4 with: dotnet-version: | @@ -48,106 +56,55 @@ jobs: 7.0.x 8.0.x 9.0.x - - name: Build solution - run: dotnet build - - name: Run tests - run: dotnet test --filter FullyQualifiedName~TestableIO.System.IO.Abstractions.Api.Tests --logger "GitHubActions" - coverage: - name: Coverage - needs: [test, api-test] - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - name: Setup .NET - uses: actions/setup-dotnet@v4 - - uses: actions/download-artifact@v4 - with: - name: Code coverage ubuntu-latest - path: coverage-ubuntu - - uses: actions/download-artifact@v4 - with: - name: Code coverage windows-latest - path: coverage-windows - - uses: actions/download-artifact@v4 - with: - name: Code coverage macos-latest - path: coverage-macos - - name: Generate coverage report - uses: danielpalme/ReportGenerator-GitHub-Action@v5.4.4 - with: - reports: "**/coverage.cobertura.xml" - targetdir: "coverage-report" - reporttypes: "Cobertura" - - name: Publish coverage report to Codacy - uses: codacy/codacy-coverage-reporter-action@master - if: github.repository == 'TestableIO/System.IO.Abstractions' && github.event_name == 'push' + - name: API checks + run: ./build.sh ApiChecks + - name: Upload artifacts + if: always() + uses: actions/upload-artifact@v4 with: - project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} - coverage-reports: coverage-report/Cobertura.xml - pack: - name: Pack - needs: [test, api-test] + name: API-tests + path: | + ./Artifacts/* + ./TestResults/*.trx + + static-code-analysis: + name: "Static code analysis" + if: ${{ github.actor != 'dependabot[bot]' }} runs-on: ubuntu-latest + env: + REPORTGENERATOR_LICENSE: ${{ secrets.REPORTGENERATOR_LICENSE }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + DOTNET_NOLOGO: true steps: - - name: Checkout sources - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup .NET + - name: Setup .NET SDKs uses: actions/setup-dotnet@v4 - - name: Create packages - run: dotnet pack --configuration Release --output ./packages - - name: Upload a Build Artifact - uses: actions/upload-artifact@v4 with: - name: NuGet packages - path: packages/*.* - deploy: - name: Deploy - if: | - github.ref == 'refs/heads/main' && - github.event_name == 'push' && - ( - startsWith(github.event.head_commit.message, 'feat:') || - startsWith(github.event.head_commit.message, 'feat!:') || - startsWith(github.event.head_commit.message, 'fix:') || - startsWith(github.event.head_commit.message, 'fix!:') || - contains(github.event.head_commit.message, 'breaking change') - ) - needs: [pack] + dotnet-version: | + 6.0.x + 7.0.x + 8.0.x + 9.0.x + - name: Run sonarcloud analysis + run: ./build.sh CodeAnalysis + + publish-test-results: + name: "Publish Tests Results" + needs: [ api-tests, unit-tests ] runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + if: always() steps: - - name: Checkout sources - uses: actions/checkout@v4 + - name: Download Artifacts + uses: actions/download-artifact@v4 with: - fetch-depth: 0 - - name: Setup .NET - uses: actions/setup-dotnet@v4 - - uses: actions/download-artifact@v4 - with: - name: NuGet packages - path: packages - - name: Push packages - run: dotnet nuget push "packages/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate - - uses: dotnet/nbgv@v0.4.2 - id: nbgv - - name: Create GitHub release - uses: softprops/action-gh-release@v2 + path: artifacts + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 with: - name: v${{ steps.nbgv.outputs.SemVer2 }} - tag_name: v${{ steps.nbgv.outputs.SemVer2 }} - token: ${{ secrets.GITHUB_TOKEN }} - generate_release_notes: true - - name: Wait for GitHub release to be available - run: sleep 30s - shell: bash - - name: Comment on relevant PRs and issues - uses: apexskier/github-release-commenter@v1.3.6 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - comment-template: | - This is addressed in release {release_link}. - label-template: | - state: released - + comment_mode: always + files: "artifacts/**/**/*.trx" diff --git a/.gitignore b/.gitignore index 843a9fc23..2a6761c23 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# Artifact and test results directories +/Artifacts +/TestResults + ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json new file mode 100644 index 000000000..47d67fd11 --- /dev/null +++ b/.nuke/build.schema.json @@ -0,0 +1,141 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "definitions": { + "Host": { + "type": "string", + "enum": [ + "AppVeyor", + "AzurePipelines", + "Bamboo", + "Bitbucket", + "Bitrise", + "GitHubActions", + "GitLab", + "Jenkins", + "Rider", + "SpaceAutomation", + "TeamCity", + "Terminal", + "TravisCI", + "VisualStudio", + "VSCode" + ] + }, + "ExecutableTarget": { + "type": "string", + "enum": [ + "ApiChecks", + "CalculateNugetVersion", + "Clean", + "CodeAnalysis", + "CodeAnalysisBegin", + "CodeAnalysisEnd", + "CodeCoverage", + "Compile", + "DotNetFrameworkUnitTests", + "DotNetUnitTests", + "Pack", + "Restore", + "UnitTests", + "UpdateReadme" + ] + }, + "Verbosity": { + "type": "string", + "description": "", + "enum": [ + "Verbose", + "Normal", + "Minimal", + "Quiet" + ] + }, + "NukeBuild": { + "properties": { + "Continue": { + "type": "boolean", + "description": "Indicates to continue a previously failed build attempt" + }, + "Help": { + "type": "boolean", + "description": "Shows the help text for this build assembly" + }, + "Host": { + "description": "Host for execution. Default is 'automatic'", + "$ref": "#/definitions/Host" + }, + "NoLogo": { + "type": "boolean", + "description": "Disables displaying the NUKE logo" + }, + "Partition": { + "type": "string", + "description": "Partition to use on CI" + }, + "Plan": { + "type": "boolean", + "description": "Shows the execution plan (HTML)" + }, + "Profile": { + "type": "array", + "description": "Defines the profiles to load", + "items": { + "type": "string" + } + }, + "Root": { + "type": "string", + "description": "Root directory during build execution" + }, + "Skip": { + "type": "array", + "description": "List of targets to be skipped. Empty list skips all dependencies", + "items": { + "$ref": "#/definitions/ExecutableTarget" + } + }, + "Target": { + "type": "array", + "description": "List of targets to be invoked. Default is '{default_target}'", + "items": { + "$ref": "#/definitions/ExecutableTarget" + } + }, + "Verbosity": { + "description": "Logging verbosity during build execution. Default is 'Normal'", + "$ref": "#/definitions/Verbosity" + } + } + } + }, + "allOf": [ + { + "properties": { + "Configuration": { + "type": "string", + "description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)", + "enum": [ + "Debug", + "Release" + ] + }, + "GithubToken": { + "type": "string", + "description": "Github Token" + }, + "Solution": { + "type": "string", + "description": "Path to a solution file that is automatically loaded" + }, + "SonarToken": { + "type": "string", + "description": "The key to push to sonarcloud", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + } + } + }, + { + "$ref": "#/definitions/NukeBuild" + } + ] +} diff --git a/.nuke/parameters.json b/.nuke/parameters.json new file mode 100644 index 000000000..629b58457 --- /dev/null +++ b/.nuke/parameters.json @@ -0,0 +1,4 @@ +{ + "$schema": "build.schema.json", + "Solution": "System.IO.Abstractions.sln" +} diff --git a/Directory.Build.props b/Directory.Build.props index a7a394986..0fce8c99e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -8,6 +8,7 @@ $(MSBuildThisFileDirectory)StrongName.snk latest testing + CS1591 https://github.com/TestableIO/System.IO.Abstractions MIT README.md @@ -18,6 +19,12 @@ $(DefineConstants);FEATURE_PATH_SPAN;FEATURE_FILE_SPAN $(DefineConstants);FEATURE_SERIALIZABLE + + true + true + true + snupkg + runtime; build; native; contentfiles; analyzers diff --git a/Directory.Packages.props b/Directory.Packages.props index f771b06d0..ffdf1c746 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -25,4 +25,10 @@ + + + + + + diff --git a/Pipeline/.editorconfig b/Pipeline/.editorconfig new file mode 100644 index 000000000..31e43dcd8 --- /dev/null +++ b/Pipeline/.editorconfig @@ -0,0 +1,11 @@ +[*.cs] +dotnet_style_qualification_for_field = false:warning +dotnet_style_qualification_for_property = false:warning +dotnet_style_qualification_for_method = false:warning +dotnet_style_qualification_for_event = false:warning +dotnet_style_require_accessibility_modifiers = never:warning + +csharp_style_expression_bodied_methods = true:silent +csharp_style_expression_bodied_properties = true:warning +csharp_style_expression_bodied_indexers = true:warning +csharp_style_expression_bodied_accessors = true:warning diff --git a/Pipeline/Build.ApiChecks.cs b/Pipeline/Build.ApiChecks.cs new file mode 100644 index 000000000..f99768d39 --- /dev/null +++ b/Pipeline/Build.ApiChecks.cs @@ -0,0 +1,28 @@ +using Nuke.Common; +using Nuke.Common.ProjectModel; +using Nuke.Common.Tooling; +using Nuke.Common.Tools.DotNet; +using static Nuke.Common.Tools.DotNet.DotNetTasks; + +// ReSharper disable AllUnderscoreLocalParameterName + +namespace Build; + +partial class Build +{ + Target ApiChecks => _ => _ + .DependsOn(Compile) + .Executes(() => + { + Project project = Solution.Tests.TestableIO_System_IO_Abstractions_Api_Tests; + + DotNetTest(s => s + .SetConfiguration(Configuration == Configuration.Debug ? "Debug" : "Release") + .SetProcessEnvironmentVariable("DOTNET_CLI_UI_LANGUAGE", "en-US") + .EnableNoBuild() + .SetResultsDirectory(TestResultsDirectory) + .CombineWith(cc => cc + .SetProjectFile(project) + .AddLoggers($"trx;LogFileName={project.Name}.trx")), completeOnFailure: true); + }); +} diff --git a/Pipeline/Build.CodeAnalysis.cs b/Pipeline/Build.CodeAnalysis.cs new file mode 100644 index 000000000..9f3e9b035 --- /dev/null +++ b/Pipeline/Build.CodeAnalysis.cs @@ -0,0 +1,42 @@ +using Nuke.Common; +using Nuke.Common.Tools.SonarScanner; + +// ReSharper disable AllUnderscoreLocalParameterName + +namespace Build; + +partial class Build +{ + [Parameter("The key to push to sonarcloud")] [Secret] readonly string SonarToken; + + Target CodeAnalysisBegin => _ => _ + .Unlisted() + .Before(Compile) + .Before(CodeCoverage) + .Executes(() => + { + SonarScannerTasks.SonarScannerBegin(s => s + .SetOrganization("testableio") + .SetProjectKey("TestableIO_System.IO.Abstractions") + .AddVSTestReports(TestResultsDirectory / "*.trx") + .AddOpenCoverPaths(TestResultsDirectory / "reports" / "OpenCover.xml") + .SetPullRequestOrBranchName(GitHubActions, GitVersion) + .SetVersion(GitVersion.SemVer) + .SetToken(SonarToken)); + }); + + Target CodeAnalysisEnd => _ => _ + .Unlisted() + .DependsOn(Compile) + .DependsOn(CodeCoverage) + .OnlyWhenDynamic(() => IsServerBuild) + .Executes(() => + { + SonarScannerTasks.SonarScannerEnd(s => s + .SetToken(SonarToken)); + }); + + Target CodeAnalysis => _ => _ + .DependsOn(CodeAnalysisBegin) + .DependsOn(CodeAnalysisEnd); +} diff --git a/Pipeline/Build.CodeCoverage.cs b/Pipeline/Build.CodeCoverage.cs new file mode 100644 index 000000000..890fd9cb5 --- /dev/null +++ b/Pipeline/Build.CodeCoverage.cs @@ -0,0 +1,25 @@ +using Nuke.Common; +using Nuke.Common.Tooling; +using Nuke.Common.Tools.ReportGenerator; +using static Nuke.Common.Tools.ReportGenerator.ReportGeneratorTasks; + +// ReSharper disable AllUnderscoreLocalParameterName + +namespace Build; + +partial class Build +{ + Target CodeCoverage => _ => _ + .DependsOn(UnitTests) + .Executes(() => + { + ReportGenerator(s => s + .SetProcessToolPath(NuGetToolPathResolver.GetPackageExecutable("ReportGenerator", "ReportGenerator.dll", + framework: "net8.0")) + .SetTargetDirectory(TestResultsDirectory / "reports") + .AddReports(TestResultsDirectory / "**/coverage.cobertura.xml") + .AddReportTypes(ReportTypes.OpenCover) + .AddFileFilters("-*.g.cs") + .SetAssemblyFilters("+TestableIO*")); + }); +} diff --git a/Pipeline/Build.Compile.cs b/Pipeline/Build.Compile.cs new file mode 100644 index 000000000..ba5da0b1c --- /dev/null +++ b/Pipeline/Build.Compile.cs @@ -0,0 +1,92 @@ +using System; +using System.Linq; +using Nuke.Common; +using Nuke.Common.IO; +using Nuke.Common.Tools.DotNet; +using Nuke.Common.Utilities; +using Nuke.Common.Utilities.Collections; +using Serilog; +using static Nuke.Common.Tools.DotNet.DotNetTasks; + +// ReSharper disable AllUnderscoreLocalParameterName + +namespace Build; + +partial class Build +{ + string BranchName; + string SemVer; + + Target CalculateNugetVersion => _ => _ + .Unlisted() + .Executes(() => + { + SemVer = GitVersion.SemVer; + BranchName = GitVersion.BranchName; + + if (GitHubActions?.IsPullRequest == true) + { + string buildNumber = GitHubActions.RunNumber.ToString(); + Console.WriteLine( + $"Branch spec is a pull request. Adding build number {buildNumber}"); + + SemVer = string.Join('.', GitVersion.SemVer.Split('.').Take(3).Union([buildNumber,])); + } + + Console.WriteLine($"SemVer = {SemVer}"); + }); + + Target Clean => _ => _ + .Unlisted() + .Before(Restore) + .Executes(() => + { + ArtifactsDirectory.CreateOrCleanDirectory(); + Log.Information("Cleaned {path}...", ArtifactsDirectory); + + TestResultsDirectory.CreateOrCleanDirectory(); + Log.Information("Cleaned {path}...", TestResultsDirectory); + }); + + Target Restore => _ => _ + .Unlisted() + .DependsOn(Clean) + .Executes(() => + { + DotNetRestore(s => s + .SetProjectFile(Solution) + .EnableNoCache() + .SetConfigFile(RootDirectory / "nuget.config")); + }); + + Target Compile => _ => _ + .DependsOn(Restore) + .DependsOn(CalculateNugetVersion) + .Executes(() => + { + string preRelease = "-CI"; + if (GitHubActions == null) + { + preRelease = "-DEV"; + } + else if (GitHubActions.Ref.StartsWith("refs/tags/", StringComparison.OrdinalIgnoreCase)) + { + int preReleaseIndex = GitHubActions.Ref.IndexOf('-'); + preRelease = preReleaseIndex > 0 ? GitHubActions.Ref[preReleaseIndex..] : ""; + } + + ReportSummary(s => s + .WhenNotNull(SemVer, (summary, semVer) => summary + .AddPair("Version", semVer + preRelease))); + + DotNetBuild(s => s + .SetProjectFile(Solution) + .SetConfiguration(Configuration) + .EnableNoLogo() + .EnableNoRestore() + .SetVersion(SemVer + preRelease) + .SetAssemblyVersion(GitVersion.AssemblySemVer) + .SetFileVersion(GitVersion.AssemblySemFileVer) + .SetInformationalVersion(GitVersion.InformationalVersion)); + }); +} diff --git a/Pipeline/Build.Pack.cs b/Pipeline/Build.Pack.cs new file mode 100644 index 000000000..30de44836 --- /dev/null +++ b/Pipeline/Build.Pack.cs @@ -0,0 +1,98 @@ +using System.IO; +using System.Linq; +using System.Text; +using Nuke.Common; +using Nuke.Common.IO; +using Nuke.Common.ProjectModel; +using Nuke.Common.Utilities; +using Nuke.Common.Utilities.Collections; +using static Serilog.Log; + +// ReSharper disable AllUnderscoreLocalParameterName + +namespace Build; + +partial class Build +{ + Target UpdateReadme => _ => _ + .DependsOn(Clean) + .Before(Compile) + .Executes(() => + { + string version = string.Join('.', GitVersion.SemVer.Split('.').Take(3)); + if (version.IndexOf('-') != -1) + { + version = version.Substring(0, version.IndexOf('-')); + } + + StringBuilder sb = new(); + string[] lines = File.ReadAllLines(Solution.Directory / "README.md"); + sb.AppendLine(lines.First()); + sb.AppendLine( + $"[![Changelog](https://img.shields.io/badge/Changelog-v{version}-blue)](https://github.com/TestableIO/System.IO.Abstractions/releases/tag/v{version})"); + foreach (string line in lines.Skip(1)) + { + if (line.StartsWith("[![Build](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml") || + line.StartsWith("[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure")) + { + continue; + } + + if (line.StartsWith("[![Coverage](https://sonarcloud.io/api/project_badges/measure")) + { + sb.AppendLine(line + .Replace(")", $"&branch=release/v{version})")); + continue; + } + + if (line.StartsWith("[![Mutation testing badge](https://img.shields.io/endpoint")) + { + sb.AppendLine(line + .Replace("%2Fmain)", $"%2Frelease%2Fv{version})") + .Replace("/main)", $"/release/v{version})")); + continue; + } + + sb.AppendLine(line); + } + + File.WriteAllText(ArtifactsDirectory / "README.md", sb.ToString()); + }); + + Target Pack => _ => _ + .DependsOn(UpdateReadme) + .DependsOn(Compile) + .Executes(() => + { + ReportSummary(s => s + .WhenNotNull(SemVer, (c, semVer) => c + .AddPair("Packed version", semVer))); + + AbsolutePath packagesDirectory = ArtifactsDirectory / "Packages"; + packagesDirectory.CreateOrCleanDirectory(); + + foreach (Project project in new[] + { + Solution.TestableIO_System_IO_Abstractions_Wrappers, + Solution.TestableIO_System_IO_Abstractions_TestingHelpers, + Solution.Meta.TestableIO_System_IO_Abstractions, + Solution.Meta.System_IO_Abstractions, + Solution.Meta.System_IO_Abstractions_TestingHelpers, + }) + { + foreach (string package in + Directory.EnumerateFiles(project.Directory / "bin", "*.nupkg", SearchOption.AllDirectories)) + { + File.Move(package, packagesDirectory / Path.GetFileName(package)); + Debug("Found nuget package: {PackagePath}", package); + } + + foreach (string symbolPackage in + Directory.EnumerateFiles(project.Directory / "bin", "*.snupkg", SearchOption.AllDirectories)) + { + File.Move(symbolPackage, packagesDirectory / Path.GetFileName(symbolPackage)); + Debug("Found symbol package: {PackagePath}", symbolPackage); + } + } + }); +} diff --git a/Pipeline/Build.UnitTest.cs b/Pipeline/Build.UnitTest.cs new file mode 100644 index 000000000..c88133073 --- /dev/null +++ b/Pipeline/Build.UnitTest.cs @@ -0,0 +1,79 @@ +using System.IO; +using System.Linq; +using Nuke.Common; +using Nuke.Common.IO; +using Nuke.Common.ProjectModel; +using Nuke.Common.Tooling; +using Nuke.Common.Tools.DotNet; +using Nuke.Common.Tools.NUnit; +using static Nuke.Common.Tools.DotNet.DotNetTasks; + +// ReSharper disable AllUnderscoreLocalParameterName + +namespace Build; + +partial class Build +{ + Target UnitTests => _ => _ + .DependsOn(DotNetFrameworkUnitTests) + .DependsOn(DotNetUnitTests); + + Project[] UnitTestProjects => + [ + Solution.Tests.TestableIO_System_IO_Abstractions_Wrappers_Tests, + Solution.Tests.TestableIO_System_IO_Abstractions_TestingHelpers_Tests, + Solution.Tests.TestableIO_System_IO_Abstractions_Parity_Tests, + ]; + + Target DotNetFrameworkUnitTests => _ => _ + .Unlisted() + .DependsOn(Compile) + .OnlyWhenDynamic(() => EnvironmentInfo.IsWin) + .Executes(() => + { + var testAssemblies = UnitTestProjects + .SelectMany(project => + project.Directory.GlobFiles( + $"bin/{(Configuration == Configuration.Debug ? "Debug" : "Release")}/net472/*.Tests.dll")) + .Select(p => p.ToString()) + .ToArray(); + + Assert.NotEmpty(testAssemblies.ToList()); + + foreach (var testAssembly in testAssemblies) + { + var currentDirectory = Path.GetDirectoryName(testAssembly); + + NUnitTasks.NUnit3(s => s + .SetInputFiles(testAssembly) + .SetProcessWorkingDirectory(currentDirectory) + ); + } + }); + + Target DotNetUnitTests => _ => _ + .Unlisted() + .DependsOn(Compile) + .Executes(() => + { + string[] excludedFrameworks = ["net48",]; + DotNetTest(s => s + .SetConfiguration(Configuration) + .SetProcessEnvironmentVariable("DOTNET_CLI_UI_LANGUAGE", "en-US") + .EnableNoBuild() + .SetDataCollector("XPlat Code Coverage") + .SetResultsDirectory(TestResultsDirectory) + .CombineWith( + UnitTestProjects, + (settings, project) => settings + .SetProjectFile(project) + .CombineWith( + project.GetTargetFrameworks()?.Except(excludedFrameworks), + (frameworkSettings, framework) => frameworkSettings + .SetFramework(framework) + .AddLoggers($"trx;LogFileName={project.Name}_{framework}.trx") + ) + ), completeOnFailure: true + ); + }); +} \ No newline at end of file diff --git a/Pipeline/Build.cs b/Pipeline/Build.cs new file mode 100644 index 000000000..10372f655 --- /dev/null +++ b/Pipeline/Build.cs @@ -0,0 +1,31 @@ +using Nuke.Common; +using Nuke.Common.CI.GitHubActions; +using Nuke.Common.IO; +using Nuke.Common.ProjectModel; +using Nuke.Common.Tools.GitVersion; + +namespace Build; + +[GitHubActions( + "Build", + GitHubActionsImage.UbuntuLatest, + AutoGenerate = false, + ImportSecrets = [nameof(GithubToken),] +)] +partial class Build : NukeBuild +{ + [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] + readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release; + + [Parameter("Github Token")] readonly string GithubToken; + + [Required] [GitVersion(Framework = "net8.0", NoCache = true, NoFetch = true)] readonly GitVersion GitVersion; + + [Solution(GenerateProjects = true)] readonly Solution Solution; + + AbsolutePath ArtifactsDirectory => RootDirectory / "Artifacts"; + AbsolutePath TestResultsDirectory => RootDirectory / "TestResults"; + GitHubActions GitHubActions => GitHubActions.Instance; + + public static int Main() => Execute(x => x.UnitTests, x => x.Pack); +} diff --git a/Pipeline/Build.csproj b/Pipeline/Build.csproj new file mode 100644 index 000000000..074ab05ea --- /dev/null +++ b/Pipeline/Build.csproj @@ -0,0 +1,31 @@ + + + + Exe + net8.0 + + CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006 + .. + .. + 1 + false + + + + + + + + + + + + + + + + + + + + diff --git a/Pipeline/Build.csproj.DotSettings b/Pipeline/Build.csproj.DotSettings new file mode 100644 index 000000000..88a8824cd --- /dev/null +++ b/Pipeline/Build.csproj.DotSettings @@ -0,0 +1,31 @@ + + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + Implicit + Implicit + ExpressionBody + 0 + NEXT_LINE + True + False + 120 + IF_OWNER_IS_SINGLE_LINE + WRAP_IF_LONG + False + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="False" Prefix="" Suffix="" Style="AaBb" /></Policy> + <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="False" Prefix="" Suffix="" Style="AaBb" /></Policy> + True + True + True + True + True + True + True + True + True + True diff --git a/Pipeline/BuildExtensions.cs b/Pipeline/BuildExtensions.cs new file mode 100644 index 000000000..cd3e593a6 --- /dev/null +++ b/Pipeline/BuildExtensions.cs @@ -0,0 +1,36 @@ +using System; +using Nuke.Common.CI.GitHubActions; +using Nuke.Common.Tools.GitVersion; +using Nuke.Common.Tools.SonarScanner; +using Serilog; + +namespace Build; + +public static class BuildExtensions +{ + public static SonarScannerBeginSettings SetPullRequestOrBranchName( + this SonarScannerBeginSettings settings, + GitHubActions gitHubActions, + GitVersion gitVersion) + { + if (gitHubActions?.IsPullRequest == true) + { + Log.Information("Use pull request analysis"); + return settings + .SetPullRequestKey(gitHubActions.PullRequestNumber.ToString()) + .SetPullRequestBranch(gitHubActions.Ref) + .SetPullRequestBase(gitHubActions.BaseRef); + } + + if (gitHubActions?.Ref.StartsWith("refs/tags/", StringComparison.OrdinalIgnoreCase) == true) + { + string version = gitHubActions.Ref.Substring("refs/tags/".Length); + string branchName = "release/" + version; + Log.Information("Use release branch analysis for '{BranchName}'", branchName); + return settings.SetBranchName(branchName); + } + + Log.Information("Use branch analysis for '{BranchName}'", gitVersion.BranchName); + return settings.SetBranchName(gitVersion.BranchName); + } +} diff --git a/Pipeline/Configuration.cs b/Pipeline/Configuration.cs new file mode 100644 index 000000000..9c08b1ae9 --- /dev/null +++ b/Pipeline/Configuration.cs @@ -0,0 +1,16 @@ +using System; +using System.ComponentModel; +using System.Linq; +using Nuke.Common.Tooling; + +[TypeConverter(typeof(TypeConverter))] +public class Configuration : Enumeration +{ + public static Configuration Debug = new Configuration { Value = nameof(Debug) }; + public static Configuration Release = new Configuration { Value = nameof(Release) }; + + public static implicit operator string(Configuration configuration) + { + return configuration.Value; + } +} diff --git a/Pipeline/Directory.Build.props b/Pipeline/Directory.Build.props new file mode 100644 index 000000000..e147d6352 --- /dev/null +++ b/Pipeline/Directory.Build.props @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Pipeline/Directory.Build.targets b/Pipeline/Directory.Build.targets new file mode 100644 index 000000000..253260956 --- /dev/null +++ b/Pipeline/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln index 13f0b57a8..4014cdb00 100644 --- a/System.IO.Abstractions.sln +++ b/System.IO.Abstractions.sln @@ -1,3 +1,4 @@ + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32825.248 @@ -24,18 +25,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestableIO.System.IO.Abstra EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_", "_", "{BBF7AD8D-5522-48C0-A906-00CBB72308A0}" ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore Directory.Build.props = Directory.Build.props + Directory.Packages.props = Directory.Packages.props global.json = global.json README.md = README.md version.json = version.json - Directory.Packages.props = Directory.Packages.props - .gitignore = .gitignore EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{2BE9161B-A3F3-4511-81DB-DB1DCB6375C9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{D905E09D-6DC3-4F7C-8E83-82FADAE2C9E5}" ProjectSection(SolutionItems) = preProject + .github\workflows\build.yml = .github\workflows\build.yml .github\workflows\ci.yml = .github\workflows\ci.yml .github\workflows\pr.yml = .github\workflows\pr.yml EndProjectSection @@ -54,6 +56,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{5971F640 tests\Directory.Build.props = tests\Directory.Build.props EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "Pipeline\Build.csproj", "{DC39543E-0A17-4869-96C9-B876EB1BB117}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pipeline", "Pipeline", "{8091BCA3-70F8-4506-9701-C3074E79A66D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestableIO.System.IO.Abstractions.Parity.Tests", "tests\TestableIO.System.IO.Abstractions.Parity.Tests\TestableIO.System.IO.Abstractions.Parity.Tests.csproj", "{93B79631-E220-414B-8F0D-3885825DE1AC}" EndProject Global @@ -98,6 +103,8 @@ Global {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Debug|Any CPU.Build.0 = Debug|Any CPU {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7DE6AD74-E2B3-498E-90C5-DDF3188F333A}.Release|Any CPU.Build.0 = Release|Any CPU + {DC39543E-0A17-4869-96C9-B876EB1BB117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DC39543E-0A17-4869-96C9-B876EB1BB117}.Release|Any CPU.ActiveCfg = Release|Any CPU {93B79631-E220-414B-8F0D-3885825DE1AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {93B79631-E220-414B-8F0D-3885825DE1AC}.Debug|Any CPU.Build.0 = Debug|Any CPU {93B79631-E220-414B-8F0D-3885825DE1AC}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -109,15 +116,16 @@ Global GlobalSection(NestedProjects) = preSolution {B7DA254D-496F-4C50-969C-CF925758E2ED} = {C078E0B6-9747-475F-A999-B9E775DF6643} {0103D32A-6124-4A1A-AD6C-30EB957F09B0} = {C078E0B6-9747-475F-A999-B9E775DF6643} + {015B3812-E01D-479C-895D-BDDF16E798CA} = {10F39E91-97F2-4812-9D2F-79BE18EC6B08} {7105D748-1253-409F-A624-4879412EF3C2} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} + {1B8388D2-58A7-47B8-89EC-C5A94A0FEED5} = {C078E0B6-9747-475F-A999-B9E775DF6643} {919888D2-E37D-40E7-8AD0-600F9429316D} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} {D905E09D-6DC3-4F7C-8E83-82FADAE2C9E5} = {2BE9161B-A3F3-4511-81DB-DB1DCB6375C9} - {1B8388D2-58A7-47B8-89EC-C5A94A0FEED5} = {C078E0B6-9747-475F-A999-B9E775DF6643} {B66A0B3F-6A00-482E-99E2-27D8DECB075E} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} - {015B3812-E01D-479C-895D-BDDF16E798CA} = {10F39E91-97F2-4812-9D2F-79BE18EC6B08} {7DE6AD74-E2B3-498E-90C5-DDF3188F333A} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} {5971F640-8BBA-4264-BCD6-60A97DD54B4A} = {BBF7AD8D-5522-48C0-A906-00CBB72308A0} + {DC39543E-0A17-4869-96C9-B876EB1BB117} = {8091BCA3-70F8-4506-9701-C3074E79A66D} {93B79631-E220-414B-8F0D-3885825DE1AC} = {BCEC61BD-4941-41EC-975A-ACEFC7AC1780} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/build.cmd b/build.cmd new file mode 100755 index 000000000..b08cc590f --- /dev/null +++ b/build.cmd @@ -0,0 +1,7 @@ +:; set -eo pipefail +:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) +:; ${SCRIPT_DIR}/build.sh "$@" +:; exit $? + +@ECHO OFF +powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %* diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 000000000..8b218a560 --- /dev/null +++ b/build.ps1 @@ -0,0 +1,74 @@ +[CmdletBinding()] +Param( + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$BuildArguments +) + +Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)" + +Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 } +$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent + +########################################################################### +# CONFIGURATION +########################################################################### + +$BuildProjectFile = "$PSScriptRoot\Pipeline\Build.csproj" +$TempDirectory = "$PSScriptRoot\\.nuke\temp" + +$DotNetGlobalFile = "$PSScriptRoot\\global.json" +$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" +$DotNetChannel = "STS" + +$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1 +$env:DOTNET_NOLOGO = 1 + +########################################################################### +# EXECUTION +########################################################################### + +function ExecSafe([scriptblock] $cmd) { + & $cmd + if ($LASTEXITCODE) { exit $LASTEXITCODE } +} + +# If dotnet CLI is installed globally and it matches requested version, use for execution +if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and ` + $(dotnet --version) -and $LASTEXITCODE -eq 0) { + $env:DOTNET_EXE = (Get-Command "dotnet").Path +} +else { + # Download install script + $DotNetInstallFile = "$TempDirectory\dotnet-install.ps1" + New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + (New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile) + + # If global.json exists, load expected version + if (Test-Path $DotNetGlobalFile) { + $DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) + if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { + $DotNetVersion = $DotNetGlobal.sdk.version + } + } + + # Install by channel or version + $DotNetDirectory = "$TempDirectory\dotnet-win" + if (!(Test-Path variable:DotNetVersion)) { + ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath } + } else { + ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath } + } + $env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe" + $env:PATH = "$DotNetDirectory;$env:PATH" +} + +Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)" + +if (Test-Path env:NUKE_ENTERPRISE_TOKEN) { + & $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null + & $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null +} + +ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet } +ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments } diff --git a/build.sh b/build.sh new file mode 100755 index 000000000..46f2bac0a --- /dev/null +++ b/build.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +bash --version 2>&1 | head -n 1 + +set -eo pipefail +SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) + +########################################################################### +# CONFIGURATION +########################################################################### + +BUILD_PROJECT_FILE="$SCRIPT_DIR/Pipeline/Build.csproj" +TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp" + +DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json" +DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh" +DOTNET_CHANNEL="STS" + +export DOTNET_CLI_TELEMETRY_OPTOUT=1 +export DOTNET_NOLOGO=1 + +########################################################################### +# EXECUTION +########################################################################### + +function FirstJsonValue { + perl -nle 'print $1 if m{"'"$1"'": "([^"]+)",?}' <<< "${@:2}" +} + +# If dotnet CLI is installed globally and it matches requested version, use for execution +if [ -x "$(command -v dotnet)" ] && dotnet --version &>/dev/null; then + export DOTNET_EXE="$(command -v dotnet)" +else + # Download install script + DOTNET_INSTALL_FILE="$TEMP_DIRECTORY/dotnet-install.sh" + mkdir -p "$TEMP_DIRECTORY" + curl -Lsfo "$DOTNET_INSTALL_FILE" "$DOTNET_INSTALL_URL" + chmod +x "$DOTNET_INSTALL_FILE" + + # If global.json exists, load expected version + if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then + DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")") + if [[ "$DOTNET_VERSION" == "" ]]; then + unset DOTNET_VERSION + fi + fi + + # Install by channel or version + DOTNET_DIRECTORY="$TEMP_DIRECTORY/dotnet-unix" + if [[ -z ${DOTNET_VERSION+x} ]]; then + "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --channel "$DOTNET_CHANNEL" --no-path + else + "$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path + fi + export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet" + export PATH="$DOTNET_DIRECTORY:$PATH" +fi + +echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)" + +if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "$NUKE_ENTERPRISE_TOKEN" != "" ]]; then + "$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true + "$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true +fi + +"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet +"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@" From a6b4bd05282698cd96e3b88f914a6c4fbb2765c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 22:22:41 +0100 Subject: [PATCH 10/15] docs: update badges in README (#1220) After using Nuke.Build in #1218, update the badges in the README file to use: - [Build pipeline](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml) instead of continuous integration badge - [Sonarcloud](https://sonarcloud.io/summary/new_code?id=TestableIO_System.IO.Abstractions&branch=main) for quality gate instead of [Codacy](https://app.codacy.com/gh/TestableIO/System.IO.Abstractions/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 17e066414..cc1418ceb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![System.IO.Abstractions](https://socialify.git.ci/TestableIO/System.IO.Abstractions/image?description=1&font=Source%20Code%20Pro&forks=1&issues=1&pattern=Charlie%20Brown&pulls=1&stargazers=1&theme=Dark) [![NuGet](https://img.shields.io/nuget/v/TestableIO.System.IO.Abstractions.svg)](https://www.nuget.org/packages/TestableIO.System.IO.Abstractions) -![Continuous Integration](https://github.com/TestableIO/System.IO.Abstractions/workflows/Continuous%20Integration/badge.svg) -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/54479b054d194adfb4ff476ef0182fe0)](https://app.codacy.com/gh/TestableIO/System.IO.Abstractions/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade) +[![Build](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml/badge.svg)](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=TestableIO_System.IO.Abstractions&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=TestableIO_System.IO.Abstractions) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FTestableIO%2FSystem.IO.Abstractions.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FTestableIO%2FSystem.IO.Abstractions?ref=badge_shield) From 832a0f5884ccc0a8ffbe6222ecb8392ab8dcd737 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 22:34:45 +0100 Subject: [PATCH 11/15] refactor: remove dependency on `Nerdbank.GitVersioning` (#1221) The version is set explicitly within the Nuke.build pipeline. --- Directory.Build.props | 8 -------- Directory.Packages.props | 4 ---- System.IO.Abstractions.sln | 2 +- version.json | 15 --------------- 4 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 version.json diff --git a/Directory.Build.props b/Directory.Build.props index 0fce8c99e..25ba7bc85 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -26,14 +26,6 @@ snupkg - - runtime; build; native; contentfiles; analyzers - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - diff --git a/Directory.Packages.props b/Directory.Packages.props index ffdf1c746..03d2adc09 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -21,10 +21,6 @@ - - - - diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln index 4014cdb00..f6aeba211 100644 --- a/System.IO.Abstractions.sln +++ b/System.IO.Abstractions.sln @@ -30,7 +30,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_", "_", "{BBF7AD8D-5522-48 Directory.Packages.props = Directory.Packages.props global.json = global.json README.md = README.md - version.json = version.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{2BE9161B-A3F3-4511-81DB-DB1DCB6375C9}" @@ -59,6 +58,7 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "Pipeline\Build.csproj", "{DC39543E-0A17-4869-96C9-B876EB1BB117}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Pipeline", "Pipeline", "{8091BCA3-70F8-4506-9701-C3074E79A66D}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestableIO.System.IO.Abstractions.Parity.Tests", "tests\TestableIO.System.IO.Abstractions.Parity.Tests\TestableIO.System.IO.Abstractions.Parity.Tests.csproj", "{93B79631-E220-414B-8F0D-3885825DE1AC}" EndProject Global diff --git a/version.json b/version.json deleted file mode 100644 index 065ac88f4..000000000 --- a/version.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "22.0", - "assemblyVersion": { - "precision": "major" - }, - "publicReleaseRefSpec": [ - "^refs/heads/main$" - ], - "cloudBuild": { - "buildNumber": { - "enabled": true - } - } -} From 650d0d2388a016ea07316afdf9076bbb88118127 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 22:55:19 +0100 Subject: [PATCH 12/15] refactor: enable code coverage (#1222) --- Pipeline/Build.CodeCoverage.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pipeline/Build.CodeCoverage.cs b/Pipeline/Build.CodeCoverage.cs index 890fd9cb5..6954e898b 100644 --- a/Pipeline/Build.CodeCoverage.cs +++ b/Pipeline/Build.CodeCoverage.cs @@ -20,6 +20,6 @@ partial class Build .AddReports(TestResultsDirectory / "**/coverage.cobertura.xml") .AddReportTypes(ReportTypes.OpenCover) .AddFileFilters("-*.g.cs") - .SetAssemblyFilters("+TestableIO*")); + .SetAssemblyFilters("+TestableIO*", "+System.IO.Abstractions*")); }); } From fdc757e9ca650c98624a432d2425b5126f2976a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 23:04:30 +0100 Subject: [PATCH 13/15] docs: add coverage badge (#1223) After enabling code coverage analysis in #1222, add a corresponding badge to the README.md file. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cc1418ceb..acf5b3a5e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![NuGet](https://img.shields.io/nuget/v/TestableIO.System.IO.Abstractions.svg)](https://www.nuget.org/packages/TestableIO.System.IO.Abstractions) [![Build](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml/badge.svg)](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=TestableIO_System.IO.Abstractions&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=TestableIO_System.IO.Abstractions) +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=TestableIO_System.IO.Abstractions&metric=coverage)](https://sonarcloud.io/summary/new_code?id=TestableIO_System.IO.Abstractions) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FTestableIO%2FSystem.IO.Abstractions.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FTestableIO%2FSystem.IO.Abstractions?ref=badge_shield) From 19aeed314cfcaddd02c15d7fbc86f1bd0eaca79b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 23:36:31 +0100 Subject: [PATCH 14/15] refactor: support pre-release versions (#1224) Support creating pre-release nuget packages. --- Pipeline/Build.Compile.cs | 37 ++++++++++++++++++++++++++++++++----- Pipeline/Build.Pack.cs | 9 +++++---- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/Pipeline/Build.Compile.cs b/Pipeline/Build.Compile.cs index ba5da0b1c..a26a6ef7b 100644 --- a/Pipeline/Build.Compile.cs +++ b/Pipeline/Build.Compile.cs @@ -3,6 +3,7 @@ using Nuke.Common; using Nuke.Common.IO; using Nuke.Common.Tools.DotNet; +using Nuke.Common.Tools.GitVersion; using Nuke.Common.Utilities; using Nuke.Common.Utilities.Collections; using Serilog; @@ -16,13 +17,26 @@ partial class Build { string BranchName; string SemVer; + AssemblyVersion MainVersion; Target CalculateNugetVersion => _ => _ .Unlisted() .Executes(() => { + string preRelease = "-CI"; + if (GitHubActions == null) + { + preRelease = "-DEV"; + } + else if (GitHubActions.Ref.StartsWith("refs/tags/", StringComparison.OrdinalIgnoreCase)) + { + int preReleaseIndex = GitHubActions.Ref.IndexOf('-'); + preRelease = preReleaseIndex > 0 ? GitHubActions.Ref[preReleaseIndex..] : ""; + } + SemVer = GitVersion.SemVer; BranchName = GitVersion.BranchName; + MainVersion = AssemblyVersion.FromGitVersion(GitVersion, preRelease); if (GitHubActions?.IsPullRequest == true) { @@ -77,16 +91,29 @@ partial class Build ReportSummary(s => s .WhenNotNull(SemVer, (summary, semVer) => summary - .AddPair("Version", semVer + preRelease))); + .AddPair("Version", MainVersion.FileVersion + MainVersion.PreRelease))); DotNetBuild(s => s .SetProjectFile(Solution) .SetConfiguration(Configuration) .EnableNoLogo() .EnableNoRestore() - .SetVersion(SemVer + preRelease) - .SetAssemblyVersion(GitVersion.AssemblySemVer) - .SetFileVersion(GitVersion.AssemblySemFileVer) - .SetInformationalVersion(GitVersion.InformationalVersion)); + .SetVersion(MainVersion.FileVersion + MainVersion.PreRelease) + .SetAssemblyVersion(MainVersion.FileVersion) + .SetFileVersion(MainVersion.FileVersion) + .SetInformationalVersion(MainVersion.InformationalVersion)); }); + + public record AssemblyVersion(string FileVersion, string InformationalVersion, string PreRelease) + { + public static AssemblyVersion FromGitVersion(GitVersion gitVersion, string preRelease) + { + if (gitVersion is null) + { + return null; + } + + return new AssemblyVersion(gitVersion.AssemblySemVer, gitVersion.InformationalVersion, preRelease); + } + } } diff --git a/Pipeline/Build.Pack.cs b/Pipeline/Build.Pack.cs index 30de44836..75fc31bde 100644 --- a/Pipeline/Build.Pack.cs +++ b/Pipeline/Build.Pack.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; @@ -64,13 +65,10 @@ partial class Build .DependsOn(Compile) .Executes(() => { - ReportSummary(s => s - .WhenNotNull(SemVer, (c, semVer) => c - .AddPair("Packed version", semVer))); - AbsolutePath packagesDirectory = ArtifactsDirectory / "Packages"; packagesDirectory.CreateOrCleanDirectory(); + List packages = new(); foreach (Project project in new[] { Solution.TestableIO_System_IO_Abstractions_Wrappers, @@ -85,6 +83,7 @@ partial class Build { File.Move(package, packagesDirectory / Path.GetFileName(package)); Debug("Found nuget package: {PackagePath}", package); + packages.Add(Path.GetFileName(package)); } foreach (string symbolPackage in @@ -94,5 +93,7 @@ partial class Build Debug("Found symbol package: {PackagePath}", symbolPackage); } } + ReportSummary(s => s + .AddPair("Packages", string.Join(", ", packages))); }); } From ddbbb8206d65b879750ec85b672bf501c6984435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Sat, 22 Feb 2025 23:57:58 +0100 Subject: [PATCH 15/15] fix: avoid duplicate commit ID in file version (#1225) Currently the Commit SHA is added twice in the file version. Set `IncludeSourceRevisionInInformationalVersion` to false, to avoid the automatic suffix and only use the explicit one in the pipeline. --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index 25ba7bc85..65cf73340 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -24,6 +24,7 @@ true true snupkg + false