2016-04-20 21:27:17 -07:00
Describe "Add-Content cmdlet tests" {
$file1 = "file1.txt"
Setup -File " $file1 "
Context "Add-Content should actually add content" {
It "should Add-Content to testdrive:\ $file1 " {
$result = add-content -path testdrive : \ $file1 -value "ExpectedContent" -passthru
$result | Should be "ExpectedContent"
}
It "should return expected string from testdrive:\ $file1 " {
$result = get-content -path testdrive : \ $file1
$result | Should BeExactly "ExpectedContent"
}
2016-04-21 13:13:09 -07:00
It "should Add-Content to testdrive:\dynamicfile.txt with dynamic parameters" -Pending: ( $IsLinux -Or $IsOSX ) { #https://github.com/PowerShell/PowerShell/issues/891
$result = add-content -path testdrive : \ dynamicfile . txt -value "ExpectedContent" -passthru
2016-04-20 21:27:17 -07:00
$result | Should BeExactly "ExpectedContent"
}
2016-04-21 13:13:09 -07:00
It "should return expected string from testdrive:\dynamicfile.txt" -Pending: ( $IsLinux -Or $IsOSX ) { #https://github.com/PowerShell/PowerShell/issues/891
2016-04-20 21:27:17 -07:00
$result = get-content -path testdrive : \ dynamicfile . txt
$result | Should BeExactly "ExpectedContent"
}
It "should Add-Content to testdrive:\ $file1 even when -Value is `$ null" {
$AsItWas = get-content testdrive : \ $file1
{ add-content -path testdrive : \ $file1 -value $null -ea stop } | Should Not Throw
get-content testdrive : \ $file1 | Should BeExactly $AsItWas
}
It "should throw `" Cannot bind argument to parameter 'Path' `" when -Path is `$ null" {
{ add-content -path $null -value "ShouldNotWorkBecausePathIsNull" -ea stop } | Should Throw "Cannot bind argument to parameter 'Path'"
}
It "should throw `" Cannot bind argument to parameter 'Path' `" when -Path is `$ ()" {
#[DRT][BugId(BugDatabase.WindowsOutOfBandReleases, 903880)]
{ add-content -path $ () -value "ShouldNotWorkBecausePathIsInvalid" -ea stop } | Should Throw "Cannot bind argument to parameter 'Path'"
}
2016-04-20 21:56:49 -07:00
It "should throw 'PSNotSupportedException' when you add-content to an unsupported provider" -Skip: ( $IsLinux -Or $IsOSX ) {
2016-04-20 21:27:17 -07:00
#[DRT][BugId(BugDatabase.WindowsOutOfBandReleases, 906022)]
{ add-content -path HKLM : \\ software \\ microsoft -value "ShouldNotWorkBecausePathIsUnsupported" -ea stop } | Should Throw "IContentCmdletProvider interface is not implemented"
}
2016-04-21 13:13:09 -07:00
It "should be able to pass multiple [string] `$ objects to Add-Content through the pipeline to output a dynamic Path file" -Pending: ( $IsLinux -Or $IsOSX ) { #https://github.com/PowerShell/PowerShell/issues/891
2016-04-20 21:27:17 -07:00
#[DRT][BugId(BugDatabase.WindowsOutOfBandReleases, 9058182)]
2016-04-21 13:13:09 -07:00
"hello" , "world" | add-content testdrive : \ dynamicfile2 . txt
$result = get-content testdrive : \ dynamicfile2 . txt
2016-04-20 21:27:17 -07:00
$result . length | Should be 2
$result [ 0 ] | Should be "hello"
$result [ 1 ] | Should be "world"
}
}
}