@@ -10,57 +10,87 @@ namespace System.IO.Abstractions.TestingHelpers
1010{
1111 partial class MockFile
1212 {
13+ #if FEATURE_FILE_SPAN
14+ /// <inheritdoc cref="IFile.AppendAllBytesAsync(string,byte[],CancellationToken)"/>
15+ public override Task AppendAllBytesAsync ( string path , byte [ ] bytes , CancellationToken cancellationToken = default )
16+ {
17+ cancellationToken . ThrowIfCancellationRequested ( ) ;
18+ AppendAllBytes ( path , bytes ) ;
19+ return Task . CompletedTask ;
20+ }
21+
22+ /// <inheritdoc cref="IFile.AppendAllBytesAsync(string,ReadOnlyMemory{byte},CancellationToken)"/>
23+ public override Task AppendAllBytesAsync ( string path , ReadOnlyMemory < byte > bytes , CancellationToken cancellationToken = default )
24+ {
25+ return AppendAllBytesAsync ( path , bytes . ToArray ( ) , cancellationToken ) ;
26+ }
27+ #endif
1328 /// <inheritdoc />
14- public override Task AppendAllLinesAsync ( string path , IEnumerable < string > contents , CancellationToken cancellationToken = default ( CancellationToken ) ) =>
29+ public override Task AppendAllLinesAsync ( string path , IEnumerable < string > contents , CancellationToken cancellationToken = default ) =>
1530 AppendAllLinesAsync ( path , contents , MockFileData . DefaultEncoding , cancellationToken ) ;
1631
1732 /// <inheritdoc />
18- public override Task AppendAllLinesAsync ( string path , IEnumerable < string > contents , Encoding encoding , CancellationToken cancellationToken = default ( CancellationToken ) )
33+ public override Task AppendAllLinesAsync ( string path , IEnumerable < string > contents , Encoding encoding , CancellationToken cancellationToken = default )
1934 {
2035 cancellationToken . ThrowIfCancellationRequested ( ) ;
2136 AppendAllLines ( path , contents , encoding ) ;
2237 return Task . CompletedTask ;
2338 }
2439
2540 /// <inheritdoc />
26- public override Task AppendAllTextAsync ( string path , string contents , CancellationToken cancellationToken = default ( CancellationToken ) ) =>
41+ public override Task AppendAllTextAsync ( string path , string contents , CancellationToken cancellationToken = default ) =>
2742 AppendAllTextAsync ( path , contents , MockFileData . DefaultEncoding , cancellationToken ) ;
2843
2944
3045 /// <inheritdoc />
31- public override Task AppendAllTextAsync ( string path , string contents , Encoding encoding , CancellationToken cancellationToken = default ( CancellationToken ) )
46+ public override Task AppendAllTextAsync ( string path , string contents , Encoding encoding , CancellationToken cancellationToken = default )
3247 {
3348 cancellationToken . ThrowIfCancellationRequested ( ) ;
3449 AppendAllText ( path , contents , encoding ) ;
3550 return Task . CompletedTask ;
3651 }
52+
53+ #if FEATURE_FILE_SPAN
54+ /// <inheritdoc cref="IFile.AppendAllTextAsync(string,ReadOnlyMemory{char},CancellationToken)"/>
55+ public override Task AppendAllTextAsync ( string path , ReadOnlyMemory < char > contents , CancellationToken cancellationToken = default )
56+ {
57+ return AppendAllTextAsync ( path , contents . ToString ( ) , cancellationToken ) ;
58+ }
59+
60+ /// <inheritdoc cref="IFile.AppendAllTextAsync(string,ReadOnlyMemory{char},Encoding,CancellationToken)"/>
61+ public override Task AppendAllTextAsync ( string path , ReadOnlyMemory < char > contents , Encoding encoding ,
62+ CancellationToken cancellationToken = default )
63+ {
64+ return AppendAllTextAsync ( path , contents . ToString ( ) , encoding , cancellationToken ) ;
65+ }
66+ #endif
3767
3868 /// <inheritdoc />
39- public override Task < byte [ ] > ReadAllBytesAsync ( string path , CancellationToken cancellationToken = default ( CancellationToken ) )
69+ public override Task < byte [ ] > ReadAllBytesAsync ( string path , CancellationToken cancellationToken = default )
4070 {
4171 cancellationToken . ThrowIfCancellationRequested ( ) ;
4272 return Task . FromResult ( ReadAllBytes ( path ) ) ;
4373 }
4474
4575 /// <inheritdoc />
46- public override Task < string [ ] > ReadAllLinesAsync ( string path , CancellationToken cancellationToken = default ( CancellationToken ) ) =>
76+ public override Task < string [ ] > ReadAllLinesAsync ( string path , CancellationToken cancellationToken = default ) =>
4777 ReadAllLinesAsync ( path , MockFileData . DefaultEncoding , cancellationToken ) ;
4878
4979 /// <inheritdoc />
5080
51- public override Task < string [ ] > ReadAllLinesAsync ( string path , Encoding encoding , CancellationToken cancellationToken = default ( CancellationToken ) )
81+ public override Task < string [ ] > ReadAllLinesAsync ( string path , Encoding encoding , CancellationToken cancellationToken = default )
5282 {
5383 cancellationToken . ThrowIfCancellationRequested ( ) ;
5484 return Task . FromResult ( ReadAllLines ( path , encoding ) ) ;
5585 }
5686
5787 /// <inheritdoc />
58- public override Task < string > ReadAllTextAsync ( string path , CancellationToken cancellationToken ) =>
88+ public override Task < string > ReadAllTextAsync ( string path , CancellationToken cancellationToken = default ) =>
5989 ReadAllTextAsync ( path , MockFileData . DefaultEncoding , cancellationToken ) ;
6090
6191
6292 /// <inheritdoc />
63- public override Task < string > ReadAllTextAsync ( string path , Encoding encoding , CancellationToken cancellationToken )
93+ public override Task < string > ReadAllTextAsync ( string path , Encoding encoding , CancellationToken cancellationToken = default )
6494 {
6595 cancellationToken . ThrowIfCancellationRequested ( ) ;
6696 return Task . FromResult ( ReadAllText ( path , encoding ) ) ;
@@ -82,36 +112,59 @@ public override async IAsyncEnumerable<string> ReadLinesAsync(string path, Encod
82112#endif
83113
84114 /// <inheritdoc />
85- public override Task WriteAllBytesAsync ( string path , byte [ ] bytes , CancellationToken cancellationToken )
115+ public override Task WriteAllBytesAsync ( string path , byte [ ] bytes , CancellationToken cancellationToken = default )
86116 {
87117 cancellationToken . ThrowIfCancellationRequested ( ) ;
88118 WriteAllBytes ( path , bytes ) ;
89119 return Task . CompletedTask ;
90120 }
121+
122+ #if FEATURE_FILE_SPAN
123+ /// <inheritdoc cref="IFile.WriteAllBytesAsync(string,ReadOnlyMemory{byte},CancellationToken)"/>
124+ public override Task WriteAllBytesAsync ( string path , ReadOnlyMemory < byte > bytes , CancellationToken cancellationToken = default )
125+ {
126+ return WriteAllBytesAsync ( path , bytes . ToArray ( ) , cancellationToken ) ;
127+ }
128+ #endif
91129
92130 /// <inheritdoc />
93- public override Task WriteAllLinesAsync ( string path , IEnumerable < string > contents , CancellationToken cancellationToken ) =>
131+ public override Task WriteAllLinesAsync ( string path , IEnumerable < string > contents , CancellationToken cancellationToken = default ) =>
94132 WriteAllLinesAsync ( path , contents , MockFileData . DefaultEncoding , cancellationToken ) ;
95133
96134 /// <inheritdoc />
97- public override Task WriteAllLinesAsync ( string path , IEnumerable < string > contents , Encoding encoding , CancellationToken cancellationToken )
135+ public override Task WriteAllLinesAsync ( string path , IEnumerable < string > contents , Encoding encoding , CancellationToken cancellationToken = default )
98136 {
99137 cancellationToken . ThrowIfCancellationRequested ( ) ;
100138 WriteAllLines ( path , contents , encoding ) ;
101139 return Task . CompletedTask ;
102140 }
103141
104142 /// <inheritdoc />
105- public override Task WriteAllTextAsync ( string path , string contents , CancellationToken cancellationToken ) =>
143+ public override Task WriteAllTextAsync ( string path , string contents , CancellationToken cancellationToken = default ) =>
106144 WriteAllTextAsync ( path , contents , MockFileData . DefaultEncoding , cancellationToken ) ;
107145
108146 /// <inheritdoc />
109- public override Task WriteAllTextAsync ( string path , string contents , Encoding encoding , CancellationToken cancellationToken )
147+ public override Task WriteAllTextAsync ( string path , string contents , Encoding encoding , CancellationToken cancellationToken = default )
110148 {
111149 cancellationToken . ThrowIfCancellationRequested ( ) ;
112150 WriteAllText ( path , contents , encoding ) ;
113151 return Task . CompletedTask ;
114152 }
153+
154+ #if FEATURE_FILE_SPAN
155+ /// <inheritdoc cref="IFile.WriteAllTextAsync(string,ReadOnlyMemory{char},CancellationToken)"/>
156+ public override Task WriteAllTextAsync ( string path , ReadOnlyMemory < char > contents , CancellationToken cancellationToken = default )
157+ {
158+ return WriteAllTextAsync ( path , contents . ToString ( ) , cancellationToken ) ;
159+ }
160+
161+ /// <inheritdoc cref="IFile.WriteAllTextAsync(string,ReadOnlyMemory{char},Encoding,CancellationToken)"/>
162+ public override Task WriteAllTextAsync ( string path , ReadOnlyMemory < char > contents , Encoding encoding ,
163+ CancellationToken cancellationToken = default )
164+ {
165+ return WriteAllTextAsync ( path , contents . ToString ( ) , encoding , cancellationToken ) ;
166+ }
167+ #endif
115168 }
116169}
117170
0 commit comments