Functions/Compare-ActiveDirectoryUsers.Tests.ps1

describe "BitTitan.Runbooks.ActiveDirectory/Compare-ActiveDirectoryUsers" -Tag "module", "unit" {

    # Import the function to test
    . "$($PSScriptRoot)\Compare-ActiveDirectoryUsers.ps1"

    it "returns true for two identical users" {
        # Declare the task inputs
        $referenceUser = [PSCustomObject]@{
            GivenName         = "givenName"
            Surname           = "surName"
            Initials          = "initials"
            Name              = "name"
            DisplayName       = "displayName"
            UserPrincipalName = "userPrincipalName"
            StreetAddress     = "streetAddress"
            City              = "city"
            State             = "state"
            PostalCode        = "postalCode"
            Country           = "country"
            MobilePhone       = "mobilePhone"
            HomePhone         = "homePhone"
            Company           = "company"
            Department        = "department"
            Title             = "title"
        }
        $comparisonUser = [PSCustomObject]@{
            GivenName         = "givenName"
            Surname           = "surName"
            Initials          = "initials"
            Name              = "name"
            DisplayName       = "displayName"
            UserPrincipalName = "userPrincipalName"
            StreetAddress     = "streetAddress"
            City              = "city"
            State             = "state"
            PostalCode        = "postalCode"
            Country           = "country"
            MobilePhone       = "mobilePhone"
            HomePhone         = "homePhone"
            Company           = "company"
            Department        = "department"
            Title             = "title"
        }

        # Call the function
        Compare-ActiveDirectoryUsers -ReferenceUser $referenceUser -ComparisonUser $comparisonUser -OutputStream "None" | Should Be $true
    }

    it "returns false for two users with different property values" {
        # Declare the task inputs
        $referenceUser = [PSCustomObject]@{
            GivenName         = "givenName1"
            Surname           = "surName"
            Initials          = "initials"
            Name              = "name"
            DisplayName       = "displayName"
            UserPrincipalName = "userPrincipalName"
            StreetAddress     = "streetAddress"
            City              = "city"
            State             = "state"
            PostalCode        = "postalCode"
            Country           = "country"
            MobilePhone       = "mobilePhone"
            HomePhone         = "homePhone"
            Company           = "company"
            Department        = "department"
            Title             = "title"
        }
        $comparisonUser = [PSCustomObject]@{
            GivenName         = "givenName"
            Surname           = "surName"
            Initials          = "initials"
            Name              = "name"
            DisplayName       = "displayName"
            UserPrincipalName = "userPrincipalName"
            StreetAddress     = "streetAddress"
            City              = "city"
            State             = "state"
            PostalCode        = "postalCode"
            Country           = "country"
            MobilePhone       = "mobilePhone"
            HomePhone         = "homePhone"
            Company           = "company"
            Department        = "department"
            Title             = "title"
        }

        # Call the function
        Compare-ActiveDirectoryUsers -ReferenceUser $referenceUser -ComparisonUser $comparisonUser -OutputStream "None" | Should Be $false
    }
}