Functions/Assertions/BeIn.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 |
function PesterBeIn($ActualValue, $ExpectedValue, [switch] $Negate) { [bool] $succeeded = $ExpectedValue -contains $ActualValue if ($Negate) { $succeeded = -not $succeeded } $failureMessage = '' if (-not $succeeded) { if ($Negate) { $failureMessage = NotPesterBeInFailureMessage -ActualValue $ActualValue -ExpectedValue $ExpectedValue } else { $failureMessage = PesterBeInFailureMessage -ActualValue $ActualValue -ExpectedValue $ExpectedValue } } return New-Object psobject -Property @{ Succeeded = $succeeded FailureMessage = $failureMessage } } function PesterBeInFailureMessage($ActualValue, $ExpectedValue) { if(-not ([bool]($ExpectedValue -contains $ActualValue))) { return "Expected: ${ActualValue} to be in collection [$($ExpectedValue -join ',')] but was not found." } } function NotPesterBeInFailureMessage($ActualValue, $ExpectedValue) { if([bool]($ExpectedValue -contains $ActualValue)) { return "Expected: ${ActualValue} to not be in collection [$($ExpectedValue -join ',')] but was found." } } Add-AssertionOperator -Name BeIn -Test $function:PesterBeIn |