-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathVNetCustomAssertions.psm1
More file actions
40 lines (35 loc) · 1.08 KB
/
VNetCustomAssertions.psm1
File metadata and controls
40 lines (35 loc) · 1.08 KB
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
#Requires -Module Pester
#Requires -Module VNet
<#
.SYNOPSIS
VNetSummary objects are equivalent
#>
function Should-BeVNetSummary {
#[Diagnostics.CodeAnalysis.SuppressMessage("PSUseApprovedVerbs")]
param(
[VNetSummary] $ActualValue,
[switch] $Negate,
#[Diagnostics.CodeAnalysis.SuppressMessage("PSReviewUnusedParameter")]
$CallerSessionState,
[VNetSummary] $ExpectedValue
)
begin {
if ($Negate.IsPresent) {
throw "-Negate is not supported"
}
$failureMessage = Compare-Object -ReferenceObject $ExpectedValue -DifferenceObject $ActualValue -Property VNetStart, VNetEnd, Available, Subnets | Out-String
if ($failureMessage) {
$succeeded = $false
}
else {
$succeeded = $true
}
return [pscustomobject]@{
Succeeded = $succeeded
FailureMessage = "oh dear [$failureMessage]"
}
}
}
Add-ShouldOperator -Name BeVNetSummary `
-InternalName 'Should-BeVNetSummary' `
-Test ${function:Should-BeVNetSummary}