tests/functions/system/Invoke-PSCUCMLdapSync.Tests.ps1
Import-Module $PSScriptRoot\..\..\..\PSCUCM.psd1 -Force Describe "Invoke-PSCucmLdapSync" { BeforeAll { [xml]$AxlReturn = @' <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/11.5"> <soapenv:Header/> <soapenv:Body> <ns:doLdapSync> <sync>True</sync><name>lkj</name> </ns:doLdapSync> </soapenv:Body> </soapenv:Envelope> '@ [xml]$CancelAxlReturn = @' <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/11.5"> <soapenv:Header/> <soapenv:Body> <ns:doLdapSync> <sync>False</sync><name>lkj</name> </ns:doLdapSync> </soapenv:Body> </soapenv:Envelope> '@ $invokePSCUCMLdapSyncSplat = @{ LdapDirectory = 'lkj' } $ConnectPSCucmSplat = @{ AXLVersion = '11.5' Server = '127.0.0.1' Credential = [System.Management.Automation.PSCredential]::new('user',(ConvertTo-SecureString 'pass' -AsPlainText -Force)) } Connect-PSCucm @ConnectPSCucmSplat } It "Returns appropriate XML for Starting a sync" { [xml]$return = Invoke-PSCUCMLdapSync @invokePSCUCMLdapSyncSplat -OutputXML $return.OuterXml | Should -Be $AxlReturn.OuterXml } It "Returns appropriate XML for cancelling a sync" { [xml]$return = Invoke-PSCUCMLdapSync @invokePSCUCMLdapSyncSplat -OutputXML -CancelActive $return.OuterXml | Should -Be $CancelAxlReturn.OuterXml } It "Calls Invoke-PSCUCMAxlQuery" { Mock -CommandName Invoke-PSCUCMAxlQuery -MockWith {} -ModuleName PSCUCM Invoke-PSCUCMLdapSync @invokePSCUCMLdapSyncSplat Assert-MockCalled -CommandName Invoke-PSCUCMAxlQuery -Times 1 -Exactly -ModuleName PSCUCM } AfterAll { Disconnect-PSCucm } } |