private/Test-OneConnection.ps1

function Test-OneConnection {
    [CmdletBinding()]
    param()

    begin {
        Write-Verbose "[$(Get-Date)] [BEGIN ] $($MyInvocation.MyCommand)"
    }

    process {
        if ((!$OneShortcutSession.AzureAdApp.TenantId) -or
        (!$OneShortcutSession.AzureAdApp.ClientId) -or
        (-not((!$OneShortcutSession.AzureAdApp.ClientCertificate) -or
        (!$OneShortcutSession.AzureAdApp.ClientSecret))) -or
        (!$OneShortcutSession.Token.ExpiresOn) -or
        (!$OneShortcutSession.Token.AccessToken) -or
        ($OneShortcutSession.Token.ExpiresOn -le (Get-Date))) {
            Write-Verbose "[$(Get-Date)] [CALL ] Disconnect-OneShortcut"
            Disconnect-OneShortcut
            return $false
        } else {
            return $true
        }
    }

    end {
        Write-Verbose "[$(Get-Date)] [END ] $($MyInvocation.MyCommand)"
    }
}