diff --git a/pester/configs.Tests.ps1 b/pester/configs.Tests.ps1 index dd2db7f3..cf5c5f4c 100644 --- a/pester/configs.Tests.ps1 +++ b/pester/configs.Tests.ps1 @@ -9,7 +9,7 @@ Get-ChildItem .\config | Where-Object {$_.Extension -eq ".json"} | ForEach-Objec # Tests - Application Installs #=========================================================================== -Describe "Config Files" -ForEach @( +$configurations = @( @{ name = "applications" config = $('{ @@ -25,57 +25,64 @@ Describe "Config Files" -ForEach @( name = "tweaks" undo = $true } -) { - Context "$name config file" { - It "Imports with no errors" { - $global:importedconfigs.$name | should -Not -BeNullOrEmpty - } - if ($config) { - It "Imports should be the correct structure" { - $applications = $global:importedconfigs.$name | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name - $template = $config | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name - $result = New-Object System.Collections.Generic.List[System.Object] - Foreach ($application in $applications) { - $compare = $global:importedconfigs.$name.$application | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name - if ($(Compare-Object $compare $template) -ne $null) { - $result.Add($application) - } - } +) - $result | Select-String "WPF*" | should -BeNullOrEmpty +foreach ($configuration in $configurations) { + Describe "Config Files - $($configuration.name)" { + $name = $configuration.name + $config = $configuration.config + $undo = $configuration.undo + + Context "$name config file" { + It "Imports with no errors" { + $global:importedconfigs.$name | should -Not -BeNullOrEmpty } - } - if($undo) { - It "Tweaks should contain original Value" { - $tweaks = $global:importedconfigs.$name | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name - $result = New-Object System.Collections.Generic.List[System.Object] - - foreach ($tweak in $tweaks) { - $Originals = @( - @{ - name = "registry" - value = "OriginalValue" - }, - @{ - name = "service" - value = "OriginalType" - }, - @{ - name = "ScheduledTask" - value = "OriginalState" - } - ) - Foreach ($original in $Originals) { - $TotalCount = ($global:importedconfigs.$name.$tweak.$($original.name)).count - $OriginalCount = ($global:importedconfigs.$name.$tweak.$($original.name).$($original.value) | Where-Object {$_}).count - if($TotalCount -ne $OriginalCount) { - $result.Add("$Tweak,$($original.name)") + if ($config) { + It "Imports should be the correct structure" { + $applications = $global:importedconfigs.$name | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name + $template = $config | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name + $result = New-Object System.Collections.Generic.List[System.Object] + Foreach ($application in $applications) { + $compare = $global:importedconfigs.$name.$application | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name + if ($(Compare-Object $compare $template) -ne $null) { + $result.Add($application) } } + + $result | Select-String "WPF*" | should -BeNullOrEmpty + } + } + if($undo) { + It "Tweaks should contain original Value" { + $tweaks = $global:importedconfigs.$name | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty name + $result = New-Object System.Collections.Generic.List[System.Object] + + foreach ($tweak in $tweaks) { + $Originals = @( + @{ + name = "registry" + value = "OriginalValue" + }, + @{ + name = "service" + value = "OriginalType" + }, + @{ + name = "ScheduledTask" + value = "OriginalState" + } + ) + Foreach ($original in $Originals) { + $TotalCount = ($global:importedconfigs.$name.$tweak.$($original.name)).count + $OriginalCount = ($global:importedconfigs.$name.$tweak.$($original.name).$($original.value) | Where-Object {$_}).count + if($TotalCount -ne $OriginalCount) { + $result.Add("$Tweak,$($original.name)") + } + } + } + $result | Select-String "WPF*" | should -BeNullOrEmpty } - $result | Select-String "WPF*" | should -BeNullOrEmpty } } - } }