From bbc6d0f77550bdf688c25746df10db038b4f541c Mon Sep 17 00:00:00 2001 From: Conor Tolan Date: Wed, 27 Feb 2019 22:23:05 +0000 Subject: [PATCH] Started tests for VMCFirewall. Fixed incorrect function call in sddc version test. --- .../Functions/Get-VMCFirewallRule.tests.ps1 | 75 +++++++++++++++++++ Pester/Functions/Get-VMCSDDCVersion.tests.ps1 | 2 +- 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 Pester/Functions/Get-VMCFirewallRule.tests.ps1 diff --git a/Pester/Functions/Get-VMCFirewallRule.tests.ps1 b/Pester/Functions/Get-VMCFirewallRule.tests.ps1 new file mode 100644 index 0000000..b508dbd --- /dev/null +++ b/Pester/Functions/Get-VMCFirewallRule.tests.ps1 @@ -0,0 +1,75 @@ +#Requires -Modules Pester, VMware.VMC +Import-Module -Name VMware.VimAutomation.Cis.Core + +inModuleScope VMware.VMC { + $functionName = "Get-VMCFirewallRule" + Describe "$functionName" -Tag 'Unit' { + . "$PSScriptRoot/Shared.ps1" + + $global:DefaultVMCServers = $true + + $Service = "com.vmware.vmc.orgs.sddcs.networks.edges.firewall.config" + $OrgId = "Mocked OrgID" + $GatewayType = "MGW" + $SddcName = "MockedSDDCName" + $OrgName = "MockedOrgName" + $version = "MockedVersion" + + $orgs = @( + [PSCustomObject]@{ + "Id" = $OrgId + "Org_Id" = $OrgId + }) + + $MockedServiceObj = [PSCustomObject]{} + + $ServicesObject = @([PSCustomObject]@{ + "resource_config" = @{ + sddc_manifest = [PSCustomObject]@{ + version = $version + } + } + }) + + Mock -CommandName Get-VMCOrg -MockWith { $orgs } + Mock -CommandName Get-VMCSDDC -MockWith { $orgs } + + Mock -CommandName Get-VMCService -MockWith { $MockedServiceObj } + + $MockedServiceObj | Add-Member -MemberType ScriptMethod -Name "Get" -Value { $ServicesObject } + $MockedServiceObj | Add-Member -MemberType ScriptMethod -Name "list" -Value { $ServicesObject } + + Mock -CommandName Write-Error -MockWith {} + + Context "Sanity checking" { + $command = Get-Command -Name $functionName + + defParam $command 'OrgName' + defParam $command 'SDDCName' + defParam $command 'ShowAll' + defParam $command 'GatewayType' + } + + Context "Behavior testing" { + # Testing single Org with optional SDDC parameter + It "calls Get-VMCFirewallRule with the Org name supplied" { + { Get-VMCFirewallRule -GatewayType $GatewayType -SDDCName $SddcName -OrgName $OrgName} | Should Not Throw + Assert-MockCalled -CommandName Get-VMCOrg -Times 1 -Scope It #-ParameterFilter { $Name -eq $SddcName } + Assert-MockCalled -CommandName Get-VMCSDDC -Times 1 -Scope It -ParameterFilter { $Name -eq $SddcName -and $Org -eq $OrgName } + } + It "calls get-service to com.vmware.vmc.orgs.sddcs" { + { Get-VMCFirewallRule -GatewayType $GatewayType } | Should Not Throw + Assert-MockCalled -CommandName Get-VMCService -Times 1 -Scope It -ParameterFilter { $name -eq $Service } + } + # Testing a single SDDC response + It "gets the task details via list method and returns the properties" { + $(Get-VMCFirewallRule -GatewayType $GatewayType).version | Should -be $version + } + It "writes an error if not connected" { + $global:DefaultVMCServers = $false + { Get-VMCFirewallRule -GatewayType $GatewayType } | Should Not Throw + Assert-MockCalled -CommandName Write-Error -Times 1 -Scope It -ParameterFilter { $org -eq $Org -and $Sddc -eq $Sddc } + } + } + } +} \ No newline at end of file diff --git a/Pester/Functions/Get-VMCSDDCVersion.tests.ps1 b/Pester/Functions/Get-VMCSDDCVersion.tests.ps1 index 52da5ee..203801a 100644 --- a/Pester/Functions/Get-VMCSDDCVersion.tests.ps1 +++ b/Pester/Functions/Get-VMCSDDCVersion.tests.ps1 @@ -51,7 +51,7 @@ inModuleScope VMware.VMC { Assert-MockCalled -CommandName Get-VMCOrg -Times 1 -Scope It -ParameterFilter { $Name -eq $OrgId } } It "calls get-service to com.vmware.vmc.orgs.sddcs" { - { Get-VMCSDDC -Org $OrgId } | Should Not Throw + { Get-VMCSDDCVersion -Org $OrgId } | Should Not Throw Assert-MockCalled -CommandName Get-VMCService -Times 1 -Scope It -ParameterFilter { $name -eq $Service } } # Testing a single SDDC response