CommandLineToolkit

Форк
0
/
LoggableProcessControllerProviderTests.swift 
42 строки · 1.5 Кб
1
import Foundation
2
import PathLib
3
import ProcessController
4
import ProcessControllerTestHelpers
5
import TestHelpers
6
import Tmp
7
import XCTest
8

9
final class LoggableProcessControllerProviderTests: XCTestCase {
10
    lazy var processControllerProvider = FakeProcessControllerProvider()
11
    lazy var tempFolder = assertDoesNotThrow { try TemporaryFolder() }
12
    
13
    func test() throws {
14
        let stdoutFilePath = try tempFolder.createFile(filename: "stdout")
15
        let stderrFilePath = try tempFolder.createFile(filename: "stderr")
16
        
17
        let loggableProvider = LoggableProcessControllerProvider(
18
            pathProvider: { _ -> (stdout: AbsolutePath, stderr: AbsolutePath) in
19
                (stdout: stdoutFilePath, stderr: stderrFilePath)
20
            },
21
            provider: processControllerProvider
22
        )
23
        
24
        let processController = try loggableProvider.createProcessController(
25
            subprocess: Subprocess(arguments: ["/usr/bin/env"])
26
        )
27
        let fakeProcessController: FakeProcessController = assertCast { processController }
28
        
29
        fakeProcessController.broadcastStdout(data: Data("stdout".utf8))
30
        fakeProcessController.broadcastStderr(data: Data("stderr".utf8))
31
        
32
        XCTAssertEqual(
33
            try String(contentsOfFile: stdoutFilePath.pathString),
34
            "stdout"
35
        )
36
        
37
        XCTAssertEqual(
38
            try String(contentsOfFile: stderrFilePath.pathString),
39
            "stderr"
40
        )
41
    }
42
}
43

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

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

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

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