Functions/Add-AzureADUserManagerEmailAddressProperty.Tests.ps1
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 } } } |