PowerShell/test/powershell/Modules/Microsoft.PowerShell.Management/PSDrive.Tests.ps1
bergmeister ffd39b2853 PSScriptAnalyzer fixes by category (#4261)
- Fix PSScriptAnalyzer warnings of type PSAvoidUsingCmdletAliases for 'ForEach-Object' (alias is '%' or 'foreach')
- Fix PSScriptAnalyzer warnings of type PSAvoidUsingCmdletAliases for 'Where-Object' (alias is '?' or 'where')
- Fix PSScriptAnalyzer warnings of type PSAvoidUsingCmdletAliases for 'Select-Object' (alias is 'select')
- Fix PSScriptAnalyzer warnings of type PSPossibleIncorrectComparisonWithNull. Essentially, $null has to be on the left-hand side when using it for comparison.
- A Test in ParameterBinding.Tests.ps1 needed adapting as this test used to rely on the wrong null comparison
- Replace a subset of tests of kind '($object -eq $null) | Should Be $true' with '$object | Should Be $null'
2017-07-21 21:03:49 -07:00

139 lines
4.9 KiB
PowerShell

Describe "Basic Alias Provider Tests" -Tags "CI" {
Context "Validate basic PSDrive Cmdlets" {
BeforeAll {
#just use same location as TestDrive for simplicity
$psDriveRoot = "TestDrive:"
$psDriveName = "PsTestDriveName"
}
BeforeEach {
New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot > $null
}
AfterEach {
Remove-PSDrive -Name $psDriveName -Force -ErrorAction SilentlyContinue
}
It "Create a new PSDrive" {
try {
$newDrive = New-PSDrive -Name "NewDifferentPSDrive" -PSProvider FileSystem -Root $psDriveRoot
$newDrive.Name | Should Be "NewDifferentPSDrive"
$newDrive.Root | Should Be (Convert-Path $psDriveRoot)
}
finally {
Remove-PSDrive -Name "NewDifferentPSDrive" -Force -ErrorAction SilentlyContinue
}
}
It "Read data from a PSDrive" {
$driveProp = Get-ItemProperty ${psDriveName}:
$driveProp.PSDrive.Name | Should Be $psDriveName
}
It "Remove the PSDrive" {
$existsBefore = Test-Path "${psDriveName}:\"
Remove-PSDrive -Name ${psDriveName} -ErrorAction SilentlyContinue
$existsAfter = Test-Path "${psDriveName}:\"
$existsBefore | Should Be $true
$existsAfter | Should Be $false
}
It "Verify 'Used' and 'Free' script properties" {
$drive = Get-PSDrive -Name $psDriveName
$null -eq $drive.Used | Should Be $false
$null -eq $drive.Free | Should Be $false
}
}
}
Describe "Extended Alias Provider Tests" -Tags "Feature" {
BeforeAll {
#just use same location as TestDrive for simplicity
$psDriveRoot = "TestDrive:"
$psDriveName = "PsTestDriveName"
}
Context "Valdiate New-PSDrive Cmdlet Parameters" {
AfterEach {
Remove-PSDrive -Name $psDriveName -Force -ErrorAction SilentlyContinue
}
It "Verify Description" {
$result = New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot -Description "Test PSDrive to remove"
$result.Description | Should Be "Test PSDrive to remove"
}
It "Verify Confirm can be bypassed" {
$result = New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot -Confirm:$false
$result.Name | Should Be $psDriveName
}
It "Verify WhatIf" {
New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot -WhatIf > $null
try {
Get-PSDrive -Name $psDriveName -ErrorAction Stop
throw "Expected exception not thrown"
}
catch { $_.FullyQualifiedErrorId | Should Be "GetLocationNoMatchingDrive,Microsoft.PowerShell.Commands.GetPSDriveCommand" }
}
It "Verify Scope" {
New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot -Description "Test PSDrive to remove" -Scope Local > $null
$foundGlobal = $true
try {
$globalDrive = Get-PSDrive -Name $psDriveName -Scope Global -ErrorAction Stop
}
catch { $foundGlobal = $false }
$localDrive = Get-PSDrive -Name $psDriveName -Scope Local
$foundGlobal | Should Be $false
$localDrive.Name | Should Be $psDriveName
}
}
Context "Valdiate Get-PSDrive Cmdlet Parameters" {
BeforeEach {
New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot > $null
}
AfterEach {
Remove-PSDrive -Name $psDriveName -Force -ErrorAction SilentlyContinue
}
It "Verify Name" {
$result = Get-PSDrive -Name $psDriveName
$result.Name | Should Be $psDriveName
}
It "Verify PSProvider" {
$result = Get-PSDrive -PSProvider "Alias"
$result.Name | Should Be "Alias"
}
It "Verify Scope" {
$result = Get-PSDrive -Scope 1 #scope 1 because drive was created in BeforeAll
$result.Name -contains $psDriveName | Should Be $true
}
}
Context "Valdiate Remove-PSDrive Cmdlet Parameters" {
BeforeEach {
New-PSDrive -Name $psDriveName -PSProvider FileSystem -Root $psDriveRoot > $null
}
AfterEach {
Remove-PSDrive -Name $psDriveName -Force -ErrorAction SilentlyContinue
}
It "Verify Confirm can be bypassed" {
Remove-PSDrive $psDriveName -Confirm:$false
$exists = Test-Path -Path $psDriveName
$exists | Should Be $false
}
It "Verify WhatIf" {
Remove-PSDrive $psDriveName -WhatIf
$exists = Test-Path -Path "${psDriveName}:"
$exists | Should Be $true
}
}
}