Public/New-CloudLoadTestDrop.Tests.ps1
$sut = $MyInvocation.MyCommand.Name -replace ".Tests", "" . "$PSScriptRoot\$sut" Describe "New-CloudLoadTestDrop" { $Headers = @{ Authorization = "Basic IDp0ZXN0" 'Content-Type' = "application/json; charset=utf-8" Accept = "application/json; api-version=1.0" } $BaseUri = "https://test.vsclt.visualstudio.com" Context "Parameter validation" { It "Should throw if parameter BaseUri value is not a valid uri" { {New-CloudLoadTestDrop -BaseUri "" -Headers $Headers} | Should throw "Cannot validate argument on parameter 'BaseUri'. Parameter value is not valid ''" } It "Should throw if parameter Headers value is not a hashtable" { {New-CloudLoadTestDrop -BaseUri $BaseUri -Headers ""} | Should throw "Cannot process argument transformation on parameter 'Headers'. Cannot convert the `"`" value of type `"System.String`" to type `"System.Collections.Hashtable`"." } } Context "Test drop" { Mock Invoke-RestMethod { return [ordered]@{ id = "ed45ed32-dafb-4178-ba7e-ad25755348f8" dropType = "TestServiceBlobDrop" createdDate = "2014-06-23T06:13:34.7232698Z" accessData = @{ sasKey = "?sv=2012-02-12&se=2014-06-23T08%3A13%3A34Z&sr=c&si=sas_tenant_policyb4e51292-6cd7-4631-a1eb-caeaf4031abb&sig=zigGSss1xVwz6qDJzmwiR8KzWF%2Bq%2FTiyNegCV%2FCKfrg%3D" dropContainerUrl = "https://myaccount.blob.core.windows.net/ets-containerfor-b4e51292-6cd7-4631-a1eb-caeaf4031abb/ed45ed32-dafb-4178-ba7e-ad25755348f8" } testRunId = "null" loadTestDefinition= "null" } } $ExpectedOutput = [ordered]@{ ContainerName = "ets-containerfor-b4e51292-6cd7-4631-a1eb-caeaf4031abb" Id = "ed45ed32-dafb-4178-ba7e-ad25755348f8" dropContainerUrl = "https://myaccount.blob.core.windows.net/ets-containerfor-b4e51292-6cd7-4631-a1eb-caeaf4031abb/ed45ed32-dafb-4178-ba7e-ad25755348f8" StorageAccountName = "myaccount" SasToken = "?sv=2012-02-12&se=2014-06-23T08%3A13%3A34Z&sr=c&si=sas_tenant_policyb4e51292-6cd7-4631-a1eb-caeaf4031abb&sig=zigGSss1xVwz6qDJzmwiR8KzWF%2Bq%2FTiyNegCV%2FCKfrg%3D" } | ConvertTo-Json It "Should return the test drop details" { (New-CloudLoadTestDrop -BaseUri $BaseUri -Headers $Headers | ConvertTo-Json) | Should be $ExpectedOutput Assert-MockCalled -CommandName Invoke-RestMethod -Times 1 } } } |