Tests/Unit/Public/Policies/Get-SCAAccessPolicy.Tests.ps1

Import-Module (Join-Path $PSScriptRoot '../../../../psSCA.psd1') -Force

Describe 'Get-SCAAccessPolicy' {
    InModuleScope psSCA {
        It 'lists every policy when -PolicyId is omitted' {
            Mock Invoke-SCARequest { }

            Get-SCAAccessPolicy | Out-Null

            Should -Invoke Invoke-SCARequest -ParameterFilter {
                $Service -eq 'UAP' -and $Method -eq 'GET' -and $Path -eq '/policies'
            }
        }

        It 'gets a single policy when -PolicyId is specified' {
            Mock Invoke-SCARequest { }

            Get-SCAAccessPolicy -PolicyId 'policy-1' | Out-Null

            Should -Invoke Invoke-SCARequest -ParameterFilter {
                $Path -eq '/policies/{policyId}' -and $PathParameters['policyId'] -eq 'policy-1'
            }
        }

        It 'accepts PolicyId from the pipeline by property name' {
            Mock Invoke-SCARequest { }

            [pscustomobject]@{ PolicyId = 'policy-2' } | Get-SCAAccessPolicy | Out-Null

            Should -Invoke Invoke-SCARequest -ParameterFilter { $PathParameters['policyId'] -eq 'policy-2' }
        }
    }
}