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

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

Describe 'Remove-SCAAccessPolicy' {
    InModuleScope psSCA {
        It 'deletes the policy by ID' {
            Mock Invoke-SCARequest { }

            Remove-SCAAccessPolicy -PolicyId 'policy-1' -Confirm:$false

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

        It 'accepts PolicyId from the pipeline and processes each one' {
            Mock Invoke-SCARequest { }

            'policy-1', 'policy-2' | Remove-SCAAccessPolicy -Confirm:$false

            Should -Invoke Invoke-SCARequest -Times 2 -Exactly
        }

        It 'does not call Invoke-SCARequest when -WhatIf is specified' {
            Mock Invoke-SCARequest { }

            Remove-SCAAccessPolicy -PolicyId 'policy-1' -WhatIf

            Should -Invoke Invoke-SCARequest -Times 0 -Exactly
        }
    }
}