-
-
Notifications
You must be signed in to change notification settings - Fork 765
Closed
Description
This issue outlines comprehensive enhancements needed for the Cake file system abstraction layer to improve functionality, performance, and test coverage.
Key Areas for Implementation
1. File System Interface Enhancements
- Add comprehensive timestamp support across
IFile/IDirectoryinterfaces - Implement
LastWriteTimeUtc,CreationTimeUtc,LastAccessTimeUtcproperties - Add
UnixFileModeproperty for cross-platform file permissions - Implement
Set*methods for timestamp and Unix file mode manipulation - Add
SetCreationTime,SetCreationTimeUtc,SetLastAccessTime,SetLastAccessTimeUtc,SetLastWriteTime,SetLastWriteTimeUtcmethods - Add
SetUnixFileModemethod with proper OS platform attributes
2. Performance Improvements
- Replace
GetFiles/GetDirectorieswithEnumerateFiles/EnumerateDirectoriesinDirectory.cs - Refactor
FakeDirectoryto useyield returnfor lazy evaluation - Implement performance optimizations for large directory operations
3. Test Infrastructure
- Create dedicated
Cake.Testing.Testsproject - Add comprehensive unit test coverage for
FakeFileandFakeDirectoryoperations - Implement snapshot testing with Verify library
- Add cross-platform test coverage (Windows, Linux, OSX, FreeBSD)
- Integrate
Microsoft.Extensions.TimeProvider.Testingfor reliable time handling
4. Test Coverage Gaps
- Add tests for
Create(),Move(),Delete()operations - Add tests for
GetDirectories()andGetFiles()with various filters and search scopes - Add tests for timestamp and Unix file mode operations
- Add tests for error scenarios and edge cases
5. Cross-Platform Support
- Ensure Unix file mode support works correctly across platforms
- Add proper OS platform attributes for Windows-specific limitations
- Test file system operations on different operating systems
Expected Benefits
- Performance: Lazy evaluation and enumeration-based operations for better memory usage
- Functionality: Complete timestamp and Unix file mode support
- Reliability: Comprehensive test coverage with snapshot testing
- Maintainability: Dedicated test project with clear separation of concerns
gep13