Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions Tests/Get-IDNWEnvironment.Tests.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Requires -Module Pester
Describe "Get-IDNWEnvironment" {

BeforeAll {
. "../PSIdentityNow/Private/Get-IDNWEnvironment.ps1"
. "../PSIdentityNow/Private/Get-IDNWSecret.ps1"
. "../PSIdentityNow/Private/Get-IDNWSessionToken.ps1"
. "../PSIdentityNow/Private/Get-IDNWTokenDetail.ps1"
}

It "Should return a valid token" {
$Environment = Get-IDNWEnvironment -ApiVersion "v3" -UseSecretManagement:$false
$Environment.SessionToken | Should -BeOfType "System.Security.SecureString"
[guid]$Environment.SessionTokenDetails.tenant_id | Should -BeOfType "System.Guid"
}

}
89 changes: 89 additions & 0 deletions Tests/Get-IDNWFilterString.Tests.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# Requires -Module Pester
Describe "Get-IDNWFilterString" {

BeforeAll {
. "../PSIdentityNow/Private/Get-IDNWFilterString.ps1"
. "../PSIdentityNow/Private/Test-IDNWFilter.ps1"
}

It "should handle string values correctly" {
$filters = @(@{ field = "name"; operator = "eq"; value = "test" })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'name eq "test"'
}

It "should handle integer values correctly" {
$filters = @(@{ field = "count"; operator = "eq"; value = 5 })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'count eq 5'
}

It "should handle boolean values correctly" {
$filters = @(@{ field = "enabled"; operator = "eq"; value = $true })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'enabled eq true'
}

It "should handle 'present' operator correctly" {
$filters = @(@{ field = "email"; operator = "present"; value = $null })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'pr email'
}

It "should handle 'isnull' operator correctly" {
$filters = @(@{ field = "lastLogin"; operator = "isnull"; value = $null })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'lastLogin isnull'
}

It "should handle array values with 'in' operator correctly" {
$filters = @(@{ field = "id"; operator = "in"; value = @("one", "two") })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'id in ("one","two")'
}

It "should handle 'containsall' operator and arrays correctly" {
$filters = @(@{ field = "tags"; operator = "containsall"; value = @("foo", "bar") })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'tags ca ("foo","bar")'
}

It "should handle 'contains' operator and string values correctly" {
$filters = @(@{ field = "description"; operator = "contains"; value = "admin" })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'description co "admin"'
}

It "should handle 'startswith' operator correctly" {
$filters = @(@{ field = "username"; operator = "startswith"; value = "dev" })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'username sw "dev"'
}

It "should handle DateTime values correctly" {
$dt = Get-Date -Date "2024-01-01T12:00:00"
$filters = @(@{ field = "created"; operator = "ge"; value = $dt })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'created ge 2024-01-01T12:00:00Z'
}

It "should handle multiple filters combined with 'and'" {
$filters = @(
@{ field = "name"; operator = "eq"; value = "admin" },
@{ field = "enabled"; operator = "eq"; value = $true }
)
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'name eq "admin" and enabled eq true'
}

It "should escape double quotes in string values" {
$filters = @(@{ field = "comment"; operator = "eq"; value = 'He said "hello"' })
$result = Get-IDNWFilterString -Filters $filters
$result | Should -Be 'comment eq "He said \"hello\""'
}

It "should throw on unsupported value types" {
$filters = @(@{ field = "bad"; operator = "eq"; value = @{ unexpected = "type" } })
{ Get-IDNWFilterString -Filters $filters } | Should -Throw
}
}