66 lines
2.4 KiB
PowerShell
66 lines
2.4 KiB
PowerShell
function Get-TestDefinitionsObject {
|
|
[CmdletBinding()]
|
|
[OutputType([object[]])]
|
|
param (
|
|
[Parameter(Mandatory = $true)]
|
|
[object[]]$TestDefinitions,
|
|
|
|
[Parameter(Mandatory = $true)]
|
|
[string]$ParameterSetName,
|
|
|
|
[string]$ELevel,
|
|
[string]$ProfileLevel,
|
|
[string[]]$IncludeRecommendation,
|
|
[string[]]$SkipRecommendation
|
|
)
|
|
|
|
Write-Verbose "Initial test definitions count: $($TestDefinitions.Count)"
|
|
|
|
switch ($ParameterSetName) {
|
|
'ELevelFilter' {
|
|
Write-Verbose "Applying ELevelFilter"
|
|
if ($null -ne $ELevel -and $null -ne $ProfileLevel) {
|
|
Write-Verbose "Filtering on ELevel = $ELevel and ProfileLevel = $ProfileLevel"
|
|
$TestDefinitions = $TestDefinitions | Where-Object {
|
|
$_.ELevel -eq $ELevel -and $_.ProfileLevel -eq $ProfileLevel
|
|
}
|
|
}
|
|
elseif ($null -ne $ELevel) {
|
|
Write-Verbose "Filtering on ELevel = $ELevel"
|
|
$TestDefinitions = $TestDefinitions | Where-Object {
|
|
$_.ELevel -eq $ELevel
|
|
}
|
|
}
|
|
elseif ($null -ne $ProfileLevel) {
|
|
Write-Verbose "Filtering on ProfileLevel = $ProfileLevel"
|
|
$TestDefinitions = $TestDefinitions | Where-Object {
|
|
$_.ProfileLevel -eq $ProfileLevel
|
|
}
|
|
}
|
|
}
|
|
'IG1Filter' {
|
|
Write-Verbose "Applying IG1Filter"
|
|
$TestDefinitions = $TestDefinitions | Where-Object { $_.IG1 -eq 'TRUE' }
|
|
}
|
|
'IG2Filter' {
|
|
Write-Verbose "Applying IG2Filter"
|
|
$TestDefinitions = $TestDefinitions | Where-Object { $_.IG2 -eq 'TRUE' }
|
|
}
|
|
'IG3Filter' {
|
|
Write-Verbose "Applying IG3Filter"
|
|
$TestDefinitions = $TestDefinitions | Where-Object { $_.IG3 -eq 'TRUE' }
|
|
}
|
|
'RecFilter' {
|
|
Write-Verbose "Applying RecFilter"
|
|
$TestDefinitions = $TestDefinitions | Where-Object { $IncludeRecommendation -contains $_.Rec }
|
|
}
|
|
'SkipRecFilter' {
|
|
Write-Verbose "Applying SkipRecFilter"
|
|
$TestDefinitions = $TestDefinitions | Where-Object { $SkipRecommendation -notcontains $_.Rec }
|
|
}
|
|
}
|
|
|
|
Write-Verbose "Filtered test definitions count: $($TestDefinitions.Count)"
|
|
return $TestDefinitions
|
|
}
|