mirror of
https://github.com/PowerShell/PowerShell.git
synced 2024-11-30 05:13:41 +08:00
Modified the -AsHashTable code to get the base object from the PSObject when (#7123)
This commit is contained in:
parent
adf267eb5f
commit
1d549497cf
@ -368,7 +368,7 @@ namespace Microsoft.PowerShell.Commands
|
||||
{
|
||||
if (_grp.Values.Count == 1)
|
||||
{
|
||||
_table.Add(_grp.Values[0], _grp.Group);
|
||||
_table.Add(PSObject.Base(_grp.Values[0]), _grp.Group);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -105,6 +105,24 @@ Describe "Group-Object" -Tags "CI" {
|
||||
It "Should not throw error when using AsString when the AsHashTable was added" {
|
||||
{ $testObject | Group-Object -AsHashTable -AsString } | Should -Not -Throw
|
||||
}
|
||||
|
||||
It "Should be able to retrieve objects by key when using -AsHashTable without -AsString" {
|
||||
$testObject = [pscustomobject] @{a="one"; b=2}, [pscustomobject] @{a="two"; b=10}
|
||||
$result = $testObject | Group-Object -AsHashtable -Property a
|
||||
$result.one.b | Should -Be 2
|
||||
$result["two"].b | Should -Be 10
|
||||
}
|
||||
|
||||
It "User's scenario should work (see issue #6933 for link to stackoverflow question)" {
|
||||
# Sort numbers into two groups even succeeded, odd failed.
|
||||
$result = 1..9 | foreach {[PSCustomObject]@{ErrorMessage = if ($_ % 2) {'SomeError'} else {''}}} |
|
||||
Group-Object -Property {if ($_.ErrorMessage) {'Failed'} else {'Successful'}} -AsHashTable
|
||||
|
||||
$result['Failed'].ErrorMessage.Count | Should -Be 5
|
||||
$result['Failed'].ErrorMessage[0] | Should -Be 'SomeError'
|
||||
$result['Successful'].ErrorMessage.Count | Should -Be 4
|
||||
$result['Successful'].ErrorMessage[0] | Should -Be ''
|
||||
}
|
||||
}
|
||||
|
||||
Describe "Check 'Culture' parameter in order object cmdlets (Group-Object, Sort-Object, Compare-Object)" -Tags "CI" {
|
||||
|
Loading…
Reference in New Issue
Block a user