Testing/Unit/PowerShell/Providers/AADProvider/AADRiskyPermissionsHelper/Merge-Credentials.Tests.ps1
|
$ModulesPath = "../../../../../../Modules" $AADRiskyPermissionsHelper = "$($ModulesPath)/Providers/ProviderHelpers/AADRiskyPermissionsHelper.psm1" Import-Module (Join-Path -Path $PSScriptRoot -ChildPath $AADRiskyPermissionsHelper) InModuleScope AADRiskyPermissionsHelper { Describe "Merge-Credentials" { BeforeAll { # Import mock data $MockApplications = Get-Content (Join-Path -Path $PSScriptRoot -ChildPath "../RiskyPermissionsSnippets/MockApplications.json") | ConvertFrom-Json $MockServicePrincipals = Get-Content (Join-Path -Path $PSScriptRoot -ChildPath "../RiskyPermissionsSnippets/MockServicePrincipals.json") | ConvertFrom-Json [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'MockApplicationCredentials')] $MockApplicationCredentials = $MockApplications[0].KeyCredentials [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', 'MockSPCredentials')] $MockSPCredentials = $MockServicePrincipals[0].KeyCredentials } It "merges application/service principal credentials together if both are valid" { $Output = Merge-Credentials -ApplicationAccessKeys $MockApplicationCredentials -ServicePrincipalAccessKeys $MockSPCredentials $Output | Should -HaveCount 3 } It "returns only application credentials if service principal credentials are null" { $Output = Merge-Credentials -ApplicationAccessKeys $MockApplicationCredentials -ServicePrincipalAccessKeys $null $Output | Should -HaveCount 2 } It "returns only service principal credentials if application credentials are null" { $Output = Merge-Credentials -ApplicationAccessKeys $null -ServicePrincipalAccessKeys $MockSPCredentials $Output | Should -HaveCount 1 } It "returns null if neither credentials are valid" { $Output = Merge-Credentials -ApplicationAccessKeys $null -ServicePrincipalAccessKeys $null $Output | Should -BeNullOrEmpty } } } AfterAll { Remove-Module AADRiskyPermissionsHelper -Force -ErrorAction 'SilentlyContinue' } |