Tests/Private/GetSingleUrl.Tests.ps1
$PSScriptRoot = "$PSScriptRoot/../../"; . "$PSScriptRoot/Private/GetSingleUrl"; Describe "GetSingleUrl" { Mock -CommandName Write-Host -Verifiable -MockWith { }; Mock -CommandName Write-Output -Verifiable -MockWith { }; It "GetUrl Returns OK" { # Assing $instanceGuid ="59d1c5f2-73cd-4eec-98d7-3c595f7e0df6"; $defaultHostName = "someHostName.tld"; $url = "https://someHostName.tld/somePage/"; Mock -CommandName GetHttpRequestWithCookie -Verifiable -MockWith { return @{ # [Microsoft.PowerShell.Commands.BasicHtmlWebResponseObject] StatusCode = "200"; StatusDescription = "OK"; }; }; # Act $result = GetSingleUrl -defaultHostName $defaultHostName -url $url -instanceGuid $instanceGuid ` -requestTimeOut (New-TimeSpan -Seconds 10); # Assert $result.StatusCode | Should Be "200"; } It "GetUrl NoInstanceGuid Returns OK" { # Assing $defaultHostName = "someHostName.tld"; $url = "https://someHostName.tld/somePage/"; Mock -CommandName GetHttpRequestWithCookie -Verifiable -MockWith { return @{ # [Microsoft.PowerShell.Commands.BasicHtmlWebResponseObject] StatusCode = "200"; StatusDescription = "OK"; }; }; # Act $result = GetSingleUrl -defaultHostName $defaultHostName -url $url ` -requestTimeOut (New-TimeSpan -Seconds 10); # Assert $result.StatusCode | Should Be "200"; } It "GetUrl NoInstanceGuid NoParameter Fails" { # Assing $defaultHostName = "someHostName.tld"; $url = "https://someHostName.tld/somePage/"; # Act $noUrl = { GetSingleUrl -defaultHostName $defaultHostName -url $null ` -requestTimeOut (New-TimeSpan -Seconds 10); }; $noDefaultHostName = { GetSingleUrl -defaultHostName $null -url $url ` -requestTimeOut (New-TimeSpan -Seconds 10); }; $none = { GetSingleUrl -defaultHostName $null -url $null ` -requestTimeOut (New-TimeSpan -Seconds 10); }; # Assert $noUrl | Should Throw "Cannot bind argument to parameter 'url' because it is an empty string."; $noDefaultHostName | Should Throw "Cannot bind argument to parameter 'defaultHostName' because it is an empty string."; $none | Should Throw "Cannot bind argument to parameter 'defaultHostName' because it is an empty string."; } } |