CommandLineToolkit
48 строк · 1.5 Кб
1import DateProvider
2import FileSystem
3import Foundation
4import ProcessController
5import TestHelpers
6import Tmp
7import XCTest
8
9final class ProcessControllerProviderBashTests: XCTestCase {
10lazy var dateProvider = SystemDateProvider()
11lazy var tempFolder = assertDoesNotThrow { try TemporaryFolder() }
12
13lazy var processControllerProvider = DefaultProcessControllerProvider(
14dateProvider: dateProvider,
15filePropertiesProvider: FilePropertiesProviderImpl()
16)
17
18func test__stdout() throws {
19try tempFolder.createFile(filename: "hello")
20
21let capturedOutput = CapturedOutputStreams()
22try processControllerProvider.subprocess(
23arguments: ["/bin/ls"],
24currentWorkingDirectory: tempFolder.absolutePath,
25outputStreaming: capturedOutput.outputStreaming
26)
27XCTAssertEqual(
28capturedOutput.stdoutString,
29"hello\n"
30)
31}
32
33func test__stderr() throws {
34let uniqueString = ProcessInfo.processInfo.globallyUniqueString
35let capturedOutput = CapturedOutputStreams()
36assertThrows {
37try processControllerProvider.subprocess(
38arguments: ["/bin/ls", uniqueString],
39currentWorkingDirectory: tempFolder.absolutePath,
40outputStreaming: capturedOutput.outputStreaming
41)
42}
43XCTAssertEqual(
44capturedOutput.stderrString,
45"ls: \(uniqueString): No such file or directory\n"
46)
47}
48}
49