tests/extensions/BeTrueFOrAll.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
function BeTrueForAll { [CmdletBinding()] param ( $ActualValue, [scriptblock] $TestScript, [switch] $Negate ) end { foreach ($value in $ActualValue) { $variables = [System.Collections.Generic.List[psvariable]]( [psvariable]::new('_', $value)) $succeeded = $TestScript.InvokeWithContext( <# functionsToDefine: #> @{ }, <# variablesToDefine: #> $variables, <# args: #> $value) if ($Negate.IsPresent) { $succeeded = -not $succeeded } if (-not $succeeded) { break } } if ($Negate.IsPresent) { $failureMessage = 'Expected: All values to fail the evaluation script, ' + 'but value "{0}" returned true.' -f $value } else { $failureMessage = 'Expected: All values to pass the evaluation script, ' + 'but value "{0}" returned false.' -f $value } [PSCustomObject]@{ Succeeded = $succeeded FailureMessage = $failureMessage } } } Add-ShouldOperator -Name BeTrueForAll -Test $function:BeTrueForAll -Alias All -SupportsArrayInput |