CommandLineToolkit

Форк
0
/
GlobFileSystemEnumeratorTests.swift 
53 строки · 1.8 Кб
1
import FileSystem
2
import Foundation
3
import TestHelpers
4
import Tmp
5
import XCTest
6

7
// swiftlint:disable multiple_closures_with_trailing_closure
8
final class GlobFileSystemEnumeratorTests: XCTestCase {
9
    lazy var tempFolder = assertDoesNotThrow { try TemporaryFolder() }
10
    
11
    override func setUpWithError() throws {
12
        try super.setUpWithError()
13
        
14
        try tempFolder.createFile(filename: "unrelated_file")
15
        try tempFolder.createFile(filename: "file.txt")
16
        try tempFolder.createFile(components: ["subfolder1"], filename: "file_in_subfolder1.txt")
17
        try tempFolder.createFile(components: ["subfolder1"], filename: "unrelated_file")
18
        try tempFolder.createFile(components: ["subfolder2"], filename: "file_in_subfolder2.txt")
19
    }
20

21
    func test___deep_glob() throws {
22
        let enumerator = GlobFileSystemEnumerator(
23
            pattern: .rootingAt(tempFolder.absolutePath).concat("/**/*.txt")
24
        )
25
        let paths = try enumerator.allPaths()
26
        
27
        assert {
28
            Set(paths)
29
        } equals: {
30
            Set([
31
                tempFolder.pathWith(components: ["file.txt"]),
32
                tempFolder.pathWith(components: ["subfolder1", "file_in_subfolder1.txt"]),
33
                tempFolder.pathWith(components: ["subfolder2", "file_in_subfolder2.txt"]),
34
            ])
35
        }
36
    }
37
    
38
    func test___shallow_glob() throws {
39
        let enumerator = GlobFileSystemEnumerator(
40
            pattern: .rootingAt(tempFolder.absolutePath).concat("/subfolder*")
41
        )
42
        let paths = try enumerator.allPaths()
43
        
44
        assert {
45
            Set(paths)
46
        } equals: {
47
            Set([
48
                tempFolder.pathWith(components: ["subfolder1"]),
49
                tempFolder.pathWith(components: ["subfolder2"]),
50
            ])
51
        }
52
    }
53
}
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.