CommandLineToolkit

Форк
0
/
PatternComponentTests.swift 
48 строк · 1.3 Кб
1
import FileSystem
2
import Foundation
3
import PathLib
4
import TestHelpers
5
import XCTest
6

7
// swiftlint:disable multiple_closures_with_trailing_closure
8
final class GlobPatternTests: XCTestCase {
9
    func test___any_file_anywhere() {
10
        assert {
11
            GlobPattern
12
                .rootingAt(.root)
13
                .concat("**/*")
14
                .value
15
        } equals: {
16
            "/**/*"
17
        }
18
    }
19
    
20
    func test___some_images() {
21
        assert {
22
            GlobPattern
23
                .rootingAt(AbsolutePath(components: ["Users", "username", "Pictures"]))
24
                .concat("/*.{jpg,png,tiff}")
25
                .value
26
        } equals: {
27
            "/Users/username/Pictures/*.{jpg,png,tiff}"
28
        }
29
    }
30
    
31
    func test___decoding() {
32
        assert {
33
            try JSONDecoder().decode(GlobPattern.self, from: Data("\"/path/to/**\"".utf8))
34
        } equals: {
35
            GlobPattern.rootingAt("/path/to").concat("/**")
36
        }
37
    }
38
    
39
    func test___decode_fails___when_glob_is_not_absolute() {
40
        assertThrows {
41
            try JSONDecoder().decode(GlobPattern.self, from: Data("\"some/path/**\"".utf8))
42
        }
43
        
44
        assertThrows {
45
            try JSONDecoder().decode(GlobPattern.self, from: Data("\"~/path/**\"".utf8))
46
        }
47
    }
48
}
49

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

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

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

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