Public/Find-SpaceRoleByUsername.Tests.ps1
Set-StrictMode -Version Latest BeforeAll { . "$PSScriptRoot\Find-SpaceRoleByUsername.ps1" } Describe "Get-SpaceRoleByUserName" { BeforeAll { $role1 = [PSCustomObject]@{entity=[PSCustomObject]@{username = "user1"}} $role2 = [PSCustomObject]@{entity=[PSCustomObject]@{username = "user2"}} [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignment', '', Justification='pester supported')] $TargetRoles = [PSCustomObject]@{ resources = @($role1;$role2) } } Context "matches" { It "returns matching username" { Find-SpaceRoleByUserName -Roles $TargetRoles -Name "user2" | Should -Be $role2 } } Context "parameters" { It "ensures 'Role' is not null" { { Find-SpaceRoleByUserName -Roles $null -Name "user2" } | Should -Throw "*Cannot validate argument on parameter 'Roles'. The argument is null or empty*" } It "ensures 'Name' is not empty" { { Find-SpaceRoleByUserName -Roles $TargetRoles -Name "" } | Should -Throw "*Cannot validate argument on parameter 'Name'. The argument is null or empty*" } It "ensures 'Name' is not null" { { Find-SpaceRoleByUserName -Roles $TargetRoles -Name $null } | Should -Throw "*Cannot validate argument on parameter 'Name'. The argument is null or empty*" } It "supports 'Roles' from pipeline" { $TargetRoles | Find-SpaceRoleByUserName -Name "user2" | Should -Be $role2 } It "supports positional" { Find-SpaceRoleByUserName $TargetRoles "user2" | Should -Be $role2 } } } |