CommandLineToolkit

Форк
0
/
ProcessControllerProvider+BashTests.swift 
48 строк · 1.5 Кб
1
import DateProvider
2
import FileSystem
3
import Foundation
4
import ProcessController
5
import TestHelpers
6
import Tmp
7
import XCTest
8

9
final class ProcessControllerProviderBashTests: XCTestCase {
10
    lazy var dateProvider = SystemDateProvider()
11
    lazy var tempFolder = assertDoesNotThrow { try TemporaryFolder() }
12
    
13
    lazy var processControllerProvider = DefaultProcessControllerProvider(
14
        dateProvider: dateProvider,
15
        filePropertiesProvider: FilePropertiesProviderImpl()
16
    )
17
    
18
    func test__stdout() throws {
19
        try tempFolder.createFile(filename: "hello")
20
        
21
        let capturedOutput = CapturedOutputStreams()
22
        try processControllerProvider.subprocess(
23
            arguments: ["/bin/ls"],
24
            currentWorkingDirectory: tempFolder.absolutePath,
25
            outputStreaming: capturedOutput.outputStreaming
26
        )
27
        XCTAssertEqual(
28
            capturedOutput.stdoutString,
29
            "hello\n"
30
        )
31
    }
32
    
33
    func test__stderr() throws {
34
        let uniqueString = ProcessInfo.processInfo.globallyUniqueString
35
        let capturedOutput = CapturedOutputStreams()
36
        assertThrows {
37
            try processControllerProvider.subprocess(
38
                arguments: ["/bin/ls", uniqueString],
39
                currentWorkingDirectory: tempFolder.absolutePath,
40
                outputStreaming: capturedOutput.outputStreaming
41
            )
42
        }
43
        XCTAssertEqual(
44
            capturedOutput.stderrString,
45
            "ls: \(uniqueString): No such file or directory\n"
46
        )
47
    }
48
}
49

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

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

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

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