function PesterContain($ActualValue, $ExpectedContent, [switch] $Negate) {
$succeeded = (@(& $SafeCommands['Get-Content'] -Encoding UTF8 $ActualValue) -match $ExpectedContent).Count -gt 0
if ($Negate) { $succeeded = -not $succeeded }
$failureMessage = ''
if (-not $succeeded)
{
if ($Negate)
{
$failureMessage = NotPesterContainFailureMessage -ActualValue $ActualValue -ExpectedContent $ExpectedContent
}
else
{
$failureMessage = PesterContainFailureMessage -ActualValue $ActualValue -ExpectedContent $ExpectedContent
}
}
return & $SafeCommands['New-Object'] psobject -Property @{
Succeeded = $succeeded
FailureMessage = $failureMessage
}
}
function PesterContainFailureMessage($ActualValue, $ExpectedContent) {
return "Expected: file {$ActualValue} to contain {$ExpectedContent}"
}
function NotPesterContainFailureMessage($ActualValue, $ExpectedContent) {
return "Expected: file {$ActualValue} to not contain {$ExpectedContent} but it did"
}
Add-AssertionOperator -Name Contain `
-Test $function:PesterContain
Functions/Assertions/Contain.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 |