Files
PowerCLI-Example-Scripts/Pester/Functions/Get-VMCHost.tests.ps1
Conor Tolan 3e09f0a601 Wrote tests covering get VMC SDDC Version
Fixed up get VMC Hosts a bit.
2019-02-25 22:28:23 +00:00

88 lines
3.9 KiB
PowerShell

#Requires -Modules Pester, VMware.VMC
Import-Module -Name VMware.VimAutomation.Cis.Core
inModuleScope VMware.VMC {
$functionName = "Get-VMCVMHost"
Describe "$functionName" -Tag 'Unit' {
. "$PSScriptRoot/Shared.ps1"
$global:DefaultVMCServers = $true
$OrgId = "Mocked OrgID"
$SddcId = "MockedSDDCName"
$VMhostName = "Mockedvc_url"
$VMHost_name = "MockedVCmanage_ip"
$esx_state = "MockedVCpublic_ip"
$esx_id = "Mocked_esx_id"
$object = @([PSCustomObject]@{
"resource_config" = @{
esx_hosts = @(@{
esx_id = $esx_id
name = $VMHost_name
hostname = $VMhostName
esx_state = $esx_state
})
}
"id" = $SddcId
"Org_Id" = $OrgId
})
$MockedArray = @($object, $object)
Mock -CommandName Get-VMCSDDC -MockWith { $object }
Mock -CommandName Write-Error -MockWith {}
Context "Sanity checking" {
$command = Get-Command -Name $functionName
defParam $command 'Org'
defParam $command 'Sddc'
}
Context "Behavior testing" {
# Testing single Org with optional SDDC parameter
It "calls Get-VMCVMHost with the Org name supplied" {
{ Get-VMCVMHost -Org $OrgId -sddc $SddcName} | Should Not Throw
Assert-MockCalled -CommandName Get-VMCSDDC -Times 1 -Scope It -ParameterFilter { $Org -eq $OrgId -and $name -eq $SddcName }
}
# Testing single Org without SDDC parameter.
It "calls get-VMCVMHost without SDDC name supplied" {
{ Get-VMCVMHost -Org $OrgId } | Should Not Throw
Assert-MockCalled -CommandName Get-VMCSDDC -Times 1 -Scope It -ParameterFilter { $org -eq $OrgId }
}
# Testing a single SDDC response
It "gets the task details via list method and returns the properties" {
$(Get-VMCVMHost -Org $OrgId).esx_id | Should -be $esx_id
$(Get-VMCVMHost -Org $OrgId).name | Should -be $VMHost_name
$(Get-VMCVMHost -Org $OrgId).hostname | Should -be $VMhostName
$(Get-VMCVMHost -Org $OrgId).esx_state | Should -be $esx_state
$(Get-VMCVMHost -Org $OrgId).sddc_id | Should -be $SddcId
$(Get-VMCVMHost -Org $OrgId).org_id | Should -be $OrgId
}
# Testing the multiple SDDC response
It "gets the task details of the Org supplied and returns the properties" {
Mock -CommandName Get-VMCSDDC -MockWith { $MockedArray }
$(Get-VMCVMHost -Org $OrgId)[0].esx_id | Should -be $esx_id
$(Get-VMCVMHost -Org $OrgId)[0].name | Should -be $VMHost_name
$(Get-VMCVMHost -Org $OrgId)[0].hostname | Should -be $VMhostName
$(Get-VMCVMHost -Org $OrgId)[0].esx_state | Should -be $esx_state
$(Get-VMCVMHost -Org $OrgId)[0].sddc_id | Should -be $SddcId
$(Get-VMCVMHost -Org $OrgId)[0].org_id | Should -be $OrgId
$(Get-VMCVMHost -Org $OrgId)[1].esx_id | Should -be $esx_id
$(Get-VMCVMHost -Org $OrgId)[1].name | Should -be $VMHost_name
$(Get-VMCVMHost -Org $OrgId)[1].hostname | Should -be $VMhostName
$(Get-VMCVMHost -Org $OrgId)[1].esx_state | Should -be $esx_state
$(Get-VMCVMHost -Org $OrgId)[1].sddc_id | Should -be $SddcId
$(Get-VMCVMHost -Org $OrgId)[1].org_id | Should -be $OrgId
}
It "writes an error if not connected" {
$global:DefaultVMCServers = $false
{ Get-VMCVMHost -Org $OrgId } | Should Not Throw
Assert-MockCalled -CommandName Write-Error -Times 1 -Scope It -ParameterFilter { $org -eq $Org -and $Sddc -eq $Sddc }
}
}
}
}