Private/Test-NSPConditionalAccessDefinitionSelected.ps1

function Test-NSPConditionalAccessDefinitionSelected {
    <#
    .SYNOPSIS
        Whether a tenant profile's options select a definition. A definition without Option always is.
    #>

    [CmdletBinding()]
    [OutputType([bool])]
    param(
        [Parameter(Mandatory)][System.Collections.IDictionary]$Definition,
        $TenantProfile
    )

    if (-not $Definition['Option']) { return $true }
    $name, $value = ([string]$Definition['Option']) -split '=', 2
    $option = (Get-NSPConditionalAccessOption)[$name]
    if (-not $option) { return $false }
    $chosen = Get-NSPConditionalAccessMapValue (Get-NSPConditionalAccessMapValue $TenantProfile 'Options') $name
    if (-not $chosen) { $chosen = $option.Default }
    # 'Name=A,B' is selected by either value (NSP-BASE-REG-04 goes with two registration modes).
    [string]$chosen -in @($value -split ',')
}