Describe "Write-Output DRT Unit Tests" -Tags "CI" { It "Simple Write Object Test" { $objectWritten = 1, 2.2, @("John", "Smith", 10), "abc" $results = Write-Output $objectWritten $results.Length | Should Be $objectWritten.Length $results[0] | Should Be $objectWritten[0] $results[1] | Should Be $objectWritten[1] $results[2] | Should Be $objectWritten[2] $results[2] -is [System.Array] | Should Be $true $results[3] | Should Be $objectWritten[3] $results[3] -is [System.String] | Should Be $true } It "Works with NoEnumerate switch" { $objectWritten = 1, 2.2, @("John", "Smith", 10), "abc" Write-Output $objectWritten -NoEnumerate 6>&1 | Should be '1 2.2 System.Object[] abc' } } Describe "Write-Output" -Tags "CI" { $testString = $testString Context "Input Tests" { It "Should allow piped input" { { $testString | Write-Output } | Should Not Throw } It "Should write output to the output stream when using piped input" { $testString | Write-Output | Should Be $testString } It "Should use inputobject switch" { { Write-Output -InputObject $testString } | Should Not Throw } It "Should write output to the output stream when using inputobject switch" { Write-Output -InputObject $testString | Should Be $testString } It "Should be able to write to a variable" { Write-Output -InputObject $testString -OutVariable var $var | Should Be $testString } } Context "Pipeline Command Tests" { It "Should send object to the next command in the pipeline" { Write-Output -InputObject (1+1) | Should Be 2 } It "Should have the same result between inputobject switch and piped input" { Write-Output -InputObject (1+1) | Should Be 2 1+1 | Write-Output | Should Be 2 } } Context "Enumerate Objects" { $enumerationObject = @(1,2,3) It "Should see individual objects when not using the NoEnumerate switch" { $singleCollection = $(Write-Output $enumerationObject| Measure-Object).Count $singleCollection | Should Be $enumerationObject.length } It "Should be able to treat a collection as a single object using the NoEnumerate switch" { $singleCollection = $(Write-Output $enumerationObject -NoEnumerate | Measure-Object).Count $singleCollection | Should Be 1 } } }