Skip to content

Commit 5dca0c2

Browse files
WeiermannWeiermann
authored andcommitted
Added IDirectoryInfo, IDriveInfo, IFileInfo, IFileSystemInfo and IPath and changed source accordingly
1 parent 565a75e commit 5dca0c2

36 files changed

Lines changed: 541 additions & 152 deletions

System.IO.Abstractions.TestingHelpers/IMockFileDataAccessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public interface IMockFileDataAccessor
5959
IFile File { get; }
6060
IDirectory Directory { get; }
6161
IFileInfoFactory FileInfo {get; }
62-
PathBase Path { get; }
62+
IPath Path { get; }
6363
IDirectoryInfoFactory DirectoryInfo { get; }
6464
IDriveInfoFactory DriveInfo { get; }
6565

System.IO.Abstractions.TestingHelpers/MockDirectory.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@ public MockDirectory(IMockFileDataAccessor mockFileDataAccessor, string currentD
2525
this.mockFileDataAccessor = mockFileDataAccessor ?? throw new ArgumentNullException(nameof(mockFileDataAccessor));
2626
}
2727

28-
public override DirectoryInfoBase CreateDirectory(string path)
28+
public override IDirectoryInfo CreateDirectory(string path)
2929
{
3030
return CreateDirectoryInternal(path, null);
3131
}
3232

3333
#if NET40
34-
public override DirectoryInfoBase CreateDirectory(string path, DirectorySecurity directorySecurity)
34+
public override IDirectoryInfo CreateDirectory(string path, DirectorySecurity directorySecurity)
3535
{
3636
return CreateDirectoryInternal(path, directorySecurity);
3737
}
3838
#endif
3939

40-
private DirectoryInfoBase CreateDirectoryInternal(string path, DirectorySecurity directorySecurity)
40+
private IDirectoryInfo CreateDirectoryInternal(string path, DirectorySecurity directorySecurity)
4141
{
4242
if (path == null)
4343
{
@@ -312,7 +312,7 @@ public override string[] GetLogicalDrives()
312312
}
313313
#endif
314314

315-
public override DirectoryInfoBase GetParent(string path)
315+
public override IDirectoryInfo GetParent(string path)
316316
{
317317
if (path == null)
318318
{

System.IO.Abstractions.TestingHelpers/MockDirectoryInfo.cs

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,13 @@ public override void Create(DirectorySecurity directorySecurity)
127127
}
128128
#endif
129129

130-
public override DirectoryInfoBase CreateSubdirectory(string path)
130+
public override IDirectoryInfo CreateSubdirectory(string path)
131131
{
132132
return mockFileDataAccessor.Directory.CreateDirectory(Path.Combine(FullName, path));
133133
}
134134

135135
#if NET40
136-
public override DirectoryInfoBase CreateSubdirectory(string path, DirectorySecurity directorySecurity)
136+
public override IDirectoryInfo CreateSubdirectory(string path, DirectorySecurity directorySecurity)
137137
{
138138
return mockFileDataAccessor.Directory.CreateDirectory(Path.Combine(FullName, path), directorySecurity);
139139
}
@@ -144,47 +144,47 @@ public override void Delete(bool recursive)
144144
mockFileDataAccessor.Directory.Delete(directoryPath, recursive);
145145
}
146146

147-
public override IEnumerable<DirectoryInfoBase> EnumerateDirectories()
147+
public override IEnumerable<IDirectoryInfo> EnumerateDirectories()
148148
{
149149
return GetDirectories();
150150
}
151151

152-
public override IEnumerable<DirectoryInfoBase> EnumerateDirectories(string searchPattern)
152+
public override IEnumerable<IDirectoryInfo> EnumerateDirectories(string searchPattern)
153153
{
154154
return GetDirectories(searchPattern);
155155
}
156156

157-
public override IEnumerable<DirectoryInfoBase> EnumerateDirectories(string searchPattern, SearchOption searchOption)
157+
public override IEnumerable<IDirectoryInfo> EnumerateDirectories(string searchPattern, SearchOption searchOption)
158158
{
159159
return GetDirectories(searchPattern, searchOption);
160160
}
161161

162-
public override IEnumerable<FileInfoBase> EnumerateFiles()
162+
public override IEnumerable<IFileInfo> EnumerateFiles()
163163
{
164164
return GetFiles();
165165
}
166166

167-
public override IEnumerable<FileInfoBase> EnumerateFiles(string searchPattern)
167+
public override IEnumerable<IFileInfo> EnumerateFiles(string searchPattern)
168168
{
169169
return GetFiles(searchPattern);
170170
}
171171

172-
public override IEnumerable<FileInfoBase> EnumerateFiles(string searchPattern, SearchOption searchOption)
172+
public override IEnumerable<IFileInfo> EnumerateFiles(string searchPattern, SearchOption searchOption)
173173
{
174174
return GetFiles(searchPattern, searchOption);
175175
}
176176

177-
public override IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos()
177+
public override IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos()
178178
{
179179
return GetFileSystemInfos();
180180
}
181181

182-
public override IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos(string searchPattern)
182+
public override IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(string searchPattern)
183183
{
184184
return GetFileSystemInfos(searchPattern);
185185
}
186186

187-
public override IEnumerable<FileSystemInfoBase> EnumerateFileSystemInfos(string searchPattern, SearchOption searchOption)
187+
public override IEnumerable<IFileSystemInfo> EnumerateFileSystemInfos(string searchPattern, SearchOption searchOption)
188188
{
189189
return GetFileSystemInfos(searchPattern, searchOption);
190190
}
@@ -199,17 +199,17 @@ public override DirectorySecurity GetAccessControl(AccessControlSections include
199199
return mockFileDataAccessor.Directory.GetAccessControl(directoryPath, includeSections);
200200
}
201201

202-
public override DirectoryInfoBase[] GetDirectories()
202+
public override IDirectoryInfo[] GetDirectories()
203203
{
204204
return ConvertStringsToDirectories(mockFileDataAccessor.Directory.GetDirectories(directoryPath));
205205
}
206206

207-
public override DirectoryInfoBase[] GetDirectories(string searchPattern)
207+
public override IDirectoryInfo[] GetDirectories(string searchPattern)
208208
{
209209
return ConvertStringsToDirectories(mockFileDataAccessor.Directory.GetDirectories(directoryPath, searchPattern));
210210
}
211211

212-
public override DirectoryInfoBase[] GetDirectories(string searchPattern, SearchOption searchOption)
212+
public override IDirectoryInfo[] GetDirectories(string searchPattern, SearchOption searchOption)
213213
{
214214
return ConvertStringsToDirectories(mockFileDataAccessor.Directory.GetDirectories(directoryPath, searchPattern, searchOption));
215215
}
@@ -222,41 +222,41 @@ private DirectoryInfoBase[] ConvertStringsToDirectories(IEnumerable<string> path
222222
.ToArray();
223223
}
224224

225-
public override FileInfoBase[] GetFiles()
225+
public override IFileInfo[] GetFiles()
226226
{
227227
return ConvertStringsToFiles(mockFileDataAccessor.Directory.GetFiles(FullName));
228228
}
229229

230-
public override FileInfoBase[] GetFiles(string searchPattern)
230+
public override IFileInfo[] GetFiles(string searchPattern)
231231
{
232232
return ConvertStringsToFiles(mockFileDataAccessor.Directory.GetFiles(FullName, searchPattern));
233233
}
234234

235-
public override FileInfoBase[] GetFiles(string searchPattern, SearchOption searchOption)
235+
public override IFileInfo[] GetFiles(string searchPattern, SearchOption searchOption)
236236
{
237237
return ConvertStringsToFiles(mockFileDataAccessor.Directory.GetFiles(FullName, searchPattern, searchOption));
238238
}
239239

240-
FileInfoBase[] ConvertStringsToFiles(IEnumerable<string> paths)
240+
IFileInfo[] ConvertStringsToFiles(IEnumerable<string> paths)
241241
{
242242
return paths
243243
.Select(mockFileDataAccessor.FileInfo.FromFileName)
244244
.ToArray();
245245
}
246246

247-
public override FileSystemInfoBase[] GetFileSystemInfos()
247+
public override IFileSystemInfo[] GetFileSystemInfos()
248248
{
249249
return GetFileSystemInfos("*");
250250
}
251251

252-
public override FileSystemInfoBase[] GetFileSystemInfos(string searchPattern)
252+
public override IFileSystemInfo[] GetFileSystemInfos(string searchPattern)
253253
{
254254
return GetFileSystemInfos(searchPattern, SearchOption.TopDirectoryOnly);
255255
}
256256

257-
public override FileSystemInfoBase[] GetFileSystemInfos(string searchPattern, SearchOption searchOption)
257+
public override IFileSystemInfo[] GetFileSystemInfos(string searchPattern, SearchOption searchOption)
258258
{
259-
return GetDirectories(searchPattern, searchOption).OfType<FileSystemInfoBase>().Concat(GetFiles(searchPattern, searchOption)).ToArray();
259+
return GetDirectories(searchPattern, searchOption).OfType<IFileSystemInfo>().Concat(GetFiles(searchPattern, searchOption)).ToArray();
260260
}
261261

262262
public override void MoveTo(string destDirName)
@@ -269,15 +269,15 @@ public override void SetAccessControl(DirectorySecurity directorySecurity)
269269
mockFileDataAccessor.Directory.SetAccessControl(directoryPath, directorySecurity);
270270
}
271271

272-
public override DirectoryInfoBase Parent
272+
public override IDirectoryInfo Parent
273273
{
274274
get
275275
{
276276
return mockFileDataAccessor.Directory.GetParent(directoryPath);
277277
}
278278
}
279279

280-
public override DirectoryInfoBase Root
280+
public override IDirectoryInfo Root
281281
{
282282
get
283283
{

System.IO.Abstractions.TestingHelpers/MockDirectoryInfoFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public MockDirectoryInfoFactory(IMockFileDataAccessor mockFileSystem)
1010
this.mockFileSystem = mockFileSystem;
1111
}
1212

13-
public DirectoryInfoBase FromDirectoryName(string directoryName)
13+
public IDirectoryInfo FromDirectoryName(string directoryName)
1414
{
1515
return new MockDirectoryInfo(mockFileSystem, directoryName);
1616
}

System.IO.Abstractions.TestingHelpers/MockDriveInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public MockDriveInfo(IMockFileDataAccessor mockFileDataAccessor, string name) :
4444
public new bool IsReady { get; protected set; }
4545
public override string Name { get; protected set; }
4646

47-
public override DirectoryInfoBase RootDirectory
47+
public override IDirectoryInfo RootDirectory
4848
{
4949
get
5050
{

System.IO.Abstractions.TestingHelpers/MockDriveInfoFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public MockDriveInfoFactory(IMockFileDataAccessor mockFileSystem)
1212
this.mockFileSystem = mockFileSystem ?? throw new ArgumentNullException(nameof(mockFileSystem));
1313
}
1414

15-
public DriveInfoBase[] GetDrives()
15+
public IDriveInfo[] GetDrives()
1616
{
1717
var driveLetters = new HashSet<string>(new DriveEqualityComparer(mockFileSystem));
1818
foreach (var path in mockFileSystem.AllPaths)
@@ -38,7 +38,7 @@ public DriveInfoBase[] GetDrives()
3838
return result.ToArray();
3939
}
4040

41-
public DriveInfoBase FromDriveName(string driveName)
41+
public IDriveInfo FromDriveName(string driveName)
4242
{
4343
var drive = mockFileSystem.Path.GetPathRoot(driveName);
4444

System.IO.Abstractions.TestingHelpers/MockFileInfo.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,12 @@ public override StreamWriter AppendText()
153153
return new StreamWriter(new MockFileStream(mockFileSystem, FullName, MockFileStream.StreamType.APPEND));
154154
}
155155

156-
public override FileInfoBase CopyTo(string destFileName)
156+
public override IFileInfo CopyTo(string destFileName)
157157
{
158158
return CopyTo(destFileName, false);
159159
}
160160

161-
public override FileInfoBase CopyTo(string destFileName, bool overwrite)
161+
public override IFileInfo CopyTo(string destFileName, bool overwrite)
162162
{
163163
if (!Exists)
164164
{
@@ -210,7 +210,7 @@ public override FileSecurity GetAccessControl(AccessControlSections includeSecti
210210

211211
public override void MoveTo(string destFileName)
212212
{
213-
var movedFileInfo = CopyTo(destFileName);
213+
var movedFileInfo = CopyTo(destFileName) as MockFileInfo;
214214
if (destFileName == FullName)
215215
{
216216
return;
@@ -251,12 +251,12 @@ public override Stream OpenWrite()
251251
}
252252

253253
#if NET40
254-
public override FileInfoBase Replace(string destinationFileName, string destinationBackupFileName)
254+
public override IFileInfo Replace(string destinationFileName, string destinationBackupFileName)
255255
{
256256
return Replace(destinationFileName, destinationBackupFileName, false);
257257
}
258258

259-
public override FileInfoBase Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors)
259+
public override IFileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors)
260260
{
261261
mockFileSystem.File.Replace(path, destinationFileName, destinationBackupFileName, ignoreMetadataErrors);
262262
return mockFileSystem.FileInfo.FromFileName(destinationFileName);
@@ -268,7 +268,7 @@ public override void SetAccessControl(FileSecurity fileSecurity)
268268
mockFileSystem.File.SetAccessControl(this.path, fileSecurity);
269269
}
270270

271-
public override DirectoryInfoBase Directory
271+
public override IDirectoryInfo Directory
272272
{
273273
get
274274
{

System.IO.Abstractions.TestingHelpers/MockFileInfoFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public MockFileInfoFactory(IMockFileDataAccessor mockFileSystem)
1010
this.mockFileSystem = mockFileSystem ?? throw new ArgumentNullException(nameof(mockFileSystem));
1111
}
1212

13-
public FileInfoBase FromFileName(string fileName)
13+
public IFileInfo FromFileName(string fileName)
1414
{
1515
return new MockFileInfo(mockFileSystem, fileName);
1616
}

System.IO.Abstractions.TestingHelpers/MockFileSystem.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public MockFileSystem(IDictionary<string, MockFileData> files, string currentDir
5757
public IDirectory Directory { get; }
5858
public IFileInfoFactory FileInfo { get; }
5959
public IFileStreamFactory FileStream { get; }
60-
public PathBase Path { get; }
60+
public IPath Path { get; }
6161
public IDirectoryInfoFactory DirectoryInfo { get; }
6262
public IDriveInfoFactory DriveInfo { get; }
6363
public IFileSystemWatcherFactory FileSystemWatcher { get; set; }

System.IO.Abstractions/DirectoryBase.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ internal DirectoryBase() { }
2121
public IFileSystem FileSystem { get; }
2222

2323
/// <inheritdoc cref="Directory.CreateDirectory(string)"/>
24-
public abstract DirectoryInfoBase CreateDirectory(string path);
24+
public abstract IDirectoryInfo CreateDirectory(string path);
2525

2626
#if NET40
2727
/// <inheritdoc cref="Directory.CreateDirectory(string,DirectorySecurity)"/>
28-
public abstract DirectoryInfoBase CreateDirectory(string path, DirectorySecurity directorySecurity);
28+
public abstract IDirectoryInfo CreateDirectory(string path, DirectorySecurity directorySecurity);
2929
#endif
3030

3131
/// <inheritdoc cref="Directory.Delete(string)"/>
@@ -97,7 +97,7 @@ internal DirectoryBase() { }
9797
#endif
9898

9999
/// <inheritdoc cref="Directory.GetParent"/>
100-
public abstract DirectoryInfoBase GetParent(string path);
100+
public abstract IDirectoryInfo GetParent(string path);
101101

102102
/// <inheritdoc cref="Directory.Move"/>
103103
public abstract void Move(string sourceDirName, string destDirName);
@@ -127,13 +127,13 @@ internal DirectoryBase() { }
127127
public abstract void SetLastWriteTimeUtc(string path, DateTime lastWriteTimeUtc);
128128

129129
/// <inheritdoc cref="Directory.EnumerateDirectories(string)"/>
130-
public abstract IEnumerable<String> EnumerateDirectories(String path);
130+
public abstract IEnumerable<string> EnumerateDirectories(string path);
131131

132132
/// <inheritdoc cref="Directory.EnumerateDirectories(string,string)"/>
133-
public abstract IEnumerable<String> EnumerateDirectories(String path, String searchPattern);
133+
public abstract IEnumerable<string> EnumerateDirectories(string path, string searchPattern);
134134

135135
/// <inheritdoc cref="Directory.EnumerateDirectories(string,string,SearchOption)"/>
136-
public abstract IEnumerable<String> EnumerateDirectories(String path, String searchPattern, SearchOption searchOption);
136+
public abstract IEnumerable<string> EnumerateDirectories(string path, string searchPattern, SearchOption searchOption);
137137

138138
/// <inheritdoc cref="Directory.EnumerateFiles(string)"/>
139139
public abstract IEnumerable<string> EnumerateFiles(string path);

0 commit comments

Comments
 (0)