tests/PSTS.library.Tests.ps1
if ($PSScriptRoot -eq $null) { $PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition } . "$PSScriptRoot\helper.ps1" describe 'Get-PSTSSecureFile' { # Arrange $data = @([SecureFile]::new(); [SecureFile]::new()) $expectedResult = New-Object -TypeName "PSObject" $expectedResult | Add-Member -MemberType NoteProperty "Count" -Value $data.Count $expectedResult | Add-Member -MemberType NoteProperty "value" -Value $data arrange -result $expectedResult # Act $result = Get-PSTSSecureFile -project fakeProject #Assert it "should return $($expectedResult.value)" { $result.Count | should be $expectedResult.value.Count } It "Uses the mock" { Assert-VerifiableMock } } describe 'Get-PSTSVariablesGroup' { # Arrange $data = @([VariableGroup]::new(); [VariableGroup]::new()) $expectedResult = New-Object -TypeName "PSObject" $expectedResult | Add-Member -MemberType NoteProperty "Count" -Value $data.Count $expectedResult | Add-Member -MemberType NoteProperty "value" -Value $data arrange -result $expectedResult # Act $result = Get-PSTSVariablesGroup -project fakeProject #Assert it "should return $($expectedResult.value)" { $result.Count | should be $expectedResult.value.Count } It "Uses the mock" { Assert-VerifiableMock } } describe 'Add-PSTSSecureFile' { # Arrange $expectedResult = [SecureFile]::new() $expectedResult.name = "fakeName" arrange -result $expectedResult # Act $result = Add-PSTSSecureFile ` -project fakeProject ` -name fakeName ` -file "$PSScriptRoot\helper.ps1" #Assert it "should return $($expectedResult)" { $result.name | should be $expectedResult.name } It "Uses the mock" { Assert-VerifiableMock } it "should throw if file invalid" { $invalidFile = "invalidFile.txt" { Add-PSTSSecureFile -project fakeProject -name fakeName -file $invalidFile } | Should Throw "the file $invalidFile could not be found" } } describe 'Add-PSTSVariableGroup' { # Test Set 1 # Arrange $expectedResult = [VariableGroup]::new() $expectedResult.variables = @{} $expectedResult.variables.add("key1", "val1") $expectedResult.variables.add("key2", "val2") arrange -result $expectedResult # Act $result = Add-PSTSVariableGroup ` -project fakeProject ` -name "fakeName" ` -variables @{"key1"="val1"; "key2"="val2"} # Assert It "should return $($expectedResult)" { $result.GetType() | should be $expectedResult.GetType() } It "Uses the mock" { Assert-VerifiableMock } } describe 'Add-PSTSVariableGroup' { # Test Set 2 # Arrange $expectedResult = [VariableGroup]::new() $expectedResult.variables = @{} $expectedResult.variables.Add("fakeVaultKey", "") $expectedResult.variables.Add("fakeVaultKey2", "") $expectedResult.providerData = [ProviderData]::new(0, $vault) arrange -result $expectedResult # Act $result = Add-PSTSVariableGroup ` -project fakeProject ` -name "fakeName" ` -vault "fakeVault" ` -serviceEndpoint "fakeServiceEndPointId" ` -vaultKeys @("fakeVaultKey"; "fakeVaultKey2") # Assert It "should return $($expectedResult)" { $result.GetType() | should be $expectedResult.GetType() } It "Uses the mock" { Assert-VerifiableMock } } describe 'Link-PSTSVariableGroup' { # Arrange $expectedResult = [Object]@{ variableGroups = 12 } arrange -result $expectedResult $obj = [Object]@{ variableGroups = "" } # Act $result = Link-PSTSVariableGroup ` -variableGroup 12 ` -definition $obj # Assert it "should append id to variableGroups" { $result.value | should -Be $expectedResult.value } } describe 'Link-PSTSVariableGroup' { # Arrange $obj = [BuildDefinition]@{ quality = "fakeQuality" authoredBy = $null drafts = $null queue = $null id = 1 name = "fakeName" _links = $null url = $null uri = $null path = $null type = $null queueStatus = $null revision = $null createdDate = Get-Date project = $null variableGroup = 12 }::new() # Act $result = Link-PSTSVariableGroup ` -variableGroup 12 ` -definition $obj # Assert it "should return $($obj)" { $result.value | Should -Be $obj.value } } describe 'Update-PSTSVariableGroup' { # Test Set 1 # Arrange $variableGroup = [VariableGroup]@{ variables = [hashtable]::new() id = 1 type = $null name = "fakeName" providerData = $null createdOn = Get-Date createdBy = $null modifiedOn = Get-Date modifiedBy = $null isShared = $true } $variablesTable = @{ variable1 = "value1" } $expectedResult = [VariableGroup]@{ variables = [hashtable]::new() id = 1 type = $null name = "fakeName" providerData = $null createdOn = $variableGroup.createdOn createdBy = $null modifiedOn = $variableGroup.modifiedOn modifiedBy = $null isShared = $true } $expectedResult.variables.add("variable1", "value1") arrange -result $expectedResult # Act $result = Update-PSTSVariableGroup ` -project fakeProject ` -variableGroup $variableGroup ` -variables $variablesTable # Assert It "should return $($expectedResult)" { $result.name | Should be $expectedResult.name } It "Uses the mock" { Assert-VerifiableMock } } describe 'Update-PSTSVariableGroup' { # Test Set 2 # Arrange $variableGroup = [VariableGroup]@{ variables = [hashtable]::new() id = 1 type = $null name = "fakeName" providerData = $null createdOn = Get-Date createdBy = $null modifiedOn = Get-Date modifiedBy = $null isShared = $true } $vaultKeys = @("fakeVaultKey"; "fakeVaultKey2") $expectedResult = [VariableGroup]@{ variables = [hashtable]::new() id = 1 type = $null name = "fakeName" providerData = $null createdOn = $variableGroup.createdOn createdBy = $null modifiedOn = $variableGroup.modifiedOn modifiedBy = $null isShared = $true } $expectedResult.variables.add("fakeVaultKey", "") $expectedResult.variables.add("fakeVaultKey2", "") arrange -result $expectedResult # Act $result = Update-PSTSVariableGroup ` -project fakeProject ` -variableGroup $variableGroup ` -vaultKeys $vaultKeys # Assert It "should return $($expectedResult)" { $result.name | Should be $expectedResult.name } It "Uses the mock" { Assert-VerifiableMock } } |