mirror of
https://github.com/samsonjs/FileOtter.git
synced 2026-03-25 08:25:49 +00:00
143 lines
No EOL
3.5 KiB
Swift
143 lines
No EOL
3.5 KiB
Swift
//
|
|
// FileInfoTests.swift
|
|
// FileOtterTests
|
|
//
|
|
// Created by Sami Samhuri on 2025-08-19.
|
|
//
|
|
|
|
@testable import FileOtter
|
|
import XCTest
|
|
|
|
final class FileInfoTests: XCTestCase {
|
|
var tempDir: URL!
|
|
var testFile: URL!
|
|
|
|
override func setUpWithError() throws {
|
|
tempDir = URL.temporaryDirectory
|
|
.appendingPathComponent("FileInfoTests-\(UUID().uuidString)")
|
|
try FileManager.default.createDirectory(at: tempDir, withIntermediateDirectories: true)
|
|
|
|
testFile = tempDir.appendingPathComponent("test.txt")
|
|
try "Test content".write(to: testFile, atomically: true, encoding: .utf8)
|
|
}
|
|
|
|
override func tearDownWithError() throws {
|
|
if FileManager.default.fileExists(atPath: tempDir.path) {
|
|
try FileManager.default.removeItem(at: tempDir)
|
|
}
|
|
}
|
|
|
|
// MARK: - Time-based Tests
|
|
|
|
func testAtime() throws {
|
|
// TODO: Implement
|
|
// File.atime(url) returns last access time
|
|
}
|
|
|
|
func testMtime() throws {
|
|
// TODO: Implement
|
|
// File.mtime(url) returns last modification time
|
|
}
|
|
|
|
func testCtime() throws {
|
|
// TODO: Implement
|
|
// File.ctime(url) returns last status change time
|
|
}
|
|
|
|
func testBirthtime() throws {
|
|
// TODO: Implement
|
|
// File.birthtime(url) returns creation time
|
|
}
|
|
|
|
func testBirthtimeThrowsOnUnsupportedPlatform() throws {
|
|
// TODO: Implement if platform doesn't support birthtime
|
|
}
|
|
|
|
// MARK: - Size Tests
|
|
|
|
func testSize() throws {
|
|
// TODO: Implement
|
|
// File.size(url) returns file size in bytes
|
|
}
|
|
|
|
func testSizeThrowsForNonExistent() throws {
|
|
// TODO: Implement
|
|
}
|
|
|
|
func testSizeForEmptyFile() throws {
|
|
// TODO: Implement
|
|
}
|
|
|
|
// MARK: - Stat Tests
|
|
|
|
func testStat() throws {
|
|
// TODO: Implement
|
|
// File.stat(url) returns FileStat object
|
|
}
|
|
|
|
func testStatThrowsForNonExistent() throws {
|
|
// TODO: Implement
|
|
}
|
|
|
|
func testLstat() throws {
|
|
// TODO: Implement
|
|
// File.lstat(url) doesn't follow symlinks
|
|
}
|
|
|
|
func testLstatForSymlink() throws {
|
|
// TODO: Implement
|
|
// Create symlink and verify lstat returns symlink stats, not target
|
|
}
|
|
|
|
// MARK: - Instance Method Tests
|
|
|
|
func testInstanceAtime() throws {
|
|
// TODO: Implement
|
|
// file.atime returns access time
|
|
}
|
|
|
|
func testInstanceMtime() throws {
|
|
// TODO: Implement
|
|
// file.mtime returns modification time
|
|
}
|
|
|
|
func testInstanceCtime() throws {
|
|
// TODO: Implement
|
|
// file.ctime returns status change time
|
|
}
|
|
|
|
func testInstanceBirthtime() throws {
|
|
// TODO: Implement
|
|
// file.birthtime returns creation time
|
|
}
|
|
|
|
func testInstanceSize() throws {
|
|
// TODO: Implement
|
|
// file.size returns file size
|
|
}
|
|
|
|
func testInstanceStat() throws {
|
|
// TODO: Implement
|
|
// file.stat() returns FileStat object
|
|
}
|
|
|
|
func testInstanceLstat() throws {
|
|
// TODO: Implement
|
|
// file.lstat() doesn't follow symlinks
|
|
}
|
|
|
|
// MARK: - FileStat Tests
|
|
|
|
func testFileStatProperties() throws {
|
|
// TODO: Implement
|
|
// Verify all FileStat properties are populated correctly
|
|
}
|
|
|
|
func testFileStatForDirectory() throws {
|
|
// TODO: Implement
|
|
}
|
|
|
|
func testFileStatForSymlink() throws {
|
|
// TODO: Implement
|
|
}
|
|
} |