tests/functions/InteractiveOAuthLogin.Tests.ps1

Describe "Interactive OAuth Login (Three Legged)" {
    Context "Client-ID&-Secret given" {
        BeforeAll {
            $clientId = Get-PSFConfigValue "Dracoon.pester.clientId" -ErrorAction Stop
            $clientSecret = Get-PSFConfigValue "Dracoon.pester.clientSecret" -ErrorAction Stop
            $fqdn = Get-PSFConfigValue "Dracoon.pester.fqdn" -ErrorAction Stop
        }
        It "Aquire Authorization Code" {
            Request-DracoonOAuthToken -url $fqdn -ClientID $ClientID
            $tempCred = Get-Credential -Message "Please perform browser login" -UserName "Enter AuthorizationCode as PW"
            $tempCred | Should -Not -BeNullOrEmpty
            $authToken = $tempCred.GetNetworkCredential().Password
            $accessToken = Request-DracoonOAuthToken -url $fqdn -ClientID $ClientID -clientSecret $clientSecret -AuthToken $authToken
            $accessToken | Should -Not -BeNullOrEmpty
            $connection = Connect-Dracoon -Url "https://$fqdn" -AccessToken $accessToken
            $connection | Should -Not -BeNullOrEmpty
            Request-DracoonOAuthToken -url $fqdn -ClientID $ClientID -clientSecret $clientSecret -AuthToken $authToken | Should -BeNullOrEmpty
            Test-DracoonConnection -connection $connection |Should -BeTrue
        }
        It "Direct Authorization Code login with Connect-Dracoon without explicit usage of Request-DracoonOAuthToken" {
            Request-DracoonOAuthToken -url $fqdn -ClientID $ClientID
            $tempCred = Get-Credential -Message "Please perform browser login" -UserName "Enter AuthorizationCode as PW"
            $tempCred | Should -Not -BeNullOrEmpty
            $authToken = $tempCred.GetNetworkCredential().Password
            $connection = Connect-Dracoon -url $fqdn -ClientID $ClientID -clientSecret $clientSecret -AuthToken $authToken
            $connection | Should -Not -BeNullOrEmpty
            Test-DracoonConnection -connection $connection |Should -BeTrue
        }
    }
}