52 lines
1.4 KiB
Swift
52 lines
1.4 KiB
Swift
//
|
|
// Command_Tests.swift
|
|
// SwiftShell
|
|
//
|
|
// Created by Kåre Morstøl on 15/08/14.
|
|
// Copyright (c) 2014 NotTooBad Software. All rights reserved.
|
|
//
|
|
|
|
import SwiftShell
|
|
import XCTest
|
|
|
|
class Command_Tests: XCTestCase {
|
|
|
|
func testSimpleCommand () {
|
|
SwiftShell.run("echo")
|
|
}
|
|
|
|
func testSimpleCommandWithOutput () {
|
|
XCTAssertEqual( SwiftShell.run("echo this is streamed").read(), "this is streamed\n" )
|
|
}
|
|
|
|
func testChainedCommands () {
|
|
let result = SwiftShell.run("echo this is streamed") |> SwiftShell.run("wc -w")
|
|
XCTAssertEqual( result.read().trim(), "3", "the number of words should be 3" )
|
|
}
|
|
|
|
func testInlineCommand () {
|
|
XCTAssertEqual( $("echo one"), "one" )
|
|
}
|
|
|
|
func testInlineCommandInsideRunCommandAfterPipe () {
|
|
let result = stream("line 1\nline 2\nline 3") |> SwiftShell.run("grep " + $("echo 2"))
|
|
XCTAssertEqual( result.read(), "line 2\n" )
|
|
}
|
|
|
|
func testParametersFromSequenceOfStrings () {
|
|
XCTAssertEqual( parameters(["one", "two", "three"]), " \"one\" \"two\" \"three\"" )
|
|
}
|
|
|
|
func testParametersFromSequenceOfStreams () {
|
|
var (writable, readable) = streams()
|
|
|
|
let result = SequenceOf( [stream("one"), stream("two"), stream("three")].generate() ) |> parameters
|
|
|
|
XCTAssertEqual( result, " \"one\" \"two\" \"three\"" )
|
|
}
|
|
|
|
func testParametersFromSequenceOfNumbers () {
|
|
XCTAssertEqual( parameters([1, 2, 3]), " \"1\" \"2\" \"3\"" )
|
|
}
|
|
}
|