Skip to content

Commit 1b151f8

Browse files
committed
test: 添加多个文件删除和不存在文件处理的测试用例
1 parent 00dfaee commit 1b151f8

File tree

1 file changed

+54
-2
lines changed

1 file changed

+54
-2
lines changed

Tests/rmtrashTests/rmtrashTests.swift

+54-2
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ struct StaticAnswer: Question {
108108

109109

110110
final class RmTrashTests: XCTestCase {
111-
112111

113112
func testForceConfig() {
114113

@@ -328,7 +327,6 @@ final class RmTrashTests: XCTestCase {
328327
assertFileStructure(fileManager, at: url, expectedFiles: [])
329328
}
330329

331-
332330
func testRemoveSymlink() {
333331

334332
let (fileManager, url) = FileManager.createTempDirectory()
@@ -356,6 +354,59 @@ final class RmTrashTests: XCTestCase {
356354
XCTAssertTrue(trash.removeMultiple(paths: ["sym.link"]))
357355
XCTAssertNil(fileManager.fileType(link))
358356
}
357+
358+
func testMultipleFilesRemoval() {
359+
let (fileManager, url) = FileManager.createTempDirectory()
360+
defer { try? fileManager.removeItem(at: url) }
361+
362+
let mockFiles: [FileNode] = [
363+
.file(name: "test1.txt"),
364+
.file(name: "test2.txt"),
365+
.file(name: "test3.txt"),
366+
.directory(name: "dir1", sub: [
367+
.file(name: "file1.txt")
368+
]),
369+
.directory(name: "dir2", sub: [])
370+
]
371+
fileManager.createFileStructure(nodes: mockFiles, at: url)
372+
373+
// Test removing multiple files together
374+
let trash = makeTrash(
375+
force: true,
376+
recursive: true,
377+
emptyDirs: true,
378+
fileManager: fileManager
379+
)
380+
XCTAssertTrue(trash.removeMultiple(paths: [
381+
"./test1.txt",
382+
"./test2.txt",
383+
"./dir1",
384+
"./dir2"
385+
]))
386+
387+
assertFileStructure(fileManager, at: url, expectedFiles: [
388+
.file(name: "test3.txt")
389+
])
390+
}
391+
392+
func testNonExistentFiles() {
393+
let (fileManager, url) = FileManager.createTempDirectory()
394+
defer { try? fileManager.removeItem(at: url) }
395+
396+
// Test with force = false
397+
let trashNoForce = makeTrash(
398+
force: false,
399+
fileManager: fileManager
400+
)
401+
XCTAssertFalse(trashNoForce.removeMultiple(paths: ["./nonexistent.txt"]))
402+
403+
// Test with force = true
404+
let trashForce = makeTrash(
405+
force: true,
406+
fileManager: fileManager
407+
)
408+
XCTAssertTrue(trashForce.removeMultiple(paths: ["./nonexistent.txt"]))
409+
}
359410
}
360411

361412
extension RmTrashTests {
@@ -399,4 +450,5 @@ extension RmTrashTests {
399450
XCTFail("Expected directory, found file", file: file, line: line)
400451
}
401452
}
453+
402454
}

0 commit comments

Comments
 (0)