-
Notifications
You must be signed in to change notification settings - Fork 2
/
BeOfType.ps1
30 lines (27 loc) · 1.33 KB
/
BeOfType.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
function PesterBeOfType($value, $expectedType) {
trap [System.Management.Automation.PSInvalidCastException] { return $false }
if($expectedType -is [string] -and !($expectedType -as [Type])) {
$expectedType = $expectedType -replace '^\[(.*)\]$','$1'
}
return [bool]($value -is $expectedType)
}
function PesterBeOfTypeFailureMessage($value, $expectedType) {
if($expectedType -is [string] -and !($expectedType -as [Type])) {
$expectedType = $expectedType -replace '^\[(.*)\]$','$1'
}
if($Type = $expectedType -as [type]) {
return "Expected: ${value} to be of type [$Type]"
} else {
return "Expected: ${value} to be of type [$expectedType], but unable to find type [$expectedType]. Make sure that the assembly that contains that type is loaded."
}
}
function NotPesterBeOfTypeFailureMessage($value, $expectedType) {
if($expectedType -is [string] -and -not $expectedType -as [Type]) {
$expectedType = $expectedType -replace '^\[(.*)\]$','$1'
}
if($Type = $expectedType -as [type]) {
return "Expected: {$value} to be of any type except [${Type}], but it's a [${Type}]"
} else {
return "Expected: ${value} to be of any type except [$expectedType], but unable to find type [$expectedType]. Make sure that the assembly that contains that type is loaded."
}
}