-
Notifications
You must be signed in to change notification settings - Fork 264
Expand file tree
/
Copy pathMockFile.Async.cs
More file actions
171 lines (144 loc) · 7.58 KB
/
MockFile.Async.cs
File metadata and controls
171 lines (144 loc) · 7.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#if FEATURE_ASYNC_FILE
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace System.IO.Abstractions.TestingHelpers
{
partial class MockFile
{
#if FEATURE_FILE_SPAN
/// <inheritdoc cref="IFile.AppendAllBytesAsync(string,byte[],CancellationToken)"/>
public override Task AppendAllBytesAsync(string path, byte[] bytes, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
AppendAllBytes(path, bytes);
return Task.CompletedTask;
}
/// <inheritdoc cref="IFile.AppendAllBytesAsync(string,ReadOnlyMemory{byte},CancellationToken)"/>
public override Task AppendAllBytesAsync(string path, ReadOnlyMemory<byte> bytes, CancellationToken cancellationToken = default)
{
return AppendAllBytesAsync(path, bytes.ToArray(), cancellationToken);
}
#endif
/// <inheritdoc />
public override Task AppendAllLinesAsync(string path, IEnumerable<string> contents, CancellationToken cancellationToken = default) =>
AppendAllLinesAsync(path, contents, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override Task AppendAllLinesAsync(string path, IEnumerable<string> contents, Encoding encoding, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
AppendAllLines(path, contents, encoding);
return Task.CompletedTask;
}
/// <inheritdoc />
public override Task AppendAllTextAsync(string path, string contents, CancellationToken cancellationToken = default) =>
AppendAllTextAsync(path, contents, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override Task AppendAllTextAsync(string path, string contents, Encoding encoding, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
AppendAllText(path, contents, encoding);
return Task.CompletedTask;
}
#if FEATURE_FILE_SPAN
/// <inheritdoc cref="IFile.AppendAllTextAsync(string,ReadOnlyMemory{char},CancellationToken)"/>
public override Task AppendAllTextAsync(string path, ReadOnlyMemory<char> contents, CancellationToken cancellationToken = default)
{
return AppendAllTextAsync(path, contents.ToString(), cancellationToken);
}
/// <inheritdoc cref="IFile.AppendAllTextAsync(string,ReadOnlyMemory{char},Encoding,CancellationToken)"/>
public override Task AppendAllTextAsync(string path, ReadOnlyMemory<char> contents, Encoding encoding,
CancellationToken cancellationToken = default)
{
return AppendAllTextAsync(path, contents.ToString(), encoding, cancellationToken);
}
#endif
/// <inheritdoc />
public override Task<byte[]> ReadAllBytesAsync(string path, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
return Task.FromResult(ReadAllBytes(path));
}
/// <inheritdoc />
public override Task<string[]> ReadAllLinesAsync(string path, CancellationToken cancellationToken = default) =>
ReadAllLinesAsync(path, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override Task<string[]> ReadAllLinesAsync(string path, Encoding encoding, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
return Task.FromResult(ReadAllLines(path, encoding));
}
/// <inheritdoc />
public override Task<string> ReadAllTextAsync(string path, CancellationToken cancellationToken = default) =>
ReadAllTextAsync(path, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override Task<string> ReadAllTextAsync(string path, Encoding encoding, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
return Task.FromResult(ReadAllText(path, encoding));
}
#if FEATURE_READ_LINES_ASYNC
/// <inheritdoc />
public override IAsyncEnumerable<string> ReadLinesAsync(string path, CancellationToken cancellationToken = default) =>
ReadLinesAsync(path, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override async IAsyncEnumerable<string> ReadLinesAsync(string path, Encoding encoding,
[EnumeratorCancellation] CancellationToken cancellationToken = default)
{
var lines = await ReadAllLinesAsync(path, encoding, cancellationToken);
foreach (var line in lines)
yield return line;
}
#endif
/// <inheritdoc />
public override Task WriteAllBytesAsync(string path, byte[] bytes, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
WriteAllBytes(path, bytes);
return Task.CompletedTask;
}
#if FEATURE_FILE_SPAN
/// <inheritdoc cref="IFile.WriteAllBytesAsync(string,ReadOnlyMemory{byte},CancellationToken)"/>
public override Task WriteAllBytesAsync(string path, ReadOnlyMemory<byte> bytes, CancellationToken cancellationToken = default)
{
return WriteAllBytesAsync(path, bytes.ToArray(), cancellationToken);
}
#endif
/// <inheritdoc />
public override Task WriteAllLinesAsync(string path, IEnumerable<string> contents, CancellationToken cancellationToken = default) =>
WriteAllLinesAsync(path, contents, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override Task WriteAllLinesAsync(string path, IEnumerable<string> contents, Encoding encoding, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
WriteAllLines(path, contents, encoding);
return Task.CompletedTask;
}
/// <inheritdoc />
public override Task WriteAllTextAsync(string path, string contents, CancellationToken cancellationToken = default) =>
WriteAllTextAsync(path, contents, MockFileData.DefaultEncoding, cancellationToken);
/// <inheritdoc />
public override Task WriteAllTextAsync(string path, string contents, Encoding encoding, CancellationToken cancellationToken = default)
{
cancellationToken.ThrowIfCancellationRequested();
WriteAllText(path, contents, encoding);
return Task.CompletedTask;
}
#if FEATURE_FILE_SPAN
/// <inheritdoc cref="IFile.WriteAllTextAsync(string,ReadOnlyMemory{char},CancellationToken)"/>
public override Task WriteAllTextAsync(string path, ReadOnlyMemory<char> contents, CancellationToken cancellationToken = default)
{
return WriteAllTextAsync(path, contents.ToString(), cancellationToken);
}
/// <inheritdoc cref="IFile.WriteAllTextAsync(string,ReadOnlyMemory{char},Encoding,CancellationToken)"/>
public override Task WriteAllTextAsync(string path, ReadOnlyMemory<char> contents, Encoding encoding,
CancellationToken cancellationToken = default)
{
return WriteAllTextAsync(path, contents.ToString(), encoding, cancellationToken);
}
#endif
}
}
#endif