2015-10-22 23:50:22 +02:00
|
|
|
|
Describe "Test-Push-Location" {
|
|
|
|
|
New-Variable -Name startDirectory -Value $(Get-Location).Path -Scope Global -Force
|
|
|
|
|
|
|
|
|
|
BeforeEach { cd $startDirectory }
|
|
|
|
|
|
|
|
|
|
It "Should be called without error" {
|
|
|
|
|
{ Push-Location } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to push to the root directory" {
|
|
|
|
|
# this works cross-platform
|
|
|
|
|
{ Push-Location / } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to use relative path to parent" {
|
|
|
|
|
{ Push-Location .. } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to use relative path to grandparent" {
|
|
|
|
|
Test-Path ../.. | Should Be $true
|
2015-10-23 00:11:07 +02:00
|
|
|
|
|
2015-10-22 23:50:22 +02:00
|
|
|
|
{ Push-Location ../.. } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to push twice" {
|
|
|
|
|
{ Push-Location .. } | Should Not Throw
|
|
|
|
|
{ Push-Location .. } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to take a piped variable" {
|
|
|
|
|
{ ".." | Push-Location } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to call the pushd alias" {
|
|
|
|
|
{ pushd } | Should Not Throw
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should be able to push to the same location between the alias and the cmdlet" {
|
|
|
|
|
pushd ..
|
|
|
|
|
$aliasDirectory = $(Get-Location).Path
|
|
|
|
|
|
|
|
|
|
cd $startDirectory
|
|
|
|
|
Push-Location ..
|
|
|
|
|
$cmdletDirectory = $(Get-Location).Path
|
|
|
|
|
|
|
|
|
|
$aliasDirectory | Should Be $cmdletDirectory
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
It "Should produce a pathinfo object when the passthru parameter is used" {
|
|
|
|
|
Push-Location .. -PassThru | ForEach-Object { $_.GetType().Name | Should Be PathInfo }
|
|
|
|
|
}
|
2015-10-23 00:54:38 +02:00
|
|
|
|
|
|
|
|
|
# final cleanup
|
|
|
|
|
cd $startDirectory
|
2015-10-23 00:11:07 +02:00
|
|
|
|
}
|