Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,26 @@ Describe "Get-Process for admin" -Tags @('CI', 'RequireAdminOnWindows') {
It "Should support -IncludeUserName" {
(Get-Process -Id $pid -IncludeUserName).UserName | Should Match $env:USERNAME
}

It "Should support -Module" -Pending:$IsMacOS {
$modules = Get-Process -Id $pid -Module
$modules.GetType() | Should -BeExactly "System.Object[]"
foreach ($module in $modules) {
$module.GetType() | Should -BeExactly "System.Diagnostics.ProcessModule"
}
}

It "Should support -FileVersionInfo" -Skip:(!$IsWindows) {
$pwshVersion = Get-Process -Id $pid -FileVersionInfo
$PSVersionTable.PSVersion | Should -Match $pwshVersion.FileVersion
}
}

Describe "Get-Process" -Tags "CI" {
# These tests are no good, please replace!
BeforeAll {
$ps = Get-Process
$idleProcessPid = 0
}
It "Should return a type of Object[] for Get-Process cmdlet" -Pending:$IsMacOS {
,$ps | Should BeOfType "System.Object[]"
Expand All @@ -18,6 +32,43 @@ Describe "Get-Process" -Tags "CI" {
It "Should have not empty Name flags set for Get-Process object" -Pending:$IsMacOS {
$ps | foreach-object { $_.Name | Should Not BeNullOrEmpty }
}

It "Should throw an error for non existing process id." {
$randomId = 123456789
{ Get-Process -Id $randomId -ErrorAction Stop } | Should -Throw -ErrorId "NoProcessFoundForGivenId,Microsoft.PowerShell.Commands.GetProcessCommand"
}

It "Should throw an exception when process id is null." {
{ Get-Process -id $null } | Should -Throw -ErrorId "ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetProcessCommand"
}

It "Should throw an exception when -InputObject parameter is null." {
{ Get-Process -InputObject $null } | Should -Throw -ErrorId "ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetProcessCommand"
}

It "Should not fail to get process name even if it is unavailable." {
{ (Get-Process -Id $idleProcessPid).Name } | Should -Not -Throw
}

It "Test for process property = Name" {
(Get-Process -Id $pid).Name | Should -BeExactly "pwsh"
}

It "Test for process property = Id" {
(Get-Process -Id $pid).Id | Should -BeExactly $pid
}

It "Should fail to run Get-Process with -IncludeUserName without admin" -Skip:(!$IsWindows) {
{ Get-Process -IncludeUserName } | Should -Throw -ErrorId "IncludeUserNameRequiresElevation,Microsoft.PowerShell.Commands.GetProcessCommand"
}

It "Should fail to run Get-Process with -Module without admin" -Skip:(!$IsWindows) {
{ Get-Process -Module -ErrorAction Stop } | Should -Throw -ErrorId "CouldNotEnumerateModules,Microsoft.PowerShell.Commands.GetProcessCommand"
}

It "Should fail to run Get-Process with -FileVersionInfo without admin" -Skip:(!$IsWindows) {
{ Get-Process -FileVersionInfo -ErrorAction Stop } | Should -Throw -ErrorId "CouldNotEnumerateFileVer,Microsoft.PowerShell.Commands.GetProcessCommand"
}
}

Describe "Get-Process Formatting" -Tags "Feature" {
Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.