mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
66 lines
3.3 KiB
PowerShell
66 lines
3.3 KiB
PowerShell
# Copyright (c) Microsoft Corporation.
|
|
# Licensed under the MIT License.
|
|
Describe "Remove-Alias" -Tags "CI" {
|
|
|
|
BeforeAll {
|
|
$testAliasName = (New-Guid).Guid
|
|
}
|
|
|
|
It "Remove-Alias should remove a non-readonly alias"{
|
|
{
|
|
Set-Alias -Name $testAliasName -Value "Remove-Alias" -ErrorAction Stop
|
|
Remove-Alias -Name $testAliasName -ErrorAction Stop
|
|
Get-Alias -Name $testAliasName -ErrorAction Stop
|
|
} | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand'
|
|
}
|
|
|
|
It "Remove-Alias should throw on a readonly alias"{
|
|
{
|
|
Set-Alias -Name $testAliasName -Value "Remove-Alias" -Option ReadOnly -ErrorAction Stop
|
|
Remove-Alias -Name $testAliasName -ErrorAction Stop
|
|
} | Should -Throw -ErrorId 'AliasNotRemovable,Microsoft.PowerShell.Commands.RemoveAliasCommand'
|
|
}
|
|
|
|
It "Remove-Alias should remove a non-readonly alias with force"{
|
|
{
|
|
Set-Alias -Name $testAliasName -Value "Remove-Alias" -ErrorAction Stop
|
|
Remove-Alias -Name $testAliasName -Force -ErrorAction Stop
|
|
Get-Alias -Name $testAliasName -ErrorAction Stop
|
|
} | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand'
|
|
}
|
|
|
|
It "Remove-Alias should remove a readonly alias with force"{
|
|
{
|
|
Set-Alias -Name $testAliasName -Value "Remove-Alias" -Option ReadOnly -ErrorAction Stop
|
|
Remove-Alias -Name $testAliasName -Force -ErrorAction Stop
|
|
Get-Alias -Name $testAliasName -ErrorAction Stop
|
|
} | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand'
|
|
}
|
|
|
|
It "Remove-Alias should throw if alias does not exist"{
|
|
{
|
|
Get-Alias -Name $testAliasName -ErrorAction SilentlyContinue | Should -BeNullOrEmpty
|
|
Remove-Alias -Name $testAliasName -ErrorAction Stop
|
|
} | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.RemoveAliasCommand'
|
|
}
|
|
|
|
It "Remove-Alias should remove multiple alias at once"{
|
|
{
|
|
Set-Alias -Name "$testAliasName" -Value "Remove-Alias" -ErrorAction Stop
|
|
Set-Alias -Name "$testAliasName-2" -Value "Remove-Alias" -ErrorAction Stop
|
|
Set-Alias -Name "$testAliasName-3" -Value "Remove-Alias" -ErrorAction Stop
|
|
Remove-Alias -Name "$testAliasName","$testAliasName-2","$testAliasName-3" -ErrorAction Stop
|
|
Get-Alias -Name "$testAliasName" -ErrorAction Stop | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand'
|
|
Get-Alias -Name "$testAliasName-2" -ErrorAction Stop | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand'
|
|
Get-Alias -Name "$testAliasName-3" -ErrorAction Stop | Should -Throw -ErrorId 'ItemNotFoundException,Microsoft.PowerShell.Commands.GetAliasCommand'
|
|
}
|
|
}
|
|
|
|
It "Remove-Alias should throw on out-of-range scope"{
|
|
{
|
|
Set-Alias -Name $testAliasName -Value "Remove-Alias" -ErrorAction Stop
|
|
Remove-Alias -Name $testAliasName -Scope 99999 -ErrorAction Stop
|
|
} | Should -Throw -ErrorId "ArgumentOutOfRange,Microsoft.PowerShell.Commands.RemoveAliasCommand"
|
|
}
|
|
}
|