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 c959c7980..fb1cd2dc1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,133 +1,110 @@
-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: |
+ dotnet-version: |
6.0.x
7.0.x
8.0.x
9.0.x
- - name: Run tests
- run: dotnet test --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"
- coverage:
- name: Coverage
- needs: [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
- - 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'
- with:
- project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
- coverage-reports: coverage-report/Cobertura.xml
- pack:
- name: Pack
- needs: [test]
- runs-on: ubuntu-latest
- 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
+ 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: 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]
+ 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
- - 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
+ 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:
- 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
+ path: artifacts
+ - name: Publish Test Results
+ uses: EnricoMi/publish-unit-test-result-action@v2
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 99b60410d..65cf73340 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,12 +1,14 @@
System.IO.Abstractions
- Copyright © Tatham Oddie & friends 2010-2024
+ Copyright © Tatham Oddie & friends 2010-$([System.DateTime]::Now.ToString('yyyy'))
Tatham Oddie & friends
True
+ 00240000048000009400000006020000002400005253413100040000010001001160c7a0f907c400c5392975b66d2f3752fb82625d5674d386b83896d4d4ae8d0ef8319ef391fbb3466de0058ad2f361b8f5cb8a32ecb4e908bece5c519387552cedd2ca0250e36b59c6d6dc3dc260ca73a7e27c3add4ae22d5abaa562225d7ba34d427e8f3f52928a46a674deb0208eca7d379aa22712355b91a55a5ce521d2
$(MSBuildThisFileDirectory)StrongName.snk
latest
testing
+ CS1591
https://github.com/TestableIO/System.IO.Abstractions
MIT
README.md
@@ -17,15 +19,14 @@
$(DefineConstants);FEATURE_PATH_SPAN;FEATURE_FILE_SPAN
$(DefineConstants);FEATURE_SERIALIZABLE
+
+ true
+ true
+ true
+ snupkg
+ false
+
-
- runtime; build; native; contentfiles; analyzers
- all
-
-
- runtime; build; native; contentfiles; analyzers; buildtransitive
- all
-
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 9be81abc0..03d2adc09 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -4,6 +4,7 @@
+
@@ -17,10 +18,13 @@
-
+
+
-
-
+
+
+
+
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..6954e898b
--- /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*", "+System.IO.Abstractions*"));
+ });
+}
diff --git a/Pipeline/Build.Compile.cs b/Pipeline/Build.Compile.cs
new file mode 100644
index 000000000..a26a6ef7b
--- /dev/null
+++ b/Pipeline/Build.Compile.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Linq;
+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;
+using static Nuke.Common.Tools.DotNet.DotNetTasks;
+
+// ReSharper disable AllUnderscoreLocalParameterName
+
+namespace Build;
+
+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)
+ {
+ 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", MainVersion.FileVersion + MainVersion.PreRelease)));
+
+ DotNetBuild(s => s
+ .SetProjectFile(Solution)
+ .SetConfiguration(Configuration)
+ .EnableNoLogo()
+ .EnableNoRestore()
+ .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
new file mode 100644
index 000000000..75fc31bde
--- /dev/null
+++ b/Pipeline/Build.Pack.cs
@@ -0,0 +1,99 @@
+using System.Collections.Generic;
+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(
+ $"[](https://github.com/TestableIO/System.IO.Abstractions/releases/tag/v{version})");
+ foreach (string line in lines.Skip(1))
+ {
+ if (line.StartsWith("[ ||
+ line.StartsWith("[)
+ {
+ continue;
+ }
+
+ if (line.StartsWith("[)
+ {
+ sb.AppendLine(line
+ .Replace(")", $"&branch=release/v{version})"));
+ continue;
+ }
+
+ if (line.StartsWith("[)
+ {
+ 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(() =>
+ {
+ AbsolutePath packagesDirectory = ArtifactsDirectory / "Packages";
+ packagesDirectory.CreateOrCleanDirectory();
+
+ List packages = new();
+ 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);
+ packages.Add(Path.GetFileName(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);
+ }
+ }
+ ReportSummary(s => s
+ .AddPair("Packages", string.Join(", ", packages)));
+ });
+}
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/README.md b/README.md
index 17e066414..acf5b3a5e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@

[](https://www.nuget.org/packages/TestableIO.System.IO.Abstractions)
-
-[](https://app.codacy.com/gh/TestableIO/System.IO.Abstractions/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
+[](https://github.com/TestableIO/System.IO.Abstractions/actions/workflows/build.yml)
+[](https://sonarcloud.io/summary/new_code?id=TestableIO_System.IO.Abstractions)
+[](https://sonarcloud.io/summary/new_code?id=TestableIO_System.IO.Abstractions)
[](https://renovatebot.com/)
[](https://app.fossa.com/projects/git%2Bgithub.com%2FTestableIO%2FSystem.IO.Abstractions?ref=badge_shield)
diff --git a/System.IO.Abstractions.sln b/System.IO.Abstractions.sln
index 3ec9ec636..f6aeba211 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
@@ -8,7 +9,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 +17,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
@@ -24,22 +25,42 @@ 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
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
+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
+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
+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
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -78,6 +99,16 @@ 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
+ {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
+ {93B79631-E220-414B-8F0D-3885825DE1AC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -85,12 +116,17 @@ 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}
+ {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}
+ {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
SolutionGuid = {8885C59C-F6A0-4C2F-A3BC-B720E9BD161F}
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 -- "$@"
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index d4025be1c..594dcab3d 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
+
+
+
+ https://github.com/TestableIO/System.IO.Abstractions.git
+ true
+ snupkg
+ true
+ true
+
+
+
+ icon_256x256.png
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
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..931a4b5e1 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
-
-
-
-
-
-
-
-
+
+
+ System.IO.Abstractions
+ System.IO.Abstractions
+ A set of abstractions to help make file system interactions testable.
+
+
+
+
+
+
+
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.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/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 fabcbc8d6..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
@@ -1,18 +1,26 @@
-
- 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.
+
+
+
+
+
+
+
+
+
+
+
+ <_Parameter1>true
+
+
+
+
+
+
+
\ No newline at end of file
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
+
+
+
+
+
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/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..296433506
--- /dev/null
+++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net472.txt
@@ -0,0 +1,503 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")]
+[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..0717900dd
--- /dev/null
+++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net6.0.txt
@@ -0,0 +1,559 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")]
+[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..9e09e1b04
--- /dev/null
+++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net8.0.txt
@@ -0,0 +1,584 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")]
+[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..309c132cb
--- /dev/null
+++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_net9.0.txt
@@ -0,0 +1,598 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")]
+[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..84b1fef74
--- /dev/null
+++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.0.txt
@@ -0,0 +1,503 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")]
+[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..30ac2b613
--- /dev/null
+++ b/tests/TestableIO.System.IO.Abstractions.Api.Tests/Expected/TestableIO.System.IO.Abstractions.TestingHelpers_netstandard2.1.txt
@@ -0,0 +1,532 @@
+[assembly: System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/TestableIO/System.IO.Abstractions.git")]
+[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