82 lines
3.1 KiB
PowerShell
82 lines
3.1 KiB
PowerShell
#Requires -Modules Pester, VMware.VMC
|
|
Import-Module -Name VMware.VimAutomation.Cis.Core
|
|
|
|
inModuleScope VMware.VMC {
|
|
$functionName ="Get-VmcSddc"
|
|
Describe "$functionName" -Tag 'Unit' {
|
|
. "$PSScriptRoot/Shared.ps1"
|
|
|
|
$global:DefaultVMCServers = $true
|
|
|
|
$OrgId = "Mocked OrgID"
|
|
$name = "MockedSDDCName"
|
|
$Notname = "NotTheName"
|
|
$Service = "com.vmware.vmc.orgs.sddcs"
|
|
|
|
$MockedList = [PSCustomObject]@{
|
|
"name" = $name
|
|
}
|
|
$MockedList2 = [PSCustomObject]@{
|
|
"name" = $Notname
|
|
}
|
|
|
|
$object = @(
|
|
@{"Id" = 1}
|
|
)
|
|
$object | Add-Member -MemberType ScriptMethod -Name "list" -Value { $MockedList }
|
|
|
|
$MockedArray = @($MockedList, $MockedList2)
|
|
|
|
Mock -CommandName Get-VMCService -MockWith { $object }
|
|
|
|
Mock -CommandName Get-VMCOrg { $object }
|
|
|
|
Context "Sanity checking" {
|
|
$command = Get-Command -Name $functionName
|
|
|
|
defParam $command 'Name'
|
|
defParam $command 'Org'
|
|
}
|
|
|
|
Context "Behavior testing" {
|
|
|
|
It "calls Get-VMCOrg" {
|
|
{ Get-VMCSDDC -Org $OrgId } | Should Not Throw
|
|
Assert-MockCalled -CommandName Get-VMCOrg -Times 1 -Scope It
|
|
}
|
|
It "calls Get-VMCOrg with the SDDC name supplied" {
|
|
{ Get-VMCSDDC -Org $OrgId -name $name} | Should Not Throw
|
|
Assert-MockCalled -CommandName Get-VMCOrg -Times 1 -Scope It -ParameterFilter { $name -eq $name }
|
|
}
|
|
# Testing with single "Org" so assert call twice.
|
|
It "calls get-service to com.vmware.vmc.orgs.sddcs" {
|
|
{ Get-VMCSDDC -Org $OrgId } | Should Not Throw
|
|
Assert-MockCalled -CommandName Get-VMCService -Times 1 -Scope It -ParameterFilter { $name -eq $Service }
|
|
}
|
|
|
|
# Testing with two "Orgs" so assert call twice.
|
|
It "calls get-service to com.vmware.vmc.orgs.sddcs" {
|
|
$object = @(
|
|
@{"Id" = 1}
|
|
@{"Id" = 2}
|
|
)
|
|
$object | Add-Member -MemberType ScriptMethod -Name "list" -Value { $MockedArray }
|
|
{ Get-VMCSDDC -Org $OrgId } | Should Not Throw
|
|
Assert-MockCalled -CommandName Get-VMCService -Times 2 -Scope It -ParameterFilter { $name -eq $Service }
|
|
}
|
|
|
|
# Testing a single SDDC response
|
|
It "gets the SDDC details via list method and returns the properties" {
|
|
$object = [PSCustomObject]@{}
|
|
$object | Add-Member -MemberType ScriptMethod -Name "list" -Value { $MockedList }
|
|
$(Get-VMCSDDC -Org $OrgId).name | Should -be $name
|
|
}
|
|
# Testing the multiple SDDC response
|
|
It "gets the SDDC details of the SDDC supplied and returns the properties" {
|
|
$object = @{}
|
|
$object | Add-Member -MemberType ScriptMethod -Name "list" -Value { $MockedArray }
|
|
$(Get-VMCSDDC -Org $OrgId -name $name).name | Should -be $name
|
|
}
|
|
}
|
|
}
|
|
} |