Functions/Add-AzureADUserManagerEmailAddressProperty.Tests.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
describe "BitTitan.Runbooks.AzureAD/Add-AzureADUserManagerEmailAddressProperty" -Tag "module", "unit" { # Import the function to test . "$($PSScriptRoot)\Add-AzureADUserManagerEmailAddressProperty.ps1" # Declare external functions and mocks function Get-AzureADUserManager { param ($ObjectId) } context "when the user has a manager" { # Declare mocks mock Get-AzureADUserManager { return [PSCustomObject]@{ UserPrincipalName = "manager@domain.com" } } it "returns the user object with the manager email address added" { # Mock the user object $user = [PSCustomObject]@{ ObjectId = [Guid]::Empty.Guid } # Call the function $output = Add-AzureADUserManagerEmailAddressProperty -User $user # Verify the mocks Assert-MockCalled Get-AzureADUserManager -Times 1 -Exactly -ParameterFilter { $ObjectId -eq [Guid]::Empty.Guid } -Scope it # Verify the output $output.ManagerEmailAddress | Should Be "manager@domain.com" } } context "when the user does not have a manager" { # Declare mocks mock Get-AzureADUserManager {} it "returns the user object without the manager email address" { # Mock the user object $user = [PSCustomObject]@{ ObjectId = [Guid]::Empty.Guid } # Call the function $output = Add-AzureADUserManagerEmailAddressProperty -User $user # Verify the mocks Assert-MockCalled Get-AzureADUserManager -Times 1 -Exactly -ParameterFilter { $ObjectId -eq [Guid]::Empty.Guid } -Scope it # Verify the output $output.ManagerEmailAddress | Should Be $null } } } |