Tests/Public/Set-OnypheProxy.Tests.ps1
|
BeforeDiscovery { Import-Module (Join-Path $PSScriptRoot '..\..\Use-Onyphe.psd1') -DisableNameChecking -Force } Describe 'Set-OnypheProxy' -Tag 'Unit' { BeforeEach { $script:SavedProxyParams = $global:OnypheProxyParams $global:OnypheProxyParams = $null Mock -ModuleName Use-Onyphe Read-OnypheConfigFile { [PSCustomObject]@{} } } AfterEach { $global:OnypheProxyParams = $script:SavedProxyParams } It 'clears $global:OnypheProxyParams with -DirectNoProxy' { $global:OnypheProxyParams = @{ Proxy = 'http://old:8080' } Set-OnypheProxy -DirectNoProxy $global:OnypheProxyParams | Should -BeNullOrEmpty } It 'sets only Proxy in $global:OnypheProxyParams with -Proxy alone' { Set-OnypheProxy -Proxy 'http://myproxy:8080' $global:OnypheProxyParams.Proxy | Should -Be 'http://myproxy:8080' $global:OnypheProxyParams.ContainsKey('ProxyCredential') | Should -BeFalse $global:OnypheProxyParams.ContainsKey('ProxyUseDefaultCredentials') | Should -BeFalse } It 'adds ProxyCredential (and no ProxyUseDefaultCredentials) when -ProxyCredential is supplied' { $Cred = New-Object Management.Automation.PSCredential('user', (ConvertTo-SecureString 'pass' -AsPlainText -Force)) Set-OnypheProxy -Proxy 'http://myproxy:8080' -ProxyCredential $Cred $global:OnypheProxyParams.ProxyCredential | Should -Be $Cred $global:OnypheProxyParams.ContainsKey('ProxyUseDefaultCredentials') | Should -BeFalse } It 'adds ProxyUseDefaultCredentials (and no ProxyCredential) when -ProxyUseDefaultCredentials is supplied' { Set-OnypheProxy -Proxy 'http://myproxy:8080' -ProxyUseDefaultCredentials $global:OnypheProxyParams.ProxyUseDefaultCredentials | Should -BeTrue $global:OnypheProxyParams.ContainsKey('ProxyCredential') | Should -BeFalse } It 'sets only Proxy with -AnonymousProxy (no credential keys added)' { Set-OnypheProxy -Proxy 'http://myproxy:8080' -AnonymousProxy $global:OnypheProxyParams.Proxy | Should -Be 'http://myproxy:8080' $global:OnypheProxyParams.ContainsKey('ProxyCredential') | Should -BeFalse $global:OnypheProxyParams.ContainsKey('ProxyUseDefaultCredentials') | Should -BeFalse } It 'leaves $global:OnypheProxyParams untouched when neither -DirectNoProxy nor -Proxy is supplied' { $global:OnypheProxyParams = @{ Proxy = 'http://untouched:8080' } Set-OnypheProxy $global:OnypheProxyParams.Proxy | Should -Be 'http://untouched:8080' } It 'does not change $global:OnypheProxyParams when -WhatIf is used' { $global:OnypheProxyParams = @{ Proxy = 'http://untouched:8080' } Set-OnypheProxy -Proxy 'http://myproxy:8080' -WhatIf $global:OnypheProxyParams.Proxy | Should -Be 'http://untouched:8080' } } |