Files
SwiftShell/SwiftShellTests/Command_Tests.swift
T

52 lines
1.3 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\"" )
}
}